Rounded corners using ImageMagick (bakground transparent or white)

╄→尐↘猪︶ㄣ 提交于 2019-12-10 03:41:37

问题


I'm trying to add rounded corners to my images using ImageMagick.

If the input image is a PNG or GIF file my script is working correctly.

But if my input file is a JPEG file, the corners are black. I'd like to use a custom corner color in that case (ex. white) any idea ?

Here's my working bash script :

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

Parameters are :

$SRC : the input image $W : width of input image $H : height of input image $MASK : the mask image which contains transparent corners $DST : the resulting image with rounded corners.

Thanks in advance.


回答1:


Finally found a solution :

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

I'm using a "temp" PNG file as destination. If the output format is not GIF or PNG, I use the "flatten" function of ImageMagick with the white color as background.

convert $TMP_PNG -background white -flatten $DST

For PNG output : simply copy $TMP_PNG to $DST

For GIF output : simply convert $TMP_PNG to $DST

Else : flatten the image as said before.

Hope that helps.



来源:https://stackoverflow.com/questions/1915726/rounded-corners-using-imagemagick-bakground-transparent-or-white

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!