如何用ImageMagick添加内嵌边框且不改变原图尺寸?
实现ImageMagick内嵌边框(保持原尺寸)
嘿,刚好知道怎么解决这个问题!你想要的是内嵌边框——也就是边框覆盖原图的边缘区域,最终图片尺寸依然保持200x200px,而不是像-border命令那样向外扩展尺寸。这里有两种简单的实现方法:
方法一:直接绘制边框(最直观)
利用-draw命令直接在原图的边缘绘制边框,完全不会改变图片尺寸。命令里的坐标需要根据边框宽度调整,以2px边框为例:
convert old.png -stroke "#cccccc" -strokewidth 2 -fill none -draw "rectangle 1,1 198,198" new.png
-stroke "#cccccc":设置边框颜色-strokewidth 2:边框宽度为2px-fill none:确保矩形内部是空的,不会覆盖原图内容- 矩形坐标
1,1到198,198:因为stroke是居中绘制的,2px宽度的边框需要向内偏移1px,这样刚好覆盖原图的边缘区域,不会超出200x200的尺寸。
方法二:先缩小再补边框(逻辑清晰)
先把原图的边缘区域“砍掉”,再给缩小后的图片添加边框,最终尺寸刚好回到原大小:
convert old.png -shave 2x2 -border 2x2 -bordercolor "#cccccc" new.png
-shave 2x2:将原图的上下左右各裁剪掉2px,得到196x196px的图片-border 2x2:给裁剪后的图片添加2px边框,尺寸回到200x200px,相当于边框代替了原来被裁剪掉的边缘区域。
两种方法都能实现你要的效果,个人推荐第一种,步骤更少,也不需要额外的尺寸计算~
内容的提问来源于stack exchange,提问作者Kannan
相关产品推荐
相关产品推荐

