way*_*boy 4 imagemagick imagemagick-convert
我需要创建一个图像用作翻转背景图像。这是一个分为 8 部分的圆形图案。这是主图像的屏幕截图(具有透明度的 png):

这是遮罩图像的屏幕截图。它的大小与主图像相同,并具有“饼”块,以便掩盖除悬停区域之外的所有区域。

我添加了屏幕截图,因为我相信答案应该非常简单(当您知道答案时,不是所有答案都很简单吗?!),所以我会节省带宽,但如果有帮助,我可以上传原始文件。
这是我用来创建新的蒙版图像的命令:
convert main.png \( mask.png -colorspace gray -alpha off \) \
-compose copy-opacity -composite new.png
Run Code Online (Sandbox Code Playgroud)
问题是创建的新图像已将原始图像的 Alpha 展平为黑色背景:

如何让 Imagemagick 保留原始 png 的透明度?
您需要蒙版合成来执行此操作。 http://imagemagick.org/Usage/compose/#mask
该技术是将原始图像(src)合成到相同尺寸的完全透明图像(dst)上,使用掩模来限制合成区域(掩模)。它是该运算符的一个特例-composite,涉及 3 个图像,而不是像其他 compose 方法那样涉及 2 个图像。您没有-compose为此指定任何模式。
获得此技术所需的完全透明 dst 的快速方法是克隆 src 图像并将其 alpha 通道清零,然后交换 src 和 dst 的顺序,以便它们处于正确的顺序以便进行操作-composite:
convert main.png -alpha on \( +clone -channel a -fx 0 \) +swap mask.png -composite out.png
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9879 次 |
| 最近记录: |