Startseite
» LINUX
»
Wie man unter Linux mit ImageMagick PNG in JPG konvertiert
Wie man unter Linux mit ImageMagick PNG in JPG konvertiert
Um PNG unter Linux in JPG zu konvertieren , bietet sich ImageMagick am flexibelsten an. Mit ImageMagick 7 lässt sich eine einzelne Datei mit `convert` konvertieren magick input.png output.jpg, während ganze Ordner mit `convert` verarbeitet werden können magick mogrify -format jpg *.png. Falls die PNG-Datei Transparenz aufweist, muss sie zuvor auf einen einfarbigen Hintergrund reduziert werden, da JPEG keinen Alphakanal unterstützt.
ImageMagick unter Linux installieren
ImageMagick ist in den Standard-Repositories der gängigen Linux-Distributionen verfügbar. Die aktuelle Dokumentation empfiehlt das magickProgramm als primären Einstiegspunkt in die Kommandozeile. Die Paketversionen variieren je nach Distribution und Release, daher bieten ältere Systeme möglicherweise noch ImageMagick-6-Befehle convertohne mogrifydas magickPräfix an.
Verteilung
Befehl installieren
Ubuntu / Debian
sudo apt update && sudo apt install imagemagick
Fedora
sudo dnf install ImageMagick
Arch Linux
sudo pacman -S imagemagick
openSUSE
sudo zypper install ImageMagick
Installieren Sie ImageMagick mit dem Paketmanager Ihrer Distribution, bevor Sie mit der Konvertierung beginnen.
Überprüfen Sie nach der Installation die Version mit `imagemagick -v` magick -version. Falls dieser Befehl nicht verfügbar ist, ImageMagick aber installiert ist, versuchen Sie es mit `imagemagick -v` convert -versionoder ` imagemagick mogrify -version-v`. Die offizielle Dokumentation der ImageMagick -Befehlszeilentools erläutert die Befehlsstruktur von ImageMagick 7. Ubuntu veröffentlicht außerdem die offiziellen ImageMagick-Paketlisten , und Fedora pflegt seine ImageMagick-Paketseite .
Konvertiere eine PNG-Datei in JPG.
Öffnen Sie ein Terminal und wechseln Sie in den Ordner, der das Bild enthält. Zum Beispiel:
cd ~/Pictures
Anschließend konvertieren Sie die Datei, indem Sie der Ausgabedatei eine .jpgErweiterung geben:
magick photo.png photo.jpg
Eine einfache ImageMagick-Konvertierung behält die ursprüngliche PNG-Datei bei und schreibt eine neue JPG-Datei.
Die Originaldatei photo.pngbleibt erhalten, da der Befehl in eine andere Ausgabedatei schreibt. Um die JPEG-Komprimierungsqualität explizit auszuwählen, fügen Sie Folgendes -qualityvor der Ausgabedatei hinzu:
magick photo.png -quality 90 photo.jpg
ImageMagick akzeptiert JPEG-Qualitätswerte von 1 bis 100. Höhere Werte erhalten in der Regel mehr Details, führen aber zu größeren Dateien. Die formatspezifische Funktionsweise ist in der offiziellen -qualityOptionsreferenz beschrieben.
Konvertieren Sie eine transparente PNG-Datei, ohne einen unerwünschten Hintergrund zu erhalten.
PNG kann transparente Pixel speichern; JPEG nicht. Enthält die Quelldatei Transparenz, reduzieren Sie diese auf die gewünschte Hintergrundfarbe, bevor Sie sie als JPG speichern. Für einen weißen Hintergrund führen Sie folgenden Befehl aus:
magick logo.png -background white -alpha remove -alpha off logo.jpg
Transparente PNG-Pixel werden vor der Konvertierung in JPEG, das keinen Alphakanal besitzt, auf Weiß reduziert.
Die -alpha removeOperation überlagert das Bild mit dem ausgewählten Hintergrund und -alpha offdeaktiviert dabei den Alphakanal für die Ausgabe. ImageMagick dokumentiert dieses Verhalten in seinen offiziellen Alphakanal-Optionen .
Mehrere PNG-Dateien gleichzeitig in JPG konvertieren
.pngUm alle Dateien im aktuellen Verzeichnis in Kleinbuchstaben umzuwandeln , verwenden Sie mogrify:
magick mogrify -format jpg *.png
Der mogrify -format jpgBefehl erstellt passende JPG-Dateien für alle PNGs im aktuellen Ordner.
Laut der offiziellen mogrifyDokumentation von ImageMagick bleiben -format jpgdie PNG-Dateien unverändert und es werden entsprechende JPG-Dateien erstellt. Falls Ihre PNGs Transparenzen enthalten können, kombinieren Sie die Optionen:
magick mogrify -background white -alpha remove -alpha off -quality 90 -format jpg *.png
Seien Sie vorsichtig, wenn der Ordner bereits JPG-Dateien mit denselben Basisnamen enthält, da die neuen Ausgaben diese Dateien überschreiben können. Um einen sichereren Arbeitsablauf zu gewährleisten, sollten Sie die Konvertierungen in ein separates Verzeichnis schreiben.
mkdir -p jpg
for f in *.png; do
magick "$f" -background white -alpha remove -alpha off -quality 90 "jpg/${f%.png}.jpg"
done
Kleinste Dateinamendetails, die einen Stapelverarbeitungsvorgang zum Scheitern bringen können
Linux-Dateinamen unterscheiden üblicherweise zwischen Groß- und Kleinschreibung, daher *.pngpasst das Wildcard-Zeichen normalerweise nicht auf Dateien, die mit .com enden .PNG. Führen Sie die Batch-Datei gegebenenfalls erneut aus *.PNG. Enthält ein Dateiname Leerzeichen, setzen Sie ihn in Anführungszeichen, z. B. .com magick "Summer Photo.png" "Summer Photo.jpg". Diese Details verhindern, dass die Shell den falschen Pfad an ImageMagick übergibt.
Was passiert, wenn magickes nicht gefunden wird?
Einige ältere Linux-Distributionen enthalten noch ImageMagick 6. Verwenden Sie in diesem Fall `imagemagick` convert photo.png photo.jpgfür ein einzelnes Bild und `imagemagick` mogrify -format jpg *.pngfür einen Stapel. Falls keiner der beiden Befehle existiert, überprüfen Sie, ob das ImageMagick-Paket erfolgreich installiert wurde und ob sich die Binärdateien in Ihrem Shell-Verzeichnis befinden PATH.
Für die meisten Anwender gilt in der Praxis eine einfache Regel: Verwenden Sie magickImageMagick 7, reduzieren Sie die Transparenz vor dem Erstellen von JPEGs und verwenden Sie es, magick mogrify -format jpgwenn Sie einen ganzen Ordner schnell verarbeiten müssen.