【问题标题】:Rounded corners using ImageMagick (bakground transparent or white)使用 ImageMagick 的圆角(背景透明或白色)
【发布时间】:2010-12-27 07:23:30
【问题描述】:

我正在尝试使用 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 : 生成的带有圆角的图像。

提前致谢。

【问题讨论】:

    标签: imagemagick rounded-corners


    【解决方案1】:

    终于找到了解决办法:

    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 的“扁平化”功能,以白色为背景。

    convert $TMP_PNG -background white -flatten $DST
    

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

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

    Else : 如前所述将图像展平。

    希望对您有所帮助。

    【讨论】:

    • 阅读此答案的任何人请注意:如果临时掩码文件 $TMP_PNG 没有标识其格式的文件扩展名(例如 .png),那么您需要在变量前面加上它.像这样:png:$TMP_PNGcanvas:none 也是 xc:none 的新写作方式,尽管后者仍然有效。
    猜你喜欢
    • 2018-03-25
    • 1970-01-01
    • 2014-08-21
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多