PHP ImageMagick - 合成影像



將兩個或更多影像組合成一個新影像時稱為合成攝影。而組合後的照片稱為合成影像。 將視覺元素從單獨的來源組合成一個影像通常是想要創造出所有這些元素都是同一影像的一部分的錯覺。

手動完成此操作會變得非常複雜,需要花費數小時。為了使此流程輕鬆快捷,Imagemagick 提供了一種名為“compositeImage()”的方法,該方法將兩張影像作為輸入,並提供合併的影像作為輸出。

語法

public Imagick::compositeImage(Imagick $composite_object, int $composite, int $x, int $y, int $channel = Imagick::CHANNEL_DEFAULT): bool

此方法的引數是複合物件、x、y 和通道。“複合物件”是儲存複合影像的 Imagick 物件。

“x”是合成影像的列偏移,“y”是合成影像的行偏移。“通道”提供對通道模式有效的任何通道常量。

示例

此示例是一個 PHP 程式碼片段,它實現了“compositeImage()”函式。首先,建立兩個 imagick 物件並作為輸入取兩張影像。使用“compositeImage()”函式合成兩幅影像,輸出影像的格式為“compositeImage.png”。

<?php
   $image1=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image1.jpg");
   $image2=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image2.jpg");
   $image1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
   $image1->setImageArtifact('compose:args', "1,0,-0.5,0.5");
   $image1->compositeImage($image2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);
   $image1->writeImage($_SERVER['DOCUMENT_ROOT']."/test/compositeImage.png");
?>

假設在程式中,以下為輸入影像 (image1.jpg) −

Composite Images

假設在程式中,以下為輸入影像 (image2.jpg) −

Composite Images

輸出

Composite Images
廣告
© . All rights reserved.