📜  PHP | imagick的compositeImage()函数(1)

📅  最后修改于: 2023-12-03 15:03:38.739000             🧑  作者: Mango

PHP | imagick的compositeImage()函数介绍

compositeImage()函数是PHP imagick库中用于合并图像的函数。该函数可以将一张图像合并到另一张图像上,从而创建一个新的图像。

语法
bool Imagick::compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )
  • 参数解释:
    • $composite_object - 要合并的图像对象
    • $composite - 合并模式(一般为Imagick::COMPOSITE_OVER
    • $x - 要合并的图像的左上角x坐标
    • $y - 要合并的图像的左上角y坐标
    • $channel - 操作的颜色通道(默认为Imagick::CHANNEL_ALL
合并模式

合并模式是通过composite参数指定的。以下是常用的合并模式:

| 常量 | 模式描述 | | ---------------------- | ------------------------------------------------------------ | | Imagick::COMPOSITE_OVER | 在目标图像的顶部应用源图像(默认) | | Imagick::COMPOSITE_ATOP | 裁剪源图像,并将其置于目标图像的顶部,仅显示目标图像中源图像下面的区域 | | Imagick::COMPOSITE_BLEND | 混合源图像和目标图像,但是只有源图像的不透明部分才会被混合 | | Imagick::COMPOSITE_COPY | 直接复制源图像 | | Imagick::COMPOSITE_DST | 显示目标图像,源图像被忽略 | | Imagick::COMPOSITE_SRC | 显示源图像,目标图像被忽略 | | Imagick::COMPOSITE_PLUS | 加法混合 | | Imagick::COMPOSITE_MINUS | 减法混合 | | Imagick::COMPOSITE_MULTIPLY | 乘法混合 | | Imagick::COMPOSITE_DIVIDE | 除法混合 | | Imagick::COMPOSITE_MODULUSADD | 源图像值和目标图像的像素值modulus相加 | | Imagick::COMPOSITE_MODULUSSUBTRACT | 源图像值和目标图像的像素值modulus相减 | | Imagick::COMPOSITE_BUMPMAP | 查找源图像中每个像素的灰度值,并将其用作目标图像的一个bump map |

实例

以下代码演示了如何使用compositeImage()函数从源图像创建一个新的图像:

<?php
$base = new \Imagick("base.jpg");
$overlay = new \Imagick("overlay.jpg");

$overlay->compositeImage($base, \Imagick::COMPOSITE_OVER, 100, 100);

// 保存合并后的图像
$overlay->writeImage("output.jpg");
?>

在上面的示例中,compositeImage()函数将$base对象合并到$overlay对象中,操作结果被保存到"output.jpg"文件中。

参考资料

PHP imagick库官方文档