ImageMagick-透明背景上的Alpha蒙版

时间:2019-05-24 22:45:46

标签: bash image-processing imagemagick compose blend-mode

我想使用Imagemagick将一些png合成为一个png。

其中一张图片(b_0_1.png)是一个遮罩。我需要使用添加成分来应用。

但是结果中的背景存在问题,应该是透明的,但是有一个黑色的正方形。

这是我的命令:

Q[c[a["MSISDN"]]]

结果:https://picr.ws/i/6WT

黑色区域应该是透明的。

图片:http://s000.tinyupload.com/index.php?file_id=91925640425537122879

2 个答案:

答案 0 :(得分:1)

在ImageMagick中,您可以

magick -size 256x256 canvas:transparent \
-channel rgb \
img/a_0_0.png -geometry +111+64 -compose over -composite \
img/b_0_1.png -geometry +94+48 -compose plus -composite \
img/c_0_0.png -geometry +108+88 -compose over -composite \
img/d_0_0.png -geometry +102+62 -compose over -composite \
png32:result.png


enter image description here

添加: 我想这就是您要从评论中得到的。

magick -size 256x256 canvas:transparent \
img/a_0_0.png -geometry +111+64 -compose over -composite \
\( img/b_0_1.png -alpha opaque -alpha copy \) -geometry +94+48 -compose plus -composite \
img/c_0_0.png -geometry +108+88 -compose over -composite \
img/d_0_0.png -geometry +102+62 -compose over -composite \
png32:result.png


enter image description here

答案 1 :(得分:1)

使用ImageMagick 7,您可以使用像这样的命令...

magick -background none \
   \( -page +111+64 a_0_0.png \) \
   \( -page +94+48 b_0_1.png -alpha copy -set compose plus \) \
   \( -page +108+88 c_0_0.png \) \
   \( -page +102+62 d_0_0.png \) \
   -page 256x256 -flatten png32:result.png

这将在每个子图像的括号内设置分页几何。

在带有蒙版图像“ b_0_1.png”的括号内,“-alpha副本”摆脱了黑色,并且“ -set compose”将组合方法“ plus”应用于该单个图像。

然后将页面大小设置为256x256,并且所有零件都将根据其页面几何形状进行展平和放置。由于背景设置为“无”,因此在展平子图像时会创建透明画布。

默认为compose方法“ over”,因此它用于没有设置compose方法的图像。使用组合方法“加号”将蒙版图像展平。

我使用bash上的IM6和Windows上的IM7对此进行了测试。对于此IM7示例,我将IM6 bash的“转换”更改为“ magick”。无论哪种版本,它都应该完全相同。