我需要创建一个用作翻转背景图像的图像。这是一个圆形图案,分为8个部分。这是主图像的屏幕抓图(png具有透明度):
这是屏幕图像的屏幕抓图。它与主图像大小相同,并以“馅饼”为特色,以掩盖除了悬停在其上的扇区之外的所有部分。
我包括screengrabs,因为我相信答案应该非常简单(当你知道它们时,并不是所有的答案都很简单吗?!)所以我会节省带宽,但如果它有用,我可以上传原始文件。
这是我用来创建新蒙版图像的命令:
convert main.png \( mask.png -colorspace gray -alpha off \) \
-compose copy-opacity -composite new.png
问题是创建的新图像将原始图像的alpha变为黑色背景:
如何让Imagemagick保留原始png的透明度?
答案 0 :(得分:2)
你想要蒙面合成来做到这一点。 http://imagemagick.org/Usage/compose/#mask
该技术是将原始图像(src)组合到相同大小(dst)的完全透明图像上,使用遮罩来限制构图区域(遮罩)。这是-composite
运算符的一个特例,涉及3个图像,而不是其他2个组合方法。您没有为此指定任何-compose
模式。
获得此技术所需的完全透明dst的一种快速方法是克隆src图像并将其alpha通道清零,然后交换src和dst的顺序,使它们的顺序正确{ {1}}要遵循的操作:
-composite
答案 1 :(得分:0)
我对Dst_In
不满意,因为它似乎忽略了蒙版的灰度。
这个对我有用:
composite -compose Dst_In \( mask.png -alpha copy \) main.png -alpha Set PNG32:result.png
或
convert -compose Dst_In \( mask.png -alpha copy \) main.png -alpha Set -composite PNG32:result.png
-alpha copy
方法将两个图像的Alpha通道相乘。这里的技巧是将灰度掩码转换为alpha通道,使用here完成。