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

标签 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 :生成的带有圆角的图像。

提前致谢。

最佳答案

终于找到了解决办法:

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

否则:如前所述将图像展平。

希望有帮助。

关于imagemagick - 使用 ImageMagick 圆角(背景透明或白色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1915726/

相关文章:

ffmpeg - 如何将 16 位 RGB 帧缓冲区转换为可视格式?

perl - ImageMagick命令行选项顺序(以及命令行参数的类别)

android - RoundedImageView - 添加填充而不裁剪图像

java - 如何在 java 中创建圆形 JButton ..?

ruby - ImageMagick 和 RMagick 安装问题

imagemagick - 如何合并这些命令以在ImageMagick中实现圆形裁剪?

perl - 为什么 Perl 的 Image::Magick 会在半透明图像周围创建轮廓,而合成图像却不会?

html - 如何在不使用溢出 : hidden or applying border-radius to an unknown number of child elements? 的情况下获得圆 Angular

ios - 如何在 iPhone 上创建圆角 UILabel?