使用 ImageMagick 实现圆角(背景透明或白色)
我正在尝试使用 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 :带有圆角的结果图像。
提前致谢。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
终于找到了解决方案:
我使用“临时”PNG 文件作为目标。如果输出格式不是GIF或PNG,我使用ImageMagick的“展平”功能,并以白色作为背景。
对于 PNG 输出:只需将 $TMP_PNG 复制到 $DST
对于 GIF 输出:只需将 $TMP_PNG 转换为 $DST
其他:如前所述压平图像。
希望有帮助。
Finally found a solution :
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.
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.