函式名:ImagickDraw::composite()
適用版本:Imagick 3.0.0 及以上版本
用法:該函式用於在當前繪圖上下文中將畫素合成到影象中。它可以用於將一個影象覆蓋到另一個影象上,並指定合成的模式和位置。
語法:bool ImagickDraw::composite ( int $composite_op , float $x , float $y , float $width , float $height , Imagick $composite_image )
引數:
- composite_op: 合成模式,可以是以下常量之一:
- Imagick::COMPOSITE_DEFAULT: 預設的合成模式。
- Imagick::COMPOSITE_OVER: 將影象合成到目標影象上,覆蓋原有畫素。
- Imagick::COMPOSITE_IN: 將源影象與目標影象進行交集操作,只保留重疊的部分。
- Imagick::COMPOSITE_OUT: 將源影象與目標影象進行差集操作,只保留不重疊的部分。
- Imagick::COMPOSITE_ATOP: 將源影象放置在目標影象上方,並裁剪掉超出目標影象的部分。
- Imagick::COMPOSITE_XOR: 對源影象和目標影象進行異或操作。
- Imagick::COMPOSITE_PLUS: 將源影象與目標影象進行相加操作。
- Imagick::COMPOSITE_MINUS: 將源影象與目標影象進行相減操作。
- Imagick::COMPOSITE_MULTIPLY: 將源影象與目標影象進行相乘操作。
- Imagick::COMPOSITE_SCREEN: 對源影象和目標影象進行螢幕混合操作。
- Imagick::COMPOSITE_DARKEN: 對源影象和目標影象進行暗化混合操作。
- Imagick::COMPOSITE_LIGHTEN: 對源影象和目標影象進行亮化混合操作。
- x: 源影象的起始 x 座標。
- y: 源影象的起始 y 座標。
- width: 源影象的寬度。
- height: 源影象的高度。
- composite_image: 要合成的影象物件。
返回值:成功時返回 true,失敗時返回 false。
示例:
// 建立一個ImagickDraw物件
$draw = new ImagickDraw();
// 設定合成模式為COMPOSITE_OVER
$composite_op = Imagick::COMPOSITE_OVER;
// 設定源影象的起始座標、寬度和高度
$x = 10;
$y = 10;
$width = 200;
$height = 200;
// 建立一個要合成的影象物件
$composite_image = new Imagick('path/to/composite_image.jpg');
// 呼叫composite函式將影象合成到當前繪圖上下文中
$draw->composite($composite_op, $x, $y, $width, $height, $composite_image);
// 在其他繪圖操作後,將繪圖上下文應用到影象上
$image = new Imagick('path/to/source_image.jpg');
$image->drawImage($draw);
// 儲存合成後的影象
$image->writeImage('path/to/output_image.jpg');
以上示例建立了一個ImagickDraw物件,並設定了合成模式為COMPOSITE_OVER。然後透過呼叫composite函式將指定的影象合成到當前繪圖上下文中。最後,將繪圖上下文應用到源影象上,並儲存合成後的影象到指定路徑。