Linux: Bilder per Kommandozeile skalieren und umbenennen

Bits & Bytes

Linux: Bilder per Kommandozeile skalieren und umbenennen

Kategorie-Bild „Bits & Bytes“ | aufpunktundkomma.de

Im Rahmen meiner Anleitungen, die ich zu technischen Themen inzwischen immer öfter und mit Freude hier in meinem Blog schreibe, bin ich nun schon ein paarmal auf das Problem gestoßen, eine Vielzahl von Bildern nacheinander für meine Website skalieren zu müssen. Wer viel im Internet unterwegs ist oder sich etwas mit SEO (Suchmaschinenoptimierung) auskennt, wird wissen, wieso das Skalieren wichtig ist: Die Inhalte von Websites sollen im Idealfall schnell verfügbar sein – lange Ladezeiten werden weder von den Seitenbesuchern noch von Suchmaschinen wie Google gern gesehen. Schlimmstenfalls werden die entsprechenden Seiten abgestraft, sprich: Sie erscheinen im Ranking weiter unten. Damit das schnelle Laden von Websites gelingt, dürfen die verwendeten Bilder also nicht zu groß sein. Auch wer wie in meinem Fall besondere Maße beachten muss, damit sich alles gut ins Webdesign einfügt, kommt ums Skalieren nicht herum.

Warum nicht GIMP?

Nun könnte man das Skalieren in GIMP oder anderen Bildbearbeitungsprogrammen manuell für jedes Bild einzeln vornehmen – bei einer Vielzahl von Bildern, wie es bei mir häufig der Fall ist, wäre das allerdings sehr mühsam und zeitintensiv. Viel schöner wäre es doch, diesen Vorgang irgendwie zu automatisieren, dachte ich mir also und fing an zu recherchieren. Eine Anleitung, wie sich Bilder per Kommandozeile stapelweise skalieren lassen, war schnell gefunden; ebenso wie man mehrere Dateien – in meinem Fall die vorab skalierten Bilder – in nur einem Vorgang umbenennen kann. Linux bietet zwar die Mehrfachumbenennung mithilfe eines Suffixes – die zur Verfügung stehenden Suffixe, wie im folgenden Bildschirmfoto zu sehen, waren jedoch allesamt keine Option für mich:

Dateien – Auswahlmöglichkeiten „Automatische Nummerierung“

Für meinen Fall suchte ich eine andere Lösung: Ich wollte sämtliche Bilder im selben Verzeichnis ablegen und die Original-Bilder später von den skalierten unterscheiden können, die für diesen Zweck _skaliert im Dateinamen tragen sollten. Ich überlegte, dass es doch möglich sein müsste, Bilder übers Terminal nicht nur zu skalieren, sondern dabei auch gleich umzubenennen. Und siehe da: Es ging tatsächlich! Hierfür gibt es verschiedene Herangehensweisen – je nachdem, ob man die Original-Bilder unverändert behalten möchte oder ob diese direkt überschrieben werden dürfen.

Bilder per Kommandozeile skalieren

Titelbilder in meinem Blog, die sogenannten Beitragsbilder, sollen die Zielmaße 768 x 432 px haben, damit sie in der Rasteransicht meines Blogs perfekt in die Kacheln passen. In den Blog-Artikeln selbst hingegen gilt zwar ebenfalls die maximale Breite von 768 px, die Höhe allerdings ist variabel, könnte also durchaus auch größer sein als 432 px – ich beschränke mich in dieser Anleitung auf ebenfalls 768 px.

Ein Beispiel: Ich habe Bildschirmfotos, die ich in einen Blog-Artikel irgendwo im Text einbauen möchte. Da diese Fotos bei mir standardmäßig im Format 2880 x 1800 px aufgenommen werden, sind sie also von Hause aus viel zu groß, um sie direkt auf die Website laden zu können. Technisch ginge das zwar, sollte aber wie oben beschrieben tunlichst vermieden werden, um Besucher und Suchmaschinen nicht zu vergraulen.

Spielen wir das Ganze doch einmal anhand von drei konkreten Beispiel-Bildschirmfotos durch, die ich für diesen Zweck in mein Musterverzeichnis gelegt habe.

Im Verzeichnis liegen drei Bilder, die skaliert werden sollen, da sie viel zu groß sind und somit negative Auswirkungen auf die Ladezeiten einer Website hätten

Statt nun jedes dieser drei Bilder einzeln in GIMP entsprechend skalieren zu müssen, möchte ich die gesamte Bildersammlung mit nur einem Befehl direkt per Kommandozeile verarbeiten lassen.

Zunächst meine bisherige Vorgehensweise:

Man öffnet das Terminal, wechselt mit dem Befehl

in das Verzeichnis, in dem die zu skalierenden Bilder liegen (hier Musterverzeichnis), und lässt sich mit einem weiteren Befehl namens

zunächst alle darin befindlichen Dateien anzeigen.

