使用ImageMagick的圆角(背景透明或白色)

时间:2009-12-16 16:12:23

标签: imagemagick rounded-corners

我正在尝试使用ImageMagick为我的图像添加圆角。

如果输入图像是PNG或GIF文件,我的脚本工作正常。

但如果我的输入文件是JPEG文件,则角落是黑色的。我想在这种情况下使用自定义角色(例如白色)吗?

这是我的工作bash脚本:

convert -size "$W"x"$H" xc:none -draw "roundrectangle 0,0,$W,$H,$R,$R" $MASK
convert $SRC -matte $MASK -compose DstIn -composite $DST

参数是:

$ SRC:输入图像 $ W:输入图像的宽度 $ H:输入图像的高度 $ MASK:包含透明角的蒙版图像 $ DST:带圆角的结果图像。

提前致谢。

1 个答案:

答案 0 :(得分:11)

终于找到了解决方案:

convert -size "$W"x"$H" xc:none -draw "roundrectangle 0,0,$W,$H,$R,$R" $MASK
convert $SRC -matte $MASK -compose DstIn -composite $TMP_PNG

我正在使用“临时”PNG文件作为目的地。如果输出格式不是GIF或PNG,我使用ImageMagick的“flatten”功能,白色作为背景。

convert $TMP_PNG -background white -flatten $DST

对于PNG输出:只需将$ TMP_PNG复制到$ DST

对于GIF输出:只需将$ TMP_PNG转换为$ DST

否则:如前所述平整图像。

希望有所帮助。