2017-05-01 2 views
0

Ich verwende ImageMagick programmgesteuert, um einige benutzerdefinierte Transformationen auf ein Bild anzuwenden. Das Skript, das ich laicht einen neuen Prozess bin mit und läuft ImageMagick mit Argumenten ähnlich wie:ImageMagick-Argument zum Festlegen des Ausgabeformats

convert /tmp/source -resize 100x /tmp/transformed 

Und dann liest er das transformierte Bild von /tmp/transformed zurück. Ich möchte die Option hinzufügen, um das Bild in ein anderes Bildformat zu konvertieren, aber aus dem Blick auf die IM-Dokumente für eine Weile ist die einzige Möglichkeit, das Ausgabeziel mit .<ext>, wie folgt anhängen:

convert /tmp/source -resize 100x /tmp/transformed.png 

Gibt es einen anderen Weg? Der einfachste Weg für mich, dies mit dem bereits vorhandenen Skript zu tun, ist ein Argument zu liefern, aber ich kann es nicht finden. Etwas wie:

convert /tmp/source -resize 100x -format png /tmp/transformed 

Ist das möglich? Oder muss ich die Erweiterung an das Ausgabeziel anhängen?

Antwort

0

Ich bin nicht sicher, was Ihre Abneigung für das Anhängen eines Suffix ist, aber eine andere Alternative zu Freds ausgezeichnete Vorschläge ist es, ein „Formatbezeichner“ Präfix zu verwenden, die Ihre Basis Dateinamen unverändert lassen würde - wenn das, was Sie ist versuchen zu erreichen.

convert Image -resize 100x PNG:/tmp/transformed/Image 

Ersatz PNG: mit GIF:, JPEG: usw. gerecht zu werden.

+0

Die Codebase ist einfacher zu bearbeiten, wenn ich diese nicht modifiziere, da die Zeichenfolge "/ tmp/transformed" an vielen Stellen fest codiert ist. Danke für die Lösung! :) –

1

-format png wird in mogrify verwendet und nicht konvertiert, wie ich es verstehe. Sie müssen das Suffix für die Eingabe und das gewünschte Suffix für die Ausgabe in den Eingabe- und Ausgabedateinamen angeben.

convert /tmp/source.suffx -resize 100x /tmp/transformed.png 

vorausgesetzt, png ist das gewünschte Ausgabeformat.

Vielleicht verstehe ich nicht, was Sie wollen. Wenn ja, bitte klarstellen. Sind die Suffixe in der Quelle und transformierten Variablen? Wenn dies der Fall ist, können Sie IM verwenden, um den Quelldateinamen von seinem Suffix zu trennen, indem Sie% t und% e in Zeichenfolgenformaten verwenden. Aber für die Ausgabe müssten Sie das mit Ihrem Dateisystem analysieren. Siehe http://www.imagemagick.org/script/escape.php

Alternativ verwenden mogrify die -format

png unterstützt
mogrify -format png -resize 100x *.suffix 

, dass jede Datei in dem Eingabeverzeichnis mit Suffix .suffix nehmen und konvertieren, das zu png. Ich würde jedoch vorschlagen, dass Sie ein neues Verzeichnis erstellen, in dem alle Ihre Ausgabebilder gespeichert werden, da es Ihre Eingabedateien überschreibt. Sie müssten dann dem obigen Befehl den Pfad path2/newdirectory hinzufügen. siehe http://www.imagemagick.org/Usage/basics/#mogrify

Was sind die tatsächlichen Dateinamen assoziieren mit Quelle und Ziel? Sind diese nur für die echten Dateinamen variabel?

Verwandte Themen