查詢

ImagickDraw::composite()函式—用法及示例

「 在當前繪圖上下文中將畫素合成到影象中 」


函式名: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函式將指定的影象合成到當前繪圖上下文中。最後,將繪圖上下文應用到源影象上,並儲存合成後的影象到指定路徑。

補充糾錯
上一個函式: ImagickDraw::destroy()函式
下一個函式: ImagickDraw::color()函式
熱門PHP函式
分享連結