Маркировка изображений из текстового файла с помощью команды montage

Маркировка изображений из текстового файла с помощью команды montage

Мы можем использовать эту команду, чтобы маркировать каждое изображение по его имени:

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/пути. Это пример результата:

Группа изображений 4x4 с именем файла @un.txt под каждым из них

В результате все изображения помечаются строкой @un.txtвместо содержимого un.txt. Также я получаю эту ошибку в terminal:

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

Если якопия un.txtв текущий .каталог ( ) и снова запущу указанную выше команду, я получу это изображение (без метки) и следующую ошибку:

Группа изображений 4x4, как и прежде, без текста

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читает из файла.

Связанный контент