使用 ImageMagick 绘制居中矩形
Drawing centered rectangle with ImageMagick
我想使用 CLI 向图像添加一个黑色矩形,该图像 1) 居中并且 2) 从每个边缘开始 X 像素。
基本上,我几乎想要 -border
的反面(而不是添加某种颜色的边框,我想保留图像的 X 像素作为边框,然后将其他所有内容涂成黑色。此外,图像大小不应更改)。
我期望工作但没有工作的东西是:
convert myImage.jpg -fill black -draw "rectangle 10,10 %[fx:w-20],%[fx:h-20]" outImage.jpg
...对于 10 像素的 "border"。看起来 -draw
不接受 FX 运算符或属性,尽管我在某处(如 How can I use imagemagick attributes in the draw rectangle command? 中)发现它应该在 IM 7.x 中(我正在使用)。
在 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开始。所以我已经更正了上面的原始答案。
我想使用 CLI 向图像添加一个黑色矩形,该图像 1) 居中并且 2) 从每个边缘开始 X 像素。
基本上,我几乎想要 -border
的反面(而不是添加某种颜色的边框,我想保留图像的 X 像素作为边框,然后将其他所有内容涂成黑色。此外,图像大小不应更改)。
我期望工作但没有工作的东西是:
convert myImage.jpg -fill black -draw "rectangle 10,10 %[fx:w-20],%[fx:h-20]" outImage.jpg
...对于 10 像素的 "border"。看起来 -draw
不接受 FX 运算符或属性,尽管我在某处(如 How can I use imagemagick attributes in the draw rectangle command? 中)发现它应该在 IM 7.x 中(我正在使用)。
在 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开始。所以我已经更正了上面的原始答案。