Мы можем использовать эту команду, чтобы маркировать каждое изображение по его имени:
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.
решение1
С вниманием кэтот ответ, я обнаружил, что это, вероятно, связано с уязвимостью, обнаруженной в ImageMagick (здесь), поэтому я обновил свой файл политики сайта, удалив <policy domain="path" rights="none" pattern="@*" />
строку из /etc/ImageMagick/policy.xml
. Теперь montage
читает из файла.