📅  最后修改于: 2023-12-03 15:03:38.739000             🧑  作者: Mango
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"
文件中。