Bildungselemente

Bilder skalieren

30.1.2022

Für unterschiedliche Produkte werden unterschiedliche Bildgrößen benötigt. Die Auswahl bewegt sich immer zwischen den Polen:

Hohe Qualität, große Dateigröße vs. Geringe Qualität, kleine Dateigröße

Mit Bilddateien meine ich PNG- und JPEG-Dateien, also wirklich nur Dateiformate, die Pixel speichern. Mit Qualität ist an dieser Stelle das Maß des Bildes bezeichnet. Das ist streng genommen nochmal etwas anderes, ich reduziere das aber an dieser Stelle hierauf.

Ich erstelle häufiger Bilddateien aus einem Vektor. Ich versuche als Ausgangsformat immer Vektoren zu verwenden, um später Output-Formate beliebig skalieren zu können, ohne Qualität zu verlieren. Das geht natürlich nur bei Inhalten, die sich als Vektor speichern lassen. Das Skalieren geht fix über ein Vektorprogramm. Wenn es allerdings viele Dateien sind, wird es aufwändig. Hier hilft das Kommandozeilentool von Inkscape. Über die Kommandozeile kann ich In- und Output definieren und Inkscape berechnet mir automatisch neue Dateien.

Befehl

Ich habe den Befehl bei Stackoverflow gefunden und ihn für meine Handzeichnung Symbolsammlung angepasst. Zunächst werden in einem for-Loop die gewünschten Breiten der Bilder definiert. Dann wird der Befehl mit der Loop-Variable aufgerufen:

for x in 50 100 200 400 800 1600 3200; do inkscape --export-type="png" --export-filename=${x}x${x}.png -w ${x} DATEINAME.svg ; done

In diesem Beispiel erhalte ich also sieben verschiedene PNG-Dateien aus meiner Ausgangsdatei DATEINAME.svg. Die Benennung wird Anhang der Breiten vorgenommen. Unter Windows muss der Befehl minimal angepasst werden (siehe Stackoverflow-Quelle).

Inkscape Terminalproblem unter macOS

In einigen macOS-Versionen kann Inkscape nicht so einfach über das Terminal aufgerufen werden. Die Lösung ist das Anlegen dieser Verknüpfung:

ln -s /Applications/Inkscape.app/Contents/MacOS/inkscape \ /usr/local/bin/inkscape