如何使用ImageMagick在图像上添加内边框和一些填充?

4
我将使用 imagemagick 给一张图片添加边框。
以下代码可以添加边框:
convert source.jpg -shave 10x10 -bordercolor red -border 2 final.jpg

上面的代码生成了这张图片:

enter image description here

然而,我需要生成类似于以下内容的东西:

enter image description here

如果您看第二张图片中的红色边框,您会发现它与我当前使用ImageMagick创建的第一张图片之间的差异。请问有人能给予建议吗?提前致谢。
3个回答

4
一种选择是绘制一个矩形,但克隆、边框和组合图像可能更容易。
convert wizard: -negate \
  \( +clone -shave 10x10 -bordercolor red -border 2 -geometry +8+8  \) \
  -compose atop -composite output.png

输出

为了更容易看到,加入否定字。


有没有办法给那个红色边框加上半径? - user2056633
1
请通过在简单矩形的位置上绘制圆角矩形来查看bozo的答案。请参阅http://www.imagemagick.org/Usage/draw/#primitives。 - fmw42

4

您没有说明您使用的版本或编程语言。

convert wizard: -stroke red -strokewidth 2 -fill transparent -draw "roundrectangle 10,10 470,627 10,10" output.png

如果使用版本7,您可以在命令中计算尺寸,否则您需要获取图像的尺寸,进行计算并将其与变量一起输入到命令中。


2
我感觉你想把边框嵌入到图片的可定制内部,如果是这样,你应该使用7版本的magick命令,并让 ImageMagick 自己计算位置。
假设您想要边框距每个边缘50个像素,请按如下方式操作:
inset=50
magick burger.jpg -strokewidth 5 -fill none -stroke red \
   -draw "roundrectangle $inset,$inset %[fx:w-$inset],%[fx:h-$inset] 10,10" result.png

在这里输入图片描述

如果你改变:

inset=10

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接