Etiquetar imágenes de un archivo de texto con el comando de montaje

Etiquetar imágenes de un archivo de texto con el comando de montaje

Podemos usar este comando para etiquetar cada imagen por su nombre:

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

Quiero etiquetar imágenes mediante una lista de cadenas, que está escrita en un archivo de texto.Los médicos dicen:

Si el primer carácter de la cadena es @, la etiqueta de la imagen se lee de un archivo titulado por los caracteres restantes de la cadena. Las etiquetas de un archivo son literales y no se reconocen caracteres de formato incrustados.

Pero no pude usar un archivo para proporcionar una etiqueta. Yo uso un comando como este:

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

Arriba, un.txtestá el nombre del archivo de texto en ./img/la ruta. Este es un resultado de muestra:

Grupo de imágenes 4x4 con nombre de archivo @un.txt debajo de cada una

En el resultado, todas las imágenes están etiquetadas con la cadena @un.txten lugar del contenido de un.txt. También me sale este error en terminal:

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

Si yoCopiar un.txtal .directorio actual () y ejecute el comando anterior nuevamente, obtendré esta imagen (no hay etiqueta) y el siguiente error:

Grupo de imágenes 4x4 como antes, sin texto.

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

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

Respuesta1

con atención aesta respuesta, descubrí que probablemente esté relacionado con la vulnerabilidad descubierta en ImageMagick (aquí), así que actualicé el archivo de política de mi sitio eliminando <policy domain="path" rights="none" pattern="@*" />la línea de /etc/ImageMagick/policy.xml. Ahora montagelee desde el archivo.

información relacionada