Mit folgendem weiteren Befehl lässt sich die gesamte Bildersammlung anschließend direkt per Kommandozeile verarbeiten:

Alle PNG-Dateien im aktuellen Verzeichnis sollen also auf eine maximale Breite und Höhe von jeweils 768 Pixeln skaliert werden. In meinem Fall haben die skalierten Bilder im Ergebnis die Maße 768 x 480 px, passen also in der Breite perfekt in meine Artikel. Was in GIMP viel Zeit in Anspruch nehmen würde, lässt sich so innerhalb weniger Sekunden erledigen, da nicht Bild für Bild einzeln, sondern der gesamte Stapel auf einmal verarbeitet wird.

Nachteil: Dieser Weg ist nicht geeignet, wenn man die Original-Bilder behalten und die skalierten zusätzlich im selben Verzeichnis ablegen möchte, da mogrify immer überschreibt.

Ergebnis: Bilder wurden passend skaliert, die Dateien aber überschrieben

Bilder per Kommandozeile umbenennen

Die Bilder sind nun also wie beschrieben skaliert, wobei die Original-Bilder überschrieben wurden. Um auch später noch nachvollziehen zu können, dass es sich bei den Bildern im Verzeichnis um die skalierten handelt, soll in meinem Fall vor der Dateiendung .png jeweils der Zusatz _skaliert ergänzt werden. Auch hierbei möchte ich mir den Aufwand sparen, alle Bilder mühsam einzeln umbenennen zu müssen. Was schon beim Skalieren so gut geklappt hat, muss doch auch fürs Umbenennen möglich sein, so meine Idee. Bei einer erneuten Recherche suchte ich gezielt nach einer Lösung für das Terminal und stieß daraufhin auf folgenden Befehl:

Zur Erklärung der einzelnen Parameter: rename benennt alle PNG-Dateien im aktuellen Verzeichnis um, s/…/…/ steht für substitute (ersetzen) und $ kennzeichnet das Ende des Dateinamens.

Nachteil: Auch hier werden die Original-Dateien wieder überschrieben, da rename Dateien umbenennt, ohne sie zu kopieren.

Die skalierten Bilder wurden im Dateinamen um den Zusatz „_skaliert“ ergänzt

Tipp: Skalieren und Umbenennen in nur einem Schritt, Originale behalten

Will oder muss man die Original-Bilder aufbewahren, sind die vorgestellten Wege mittels mogrify bzw. rename also beide nicht zu empfehlen, da diese grundsätzlich überschreiben bzw. umbenennen, ohne die Original-Dateien zu kopieren. Abhilfe schafft folgender Befehl, der für alle PNGs im aktuellen Verzeichnis gilt:

Die PNG-Dateien werden auf die maximalen Zielmaße 768 x 768 px skaliert, die ursprünglichen Dateinamen werden jeweils ohne Endung extrahiert und die Bilder anschließend unter diesem Namen mit dem Zusatz _skaliert.png gespeichert.

Dieser Befehl, der zwei Schritte zu nur einem kombiniert, hat den entscheidenden Vorteil, dass die Original-Dateien unverändert bleiben und die skalierten Bilder – erkennbar am ergänzten _skaliert im Dateinamen – zusätzlich im selben Verzeichnis liegen. So hat man jederzeit einen guten Überblick und kann bei Bedarf noch einmal auf das Original zurückgreifen.

Ergebnis: Original- und skalierte Bilder liegen im Verzeichnis nebeneinander; die skalierten Bilder sind anhand des Zusatzes „_skaliert“ im Dateinamen eindeutig als solche erkennbar

Das Ganze funktioniert natürlich auch für andere Dateiendungen, zum Beispiel JPG. Dafür muss png einfach an allen drei Stellen im Befehl durch jpg ersetzt werden. Auch die Zielmaße könne je nach Bedarf angepasst werden.

Viel Erfolg beim Ausprobieren!

GIMP | Linux | Open Source | SEO | Ubuntu

Über meinen Blog

Herzlich willkommen auf meinem Blog.

Hier geht es um alles, was Text- und Büchermenschen wie mich interessiert. Neben sprachlichen und kulturellen Themen sowie solchen aus der Welt der Bücher sind das unter anderem das (kreative) Schreiben, Redewendungen und ihre Herkunft, skurrile Schlagzeilen und das eine oder andere unnütze Wissen. Und da immer mal wieder Menschen wissen möchten, wie ich denn eigentlich zu meinem Beruf der Lektorin gekommen bin, werde ich hier auch hin und wieder etwas aus dem Nähkästchen plaudern, um genau solche Fragen zu beantworten.
Außerdem informiere ich über Neuigkeiten aus der Welt der Bits und Bytes, etwa wenn Google mal wieder an seinem Algorithmus schraubt und es neue Rankingfaktoren für Internetseiten gibt.

Wenn Ihnen mein Blog gefällt, dann lassen Sie es mich gern wissen und empfehlen Sie ihn weiter. Herzlichen Dank! ツ

Kategorien