You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为矩形图片添加白色圆角边框(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

步骤说明

  1. 获取尺寸:先读取原图的宽高,计算添加边框后的最终尺寸
  2. 生成圆角边框底图:创建一个透明背景的白色圆角矩形,作为外层边框
  3. 处理原图圆角:给原图添加圆角形状的透明度遮罩,让原图的角落变为透明
  4. 合成图片:将处理好的圆角原图居中叠加到白色圆角边框上,得到最终效果

内容的提问来源于stack exchange,提问作者Rasec Malkic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 01:57:23