问题
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