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.txt
está el nombre del archivo de texto en ./img/
la ruta. Este es un resultado de muestra:
En el resultado, todas las imágenes están etiquetadas con la cadena @un.txt
en 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.txt
al .
directorio actual () y ejecute el comando anterior nuevamente, obtendré esta imagen (no hay etiqueta) y el siguiente error:
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 montage
lee desde el archivo.