Imagemagick - 如何创建适合任何图像大小的注释?
Imagemagick - How to create an annotation that would fit its size into any image?
我需要编写一个 bash 脚本来使用 imagemagick 注释给定的图像。问题是,该图像可以是任何大小,并且其注释在任何图像上看起来应该几乎相同。
输出结果在任何图像上都应如下所示:
所以有几点我想弄清楚:
- 如何绘制带有文字的透明矩形,它会根据图片大小调整大小?
- 如何像示例中那样将此矩形放置在图像的底部?
使用 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”。
在括号内它会创建您的标签。它使用 "distort SRT" 将标签缩小一点以将其从边缘拉入。然后它将标签缩小一点以在其周围添加一些透明 space。
创建标签后,它将重力设置为 "south" 并将标签合成到输入图像上。它通过写入输出文件来完成。
使用 IM 7,您需要将 "convert" 更改为 "magick"。对于 Windows,将续行反斜杠“\”更改为脱字符“^”,并去掉括号外的反斜杠。
编辑添加:通常您会在制作 "label:" 之前使用“-size WxH”将其限制在特定尺寸内。我改用“-set option:size”,因为它允许在 IM 6 中使用像“%[w]”这样的百分比转义。这样标签尺寸是相对于任何输入图像宽度的。
我需要编写一个 bash 脚本来使用 imagemagick 注释给定的图像。问题是,该图像可以是任何大小,并且其注释在任何图像上看起来应该几乎相同。
输出结果在任何图像上都应如下所示:
所以有几点我想弄清楚:
- 如何绘制带有文字的透明矩形,它会根据图片大小调整大小?
- 如何像示例中那样将此矩形放置在图像的底部?
使用 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”。
在括号内它会创建您的标签。它使用 "distort SRT" 将标签缩小一点以将其从边缘拉入。然后它将标签缩小一点以在其周围添加一些透明 space。
创建标签后,它将重力设置为 "south" 并将标签合成到输入图像上。它通过写入输出文件来完成。
使用 IM 7,您需要将 "convert" 更改为 "magick"。对于 Windows,将续行反斜杠“\”更改为脱字符“^”,并去掉括号外的反斜杠。
编辑添加:通常您会在制作 "label:" 之前使用“-size WxH”将其限制在特定尺寸内。我改用“-set option:size”,因为它允许在 IM 6 中使用像“%[w]”这样的百分比转义。这样标签尺寸是相对于任何输入图像宽度的。