モンタージュコマンドを使用してテキストファイルから画像にラベルを付ける

モンタージュコマンドを使用してテキストファイルから画像にラベルを付ける

このコマンドを使用して、各画像に名前でラベルを付けることができます。

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ファイルから読み取ります。

関連情報