Ich habe einen Ordner mit PNG-Dateien mit transparentem Hintergrund. Ich möchte sie über die Befehlszeile konvertieren und die transparenten Hintergründe der Bilder beibehalten.
Ich würde mich über jede Hilfe freuen.
Da JPGs keine Transparenz unterstützen, wie kann ich den Hex-Wert der Hintergrundfarbe des Ausgabe-JPGs angeben? Im Moment ist es standardmäßig #ffffff
? Ich habe dieses Skript ausprobiert, aber es gibt den Ausgabe-JPGs weiße Hintergründe:
mogrify -quality 100 -format jpg *.png
Aktualisieren
Ich habe diese PNG-Dateien in Inkscape erstellt. Ich sollte erwähnen, dass mein Ziel bei der Konvertierung dieser PNGs in JPGs darin besteht, gezackte Kanten auf kreisförmigen oder eckigen Objekten zu entfernen. Die PNGs haben derzeit gezackte Kanten und ich habe gelesen, dass das Konvertieren in JPGs dieses Problem lösen könnte. Das Konvertieren mit der in der Antwort von Christian Skjødt beschriebenen Methode führt jedoch zu noch schlechteren gezackten Kanten. Gibt es eine Möglichkeit, die PNGs in JPG zu konvertieren und auch Anti-Aliasing oder eine andere Technik zu verwenden, um die gezackten Kanten zu entfernen? Danke für die Hilfe.
Antworten:
Um die Kanten zu glätten, können Sie PNGs erstellen, die 10x größer als Ihre Zielgröße sind, und dann die Größe mit Anti-Aliasing auf JPG ändern. Ich habe dies mit Python und der Python Imaging Library erfolgreich gemacht, bin mir aber nicht sicher, wie ich es mit anderen Tools machen soll.
quelle
Das JPEG-Format unterstützt keine Transparenz. Daher ist es nicht möglich, die transparenten Hintergründe beizubehalten, wenn Sie das JPEG-Format verwenden möchten (oder müssen). In Wikipedia finden Sie eine Übersicht über die Funktionen verschiedener Bildformate.
Beachten Sie, dass JPEG 2000 zwar Transparenz unterstützt, dies jedoch weitaus seltener ist als das JPEG-Format. Es hängt von Ihrem Anwendungsfall ab, ob dies eine praktikable Alternative ist.
quelle
Zu Ihrer zweiten Frage:
Um die Hintergrundfarbe beim Konvertieren Ihrer Bilder festzulegen, können Sie die folgende
-fill
Option verwenden:Die Verwendung
-background
liefert ähnliche Ergebnisse. Vergiss das nicht-opaque none
.quelle
Es tut mir leid, dass das
jpeg
Format auf keinen Fall unterstützt wird,alpha channel
sodass Sie keine Transparenz haben können.quelle
Je nachdem, was Sie mit dem Bild tun möchten, kann der Alphakanal möglicherweise einem separaten Graustufenbild oder einer Bitmaske zugewiesen werden. Das Programm, das das Bild verwendet, wendet das Hilfsbild als durchscheinende / transparente Werte an . Obwohl es letztendlich besser ist, das Programm so zu ändern, dass es Alpha-PNG unterstützt.
quelle