label image from text file por montagem

1

Podemos usar este comando para rotular cada imagem pelo seu nome:

montage -label '%t' -size 512x512 "./img/*.*[120x90]" -geometry +5+5 photo.png

Eu quero rotular imagens por lista de strings, que é escrita em um arquivo de texto. Os documentos dizem :

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.

Mas não consegui usar um arquivo para fornecer um rótulo. Eu uso um comando como este:

montage -label @un.txt -size 512x512 "./img/*.*[120x90]" -geometry +5+5 photo.png 

Acima, un.txt é o nome do arquivo de texto em ./img/ caminho. Este é um resultado de amostra:

Comoresultado,todasasimagensmarcadaspelastring@un.txt,emvezdoconteúdodeun.txt.Tambémreceboesteerroemterminal:

montage.im6:improperimageheader'./img/un.txt'@error/txt.c/ReadTXTImage/429

Seeucopiarun.txtparaodiretórioatual(.)eexecutarocomandoacimanovamente,obtenhoestaimagem(nãohárótulo)eabaixodoerro:

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

montage.im6: not authorized '@un.txt' @ error/property.c/InterpretImageProperties/2959.

    
por hasanghaforian 07.09.2016 / 18:57

1 resposta

0

Com atenção para esta resposta , descobri que provavelmente está relacionado à vulnerabilidade descoberta no ImageMagick (aqui ), atualizei o arquivo de políticas do meu site removendo <policy domain="path" rights="none" pattern="@*" /> line de /etc/ImageMagick/policy.xml . Agora, montage lê o arquivo.

    
por hasanghaforian 10.09.2016 / 06:34