We can use this command to label each image by its name:
montage -label '%t' -size 512x512 "./img/*.*[120x90]" -geometry +5+5 photo.png
I want to label images by a list of strings, which is written in a text file. Docs say:
If the first character of string is @, the image label is read from a file titled by the remaining characters in the string. Labels in a file are literal, no embedded formatting characters are recognized.
But I could not use a file to provide label. I use a command like this:
montage -label @un.txt -size 512x512 "./img/*.*[120x90]" -geometry +5+5 photo.png
un.txt is the name of text file in
./img/ path. This is a sample result:
In the result, all images are labeled with the string
@un.txt instead of content of
un.txt. Also I get this error in
montage.im6: improper image header `./img/un.txt' @ error/txt.c/ReadTXTImage/429
If I copy
un.txt to the current (
.) directory and run above command again, I will get this image (there is no label) and below 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.