Imagemagick裁剪透明图像以掩盖

时间:2017-04-12 19:01:05

标签: imagemagick

所以这是我的原始图片(请注意透明边框)src.pngenter image description here

这是我想用来裁剪的面具。白色表示保持,黑色表示裁剪mask.png :(请注意,它不一定是正方形。它可能是心脏或星星或任何东西) enter image description here

我也有transparent.png,这是一个完全透明的图像。所有三幅图像都具有相同的尺寸。

因此,运行此命令会生成以下图像:

convert transparent.png src.png mask.png -composite out.png

enter image description here

哪个是完美遮盖,但现在我希望它裁剪到白色遮罩区域的大小。使用-trim有点接近,但它摆脱了掩码内的透明区域。

如何将蒙版图像的大小调整为蒙版中白色区域的大小?

2 个答案:

答案 0 :(得分:0)

不确定我理解你要做什么,尤其是为什么你需要一个全尺寸的透明画布。您的命令在我的 ImageMagick 版本7上没有给出相同的结果。

此命令可能正是您要找的:

convert src.png mask.png -compose darken -composite -trim out.png

它给出了这个 - 我人为地添加了一个红色边框,这样你就可以在StackOverflow的白色背景上看到完整的范围:

enter image description here

或许您想要从面具中修剪框并使用它来裁剪您的来源:

convert mask.png -format %@ info:
113x113+570+33

convert src.png -crop 113x113+570+33 result.png

答案 1 :(得分:0)

我不确定我理解你想要的结果。为什么需要完全透明的图像?这些都可以做你想要的吗?

带有遮罩区域的全尺寸透明图像显示:

convert src.png mask.png -alpha off -compose copy_opacity -composite result1.png

enter image description here

修剪到你想要的部分:

convert src.png mask.png -alpha off -compose copy_opacity -composite -trim +repage result2.png

enter image description here