Imagemagick-如何创建适合其大小的注释到任何图像中?

问题描述 投票:0回答:1

我需要编写一个bash脚本,以使用imagemagick注释给定的图像。问题在于,该图像可以是任何大小,并且其注释在任何图像上都应该看起来几乎相同。

输出结果在任何图像上都应该像这样:

image

所以我想指出几点:

  1. 如何绘制带有文本的透明矩形,它将根据图像大小调整其大小?
  2. 如何像示例中一样将此矩形放置在图像的底部?
bash imagemagick imagemagick-convert
1个回答
3
投票

使用ImageMagick版本6或7,您可以将标签的大小设置为适合任何输入图像,并具有半透明的背景,然后将其在输入图像的底部进行合成以获得您所描述的结果。这是使用IM 6执行的命令...

convert input.png -set option:size %[w]x \
   -fill white -background "#00000080" \
   \( label:"This is my text." \
      -virtual-pixel background -distort SRT "0.8 0" \
      -virtual-pixel none -distort SRT "0.8 0" \) \
   -gravity south -composite result.png

即使用输入图像“%[w]”的宽度来设置标签的宽度。它将文本颜色设置为白色,背景设置为半透明黑色,“#00000080”。

在括号内会创建您的标签。它使用“扭曲SRT”将标签缩小一点,以将其从边缘拉入。然后它将标签进一步缩小,以在标签周围添加一些透明空间。

创建标签后,它将重力设置为“南”,并将标签合成到输入图像上。通过写入输出文件结束。

使用IM 7,您需要将“转换”更改为“魔术”。对于Windows,将连续的反斜杠“ \”更改为插入符号“ ^”,并消除转义括号的反斜杠。

编辑添加:通常,在制作“标签:”之前,请先使用“ -size WxH”,以将其限制在特定尺寸内。我改用了“ -set option:size”,因为它允许在IM 6中使用百分比转义,例如“%[w]”。这样,标签尺寸就相对于任何输入图像宽度而言。

© www.soinside.com 2019 - 2024. All rights reserved.