Mit diesem Befehl können wir jedes Bild mit seinem Namen beschriften:
montage -label '%t' -size 512x512 "./img/*.*[120x90]" -geometry +5+5 photo.png
Ich möchte Bilder mit einer Liste von Zeichenfolgen beschriften, die in eine Textdatei geschrieben wird.Ärzte sagen:
Wenn das erste Zeichen der Zeichenfolge @ ist, wird die Bildbeschriftung aus einer Datei gelesen, deren Titel die restlichen Zeichen der Zeichenfolge enthält. Beschriftungen in einer Datei sind wörtlich zu verstehen, eingebettete Formatierungszeichen werden nicht erkannt.
Ich konnte jedoch keine Datei verwenden, um das Label bereitzustellen. Ich verwende einen Befehl wie diesen:
montage -label @un.txt -size 512x512 "./img/*.*[120x90]" -geometry +5+5 photo.png
Oben un.txt
steht der Name der Textdatei im ./img/
Pfad. Dies ist ein Beispielergebnis:
Im Ergebnis werden alle Bilder mit der Zeichenfolge @un.txt
statt mit dem Inhalt von beschriftet un.txt
. Außerdem erhalte ich diesen Fehler in terminal
:
montage.im6: improper image header `./img/un.txt' @
error/txt.c/ReadTXTImage/429
Wenn ichKopieren un.txt
in das aktuelle ( .
)-Verzeichnis gehe und den obigen Befehl erneut ausführe, erhalte ich dieses Bild (es gibt keine Bezeichnung) und den folgenden Fehler:
montage.im6: improper image header `./img/un.txt' @
error/txt.c/ReadTXTImage/429.
montage.im6: not authorized `@un.txt' @
error/property.c/InterpretImageProperties/2959.
Antwort1
Mit Aufmerksamkeit aufdiese Antwort, fand ich heraus, dass es wahrscheinlich mit der in ImageMagick entdeckten Sicherheitslücke zusammenhängt (Hier), daher habe ich meine Site-Policy-Datei aktualisiert, indem ich <policy domain="path" rights="none" pattern="@*" />
die Zeile aus entfernt habe /etc/ImageMagick/policy.xml
. montage
Liest jetzt aus der Datei.