English | 简体中文 | 繁體中文
查询

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函数
分享链接