问题描述
ImageMagick 7 放弃了这个调用,但我找不到任何关于如何在新版本中复制其功能的示例。我的目标是用蒙版合成两个图像。这是我在版本 6 中所做的大大简化的 go 代码。
func CleanUpImage(originalImage,maskImage *imagick.MagickWand) (*imagick.MagickWand,error) {
err error;
targetimage = imagick.NewMagickWand();
pw = imagick.NewPixelWand();
width = originalImage.GetimageWidth();
height = originalImage.GetimageHeight();
_ = pw.SetColor("white");
_ = targetimage.NewImage(width,height,pw);
_ = targetimage.SetimageClipMask(maskImage);
_ = targetimage.CompositeImage(originalImage,imagick.COMPOSITE_OP_copY,0);
return targetimage,err;
}
有人可以指导我在第 7 版中运行它吗?
谢谢!
解决方法
我不熟悉 GO 绑定,但在 ImageMagick-7 中 MagickSetImageClipMask()
被替换为 MagickSetImageMask()
。唯一的区别是用户可以定义掩码的方向(读/写)。
要匹配 ImageMagick-6 的 ClipMask,您需要将图像蒙版设置为 write。
MagickSetImageMask(image_wand,WritePixelMask,mask_wand);