Мы можем использовать эту команду для маркировки каждого изображения его именем:
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/
путь. Это - демонстрационный результат:
В результате все изображения маркированы строкой @un.txt
вместо содержания un.txt
. Также я вкладываю эту ошибку terminal
:
montage.im6: improper image header `./img/un.txt' @
error/txt.c/ReadTXTImage/429
Если я копирую un.txt
к току (.
) каталог и выполнение выше команды снова, я получу это изображение (нет никакой маркировки), и ниже ошибки:
montage.im6: improper image header `./img/un.txt' @
error/txt.c/ReadTXTImage/429.
montage.im6: not authorized `@un.txt' @
error/property.c/InterpretImageProperties/2959.
С вниманием к этот ответ , я нашел, что это, вероятно, связано с уязвимостью, обнаруженной в ImageMagick ( здесь ), таким образом, я обновил свой файл политики сайта путем удаления <policy domain="path" rights="none" pattern="@*" />
строка от /etc/ImageMagick/policy.xml
. Теперь montage
чтения из файла.