使用ImageMagick绘制居中的矩形

3
使用CLI,我想要在一张图片上添加一个黑色矩形,该矩形需要满足以下两点:1)居中;2)距离每个边缘X像素。
基本上,我需要的是与-border相反的效果(不是添加特定颜色的边框,而是保留X像素作为边框,然后将其余部分涂成黑色。此外,图片尺寸不应更改)。
我原本期望的操作如下所示,但并未奏效:
convert myImage.jpg -fill black -draw "rectangle 10,10 %[fx:w-20],%[fx:h-20]" outImage.jpg

...一个10像素的“边框”。看起来-draw不接受FX操作符或属性,尽管我在某个地方找到了(比如在如何在绘制矩形命令中使用imagemagick属性?),说它应该在IM 7.x(这是我正在使用的版本)中支持。

1个回答

6
在ImageMagick 7中,你应该使用magick而不是convert。使用convert将调用不支持fx内联操作的ImageMagick 6。在ImageMagick 7中,为黑色矩形周围的图像添加10像素边框,请按如下方式操作:
输入: enter image description here
magick lena.jpg -fill black -draw "rectangle 10,10 %[fx:w-11],%[fx:h-11]" result.jpg

请注意,应该使用11而不是10,因为图像中的最后一个像素是w-1,h-1。编号从0开始。因此,我已经更正了我的原始答案。

哦,我的天啊,我唯一真正的问题就是使用了错误的命令(而且我在 2010 之间犯了一个错误,但这很容易解决)。谢谢! - Edu Garcia
1
有关ImageMagick 6和7之间的差异,请参见https://imagemagick.org/script/porting.php#cli - fmw42
1
实际上,fx 命令应该是 %[fx:w-11],否则你会切掉一个像素,但无论如何,再次感谢! - Edu Garcia
那是对的。我本来要在我的帖子中纠正它,但我觉得这不是很重要的问题。但很高兴你找出来了。 - fmw42
1
我在我的帖子中进行了更正,以确保回复的准确性。 - fmw42

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