Vor knapp zwei Wochen hatte ich an dieser Stelle meinen Workflow für die Komprimierung von Bildern genauer vorgestellt.
Heute möchte ich einen Schritt zurückgehen. Denn bevor ich Bilder komprimiere, passe ich in der Regel deren Größe an. Hier gibt es natürlich unzählige Möglichkeiten. Wieder angefangen von Bildbearbeitungsprogrammen wie Pixelmator (Pro), Acorn oder Affinity Photo bis hin zu Apples Vorschau App.
Eine weitere macOS interne Lösung, die vielleicht nicht so bekannt ist, bietet sich mit sips an. Dabei handelt es sich um ein von macOS mitgeliefertes Kommandozeilentool, das in den man pages wie folgt beschrieben ist:
This tool is used to query or modify raster image files and ColorSync ICC profiles. Its functionality can also be used through the „Image Events“ AppleScript suite.
Eines der Features dieses Tools betrifft eben die Manipulation der Bildgröße. Man benötigt im Prinzip nur ein einziges Terminalkommando und kann eine Vielzahl von Bildern (innerhalb eines Verzeichnisses) gleichzeitig in der Bildgröße anpassen. Dazu läuft der ganze Prozess extrem schnell ab.
sips -Z 1300 *.png
Der Schlüssel liegt in der –Z Option, bei der die maximale Bildgröße (in Pixeln) für Höhe oder Breite verändert wird. Das Seitenverhältnis vom Bild wird dabei nicht verändert.
-Z pixelsWH
--resampleHeightWidthMax pixelsWH
Resample image so height and width aren't greater than specified size.
Dazu bietet sips etliche weitere Optionen. So kann man Bilder beispielsweise zuschneiden, rotieren, spiegeln, auffüllen (padding), in ein anderes Format konvertieren oder das Farbprofil anpassen.
Letztere sind auf dem Mac unter /System/Library/ColorSync/Profiles/ abgelegt. Über die –out Option hält man sips zudem vom Überschreiben der Originaldatei ab.
sips -m '/System/Library/ColorSync/Profiles/sRGB Profile.icc' bild_cmyk.jpg --out bild_rgb.jpg
Diese ganzen Kommandos bzw. Aufgaben lassen sich natürlich auch automatisieren. Dabei wird die komplette sips-Architektur per AppleScript gesteuert.
Beispiel:
Man markiert zunächst eine oder mehrere Bilder im Finder. Jetzt startet man das Skript, das die maximale Bildgröße (in Pixeln) für die Höhe bzw. Breite per Dialog abfragt. Der Standardwert liegt bei 1.300 Pixeln.
Anschließend wird ein (Ziel-)Verzeichnis mit dem eingegebenen Pixelwert erstellt, in dem schlussendlich die mit der –Z (Bildgröße) und -m Option (Farbprofil) bearbeitete Bilddatei landet.
Ich selbst nutze dieses Skript natürlich über Keyboard Maestro. Man kann es aber auch über den Automator steuern.
Als Vorlage dafür diente übrigens ein etwas älterer Artikel bei macgrunt. In dem dort gezeigten Skript wird explizit zwischen Breite und Höhe des Bildes unterschieden, was für meine Belange aber nicht von Bedeutung ist. Daher meine etwas vereinfachte Version.
(inspired by)