📅  最后修改于: 2023-12-03 15:18:24.100000             🧑  作者: Mango
setImageClipMask()
函数是 imagick 类中的一个方法,用于设置图像的剪切掩码。通俗的讲,就是利用一张图像来对原图进行一个像素级别的裁剪。
public bool Imagick::setImageClipMask ( mixed $clip_mask )
$clip_mask
:可选参数,用于设置剪切掩码的 imagick 对象。如果传入的是 null,则会取消当前的剪切掩码。如果传入的是一个值,则会将其转换为 imagick 对象。如果传入的是一个代表文件路径的字符串,则 imagick 将会读取这个路径对应的文件并将其作为剪切掩码。成功时返回 true,失败时返回 false。
此示例展示了如何使用另一张图像作为剪切掩码,以剪切当前的图像。
// 创建对象并读取原图
$image = new Imagick('image.jpg');
// 读取掩码图片并进行缩放,确保和原图大小一致
$clipMask = new Imagick('clip_mask.png');
$clipMask->scaleImage($image->getImageWidth(), $image->getImageHeight());
// 设置剪切掩码并剪切
$image->setImageClipMask($clipMask);
$image->cropImage($image->getImageWidth() / 2, $image->getImageHeight() / 2, 0, 0);
// 显示结果
header('Content-Type: image/png');
echo $image;
上述代码会将原图的左上角一半部分裁剪出来,然后显示在浏览器中。注意,setImageClipMask()
函数是 Imagick
类中的一个方法,因此需要先实例化一个 Imagick
对象。
此示例演示了如何使用像素级别的剪切掩码。我们将会使用一个白色正方形掩码对一张黑色背景的图进行裁剪。掩码大小和原图大小均为 100x100。
// 创建 100x100 的黑色背景图
$image = new Imagick();
$image->newImage(100, 100, 'black');
// 创建 100x100 的白色正方形掩码
$clipMask = new Imagick();
$clipMask->newImage(100, 100, 'white');
// 设置剪切掩码并剪切
$image->setImageClipMask($clipMask);
$image->cropImage(50, 50, 50, 50);
// 显示结果
header('Content-Type: image/png');
echo $image;
上述代码会将原图的中央一半部分裁剪出来,然后显示在浏览器中。