如何为矩形图片添加白色圆角边框(ImageMagick 7)
为图片添加带圆角的白色边框(ImageMagick 7)
需求与问题
想要给图片添加带圆角的白色边框,但尝试常规边框命令后只能得到直角边框:
convert input.jpg -shave 1x1 -bordercolor white -border 10 output.jpg
此前找到的黑色圆角边框方案,将填充色和底色替换为白色后,图片内部角落仍为直角,无法达到预期的全圆角效果。
修正后的解决方案
问题出在原方案使用的darken合成模式不适合白色边框场景,改用透明度遮罩的方式可以完美解决。以下是适配白色圆角边框的脚本:
#!/bin/bash # 获取输入图片的宽高 read iw ih < <(magick identify -format "%w %h" input.jpg) # 设置边框厚度和圆角半径,可按需调整 border_thickness=10 corner_radius=20 # 计算输出图片的尺寸(原图尺寸 + 两倍边框厚度) ((ow=iw+2*border_thickness)) ((oh=ih+2*border_thickness)) magick -size ${ow}x${oh} xc:none -fill white -draw "roundrectangle 0,0 $ow,$oh $corner_radius,$corner_radius" \ \( input.jpg -alpha set \ -size ${iw}x${ih} xc:none -fill black -draw "roundrectangle 0,0 $iw,$ih $corner_radius,$corner_radius" \ -compose copyopacity -composite \) \ -gravity center -compose over -composite output.jpg
步骤说明
- 获取尺寸:先读取原图的宽高,计算添加边框后的最终尺寸
- 生成圆角边框底图:创建一个透明背景的白色圆角矩形,作为外层边框
- 处理原图圆角:给原图添加圆角形状的透明度遮罩,让原图的角落变为透明
- 合成图片:将处理好的圆角原图居中叠加到白色圆角边框上,得到最终效果
内容的提问来源于stack exchange,提问作者Rasec Malkic
相关产品推荐
相关产品推荐

