簡體   English   中英

ImageMagick蒙太奇與徽標

[英]ImageMagick montage with logo

我正在嘗試使用1到3張圖像創建一個Open Graph Image蒙太奇,並在最終的蒙太奇上覆蓋一個徽標。 我使用以下代碼進行此操作-但是,我必須生成1到3個圖像蒙太奇,然后添加徽標並生成一個新圖像,然后刪除第一個圖像。 我敢肯定,有一種更有效的方法可以做到這一點-只需執行一個exec ,而不必輸出兩個圖像,然后再刪除一個圖像。 感謝您的任何建議。

if ($array_count == 1) {

        $w = 898;
        $h = 474;
        $t = '1x1';

    } else if ($array_count == 2) {

        $w = 449;
        $h = 474;
        $t = '2x2';

    } else if ($array_count == 3) {

        $w = 299;
        $h = 474;
        $t = '3x1';

    }

    $exe = " montage ";

    foreach ($photo_array as $p) {

        $exe .= " http://website.com/images/{$p} -thumbnail {$w}x{$h}^ -gravity center -extent {$w}x{$h} -geometry {$w}x{$h}+1+1 ";
    }

    $exe .= "-tile $t  ";

    $exe .= " poster1.jpg ";

    exec("$exe");

    exec(" convert  poster1.jpg  logo_overlay.png -gravity SouthEast -geometry +10+10 -composite poster2.jpg ");

    @unlink("poster1.jpg");

    $img_out = "poster2.jpg";

更新的答案

根據您提供的更多信息,也許這可以幫助您了解如何做:

montage red.png lime.png blue.png cyan.png magenta.png yellow.png -geometry +0+0 -tile 3x2 miff:- | convert miff:- -gravity southeast logo.png -composite result.png

在此處輸入圖片說明

徽標為黑色和50x50,而其他圖塊為100x100。

原始答案

您可以通過兩種方式來完成操作-請將其作為示意圖的答案,而不是最后一個像素的詳細說明-但您應該明白這一點。

選項1

您並不需要絕對使用montage來布置圖像,您可以在convert命令中使用append選項,其中-append將一個圖像放置在另一個圖像下方,而+append將一個圖像放置在另一個圖像的右側。 然后,由於您已經在使用convert而不是montage ,因此可以在頂部合成徽標。 因此,您的命令將如下所示:

convert \( image1.png -resize ... -extent ... \) \
        \( image2.png -resize ... -extent ... \) \
        +append                                  \
        \( image3.png -resize ... -extent ... \) \
        +append                                  \
        logo.png -gravity ... -composite result.png

選項2

您可以將命令/圖像鏈接在一起,理想情況下是通過在命令之間沿管道發送ImageMagick的MIFF文件格式,因為這將保留所有圖像細節,分辨率和透明度。 因此,您可以執行以下操作:

foreach image do
   convert image -resize ... -extent ... miff:-
done | montage -tile ... miff:-  miff:- | convert miff:- logo.png -composite result.png  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM