使用 ImageMagick 绘制居中矩形
Posted
技术标签:
【中文标题】使用 ImageMagick 绘制居中矩形【英文标题】:Drawing centered rectangle with ImageMagick 【发布时间】:2018-12-05 23:24:13 【问题描述】:使用 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 运算符或属性,尽管我在某个地方(如 How can I use imagemagick attributes in the draw rectangle command?)发现它应该在 IM 7.x 中(这是我正在使用的)。
【问题讨论】:
【参考方案1】:在 ImageMagick 7 中,您应该使用 magick 而不是转换。使用 convert 将调用不支持 fx 内联操作的 ImageMagick 6。在 ImageMagick 7 中,对黑色矩形的 10 像素边框执行此操作:
输入:
magick lena.jpg -fill black -draw "rectangle 10,10 %[fx:w-11],%[fx:h-11]" result.jpg
请注意,应该使用 11 而不是 10,因为图像中的最后一个像素是 w-1,h-1。编号从 0 开始。所以我已经更正了上面的原始答案。
【讨论】:
哦,天哪,所以我遇到的唯一真正问题是使用了错误的命令(我在20
和 10
上犯了一个错误,但这很容易解决)。谢谢!
ImageMagick 6 和 7 之间的差异,请参阅imagemagick.org/script/porting.php#cli
其实fx
命令应该是%[fx:w-11]
,否则你会砍掉一个像素,但无论如何,再次感谢!
确实如此。我打算在我的帖子中纠正这个问题,但我认为这不是那么重要和问题。但很高兴你想通了。
为了回复的准确性,我在帖子中更正了它。以上是关于使用 ImageMagick 绘制居中矩形的主要内容,如果未能解决你的问题,请参考以下文章
使用 Core Graphics 在 UIImage 上绘制矩形