ImageMagick 边框、留白与投影
用 ImageMagick 加边框、补齐到精确画布尺寸、做带真实透明的圆角、加投影 —— 都是真正能跑通的命令。
添加边框
magick input.jpg -bordercolor white -border 20 output.jpg
magick input.jpg -bordercolor '#e5e7eb' -border 20x40 output.jpg
-border 会撑大画布:1000 像素的图加 20 像素边框后变成 1040 像素宽。如果最终尺寸必须还是 1000,请改用补齐。
补齐到精确画布尺寸
magick input.jpg -resize 1200x1200 -background white \
-gravity center -extent 1200x1200 output.jpg
先把图装进框,剩余部分用背景色填满 —— 电商平台要求所有商品图尺寸一致时就该这么做。不会裁掉任何内容。把背景设成 none 并输出 PNG,就是用透明补边。
带真实透明的圆角
ImageMagick 没有 -round-corners 这种参数。做法是画出一个圆角,镜像出另外三个,四张相乘得到遮罩,最后拷进 alpha 通道:
magick input.png \
'(' +clone -alpha extract \
-draw 'fill black polygon 0,0 0,40 40,0 fill white circle 40,40 40,0' \
'(' +clone -flip ')' -compose Multiply -composite \
'(' +clone -flop ')' -compose Multiply -composite ')' \
-alpha off -compose CopyOpacity -composite output.png
那四个 40 是圆角半径,要一起改。输出必须是 PNG 或 WebP。 写成 JPEG 的话圆角处会变成黑色,因为 JPEG 没有透明通道。
投影
magick input.png \
'(' +clone -background black -shadow 60x12+0+8 ')' \
+swap -background none -layers merge +repage output.png
-shadow 会把图片本身替换成它的影子,所以必须放在 ( +clone … ) 里执行 —— 然后用 +swap 把影子挪到原图后面,-layers merge 压平。
那四个数是 不透明度 x 模糊 + 横向偏移 + 纵向偏移。模糊值取偏移的 1.5 倍左右,影子看起来最自然,不会像贴上去的。
白底卡片式投影
magick input.png \
'(' +clone -background black -shadow 50x14+0+10 ')' \
+swap -background white -layers merge +repage \
-bordercolor white -border 30 output.png
拍立得效果
magick input.jpg -bordercolor white -border 20 \
-bordercolor grey60 -border 1 \
-background none -rotate 4 \
'(' +clone -shadow 60x4+4+4 ')' +swap \
-background none -layers merge +repage output.png
ImageMagick 也内置了一个快捷方式:-polaroid 4。