使用 montage 命令标记文本文件中的图像

使用 montage 命令标记文本文件中的图像

我们可以使用此命令来标记每个图像的名称:

montage -label '%t' -size 512x512 "./img/*.*[120x90]" -geometry +5+5 photo.png

我想用写在文本文件中的字符串列表来标记图像。文档说

如果字符串的第一个字符是 @,则从以字符串中剩余字符为标题的文件中读取图像标签。文件中的标签是文字,不识别任何嵌入的格式字符。

但我无法使用文件来提供标签。我使用如下命令:

montage -label @un.txt -size 512x512 "./img/*.*[120x90]" -geometry +5+5 photo.png 

以上un.txt是路径中的文本文件的名称./img/。这是一个示例结果:

4x4 图像组,每张图片下都有文件名 @un.txt

结果,所有图像都标有字符串,@un.txt而不是内容un.txt。此外,我在中也遇到了此错误terminal

montage.im6: improper image header `./img/un.txt' @
error/txt.c/ReadTXTImage/429

如果我复制 un.txt到当前(.)目录并再次运行上述命令,我将得到此图像(没有标签)和以下错误:

4x4 图像组与之前相同,无文本

montage.im6: improper image header `./img/un.txt' @
error/txt.c/ReadTXTImage/429. 

montage.im6: not authorized `@un.txt' @
error/property.c/InterpretImageProperties/2959.

答案1

注意这个答案,我发现它可能与 ImageMagick 中发现的漏洞有关(这里),因此我通过<policy domain="path" rights="none" pattern="@*" />从中删除行来更新我的站点策略文件/etc/ImageMagick/policy.xml。现在montage从文件中读取。

相关内容