Art*_*tem 0 bash imagemagick imagemagick-convert
我需要编写一个 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
Run Code Online (Sandbox Code Playgroud)
它使用输入图像“%[w]”的宽度来设置标签的宽度。它将文本颜色设置为白色,背景设置为半透明黑色,“#00000080”。
在括号内它会创建您的标签。它使用“扭曲 SRT”将标签缩小一点,将其从边缘拉入。然后它会稍微缩小标签以在其周围添加一些透明空间。
创建标签后,它将重力设置为“南”并将标签合成到输入图像上。它通过写入输出文件来完成。
使用 IM 7,您需要将“convert”更改为“magick”。对于 Windows,将续行反斜杠“\”更改为插入符“^”,并删除转义括号的反斜杠。
编辑添加:通常您会在制作“标签:”之前使用“-size WxH”将其限制在特定尺寸内。我使用“-set option:size”代替,因为它允许在 IM 6 中使用百分比转义,如“%[w]”。这样标签尺寸是相对于任何输入图像宽度的。