magick mogrify -resize 800x800 *.png verkleinert alle Bilder in einem Ordner mit einem einzigen Befehl — aber mogrify überschreibt dabei die Originaldateien, und genau das ist die Falle, vor der kaum jemand warnt. Hier geht es außerdem darum, wie man ein einzelnes Bild verkleinert, ohne es zu verzerren, um die zweizeilige Schleife, die das Ergebnis in einem separaten Ordner speichert statt die Originale zu zerstören, und um eine echte Messung, die zeigt: kleinere Maße bedeuten nicht immer eine kleinere Datei.
1. Ein einzelnes Bild verkleinern, Seitenverhältnis erhalten
$ clai verkleinere dieses Bild auf 320 Pixel an der längeren Seite→ magick test1.png -resize 320x320 out1.jpg
320x320 ist eine Begrenzungsbox, keine feste Größe: ImageMagick behält das Seitenverhältnis bei und passt das Bild hinein. Aus dem 800x600-Original wurden 320x240.
2. Kleinere Maße bedeuten nicht kleinere Dateien
$ clai vergleiche die Dateigröße vorher und nachher→ identify -format '%wx%h %b\n' test1.png out1.jpg800x600 382B320x240 1188B
Das ist eine echte Messung, keine Vermutung. Ein PNG mit einer flächigen Farbe wog 382 Bytes; nach dem Verkleinern auf 320x240 und der Umwandlung in JPEG waren es 1188 Bytes — dreimal so viel. PNG komprimiert einfarbige Flächen fast perfekt, JPEG ist dafür nicht gemacht. Prüfe das Ergebnis immer nach, statt es anzunehmen.
3. Den ganzen Ordner auf einmal, aber sicher
$ clai verkleinere alle PNGs in diesem Ordner auf 800 Pixel, lass die Originale in Ruhe→ mkdir -p resized && for f in *.png; do magick "$f" -resize 800x800 "resized/$f"; done
Eine Schleife mit einem separaten Zielordner. Die Anführungszeichen um $f sind Pflicht — ohne sie bricht der erste Dateiname mit Leerzeichen die ganze Verarbeitung ab.
4. mogrify: schnell, aber unwiderruflich
$ clai verkleinere alle Bilder im Ordner direkt an Ort und Stelle→ magick mogrify -resize 800x800 *.png⚠ CAUTION — overwrites originals, no undo
mogrify ist genau für die Stapelverarbeitung an Ort und Stelle gemacht, und deshalb schneller als eine Schleife — es macht nichts anderes, als am gleichen Ort zu überschreiben. Aus demselben Grund ist es gefährlich: Nach dem Lauf sind die Originale weg. Kopiere den Ordner, bevor du es startest.
5. Format für den ganzen Ordner ändern
$ clai wandle alle PNGs in diesem Ordner in JPEG mit Qualität 85 um→ magick mogrify -format jpg -quality 85 *.png
-format legt Dateien mit der neuen Endung neben den alten an — die ursprünglichen PNGs bleiben unangetastet. Das ist der einzige mogrify-Modus, der nichts überschreibt.
6. Verkleinern, ohne zu strecken
$ clai verkleinere nur die Bilder, die größer als 1200 Pixel sind→ magick mogrify -resize '1200x1200>' *.jpg
Das Zeichen > bedeutet „nur wenn größer". Ohne es werden kleine Bilder auf 1200 hochgezogen und verlieren an Qualität. Die Anführungszeichen verhindern, dass die Shell > als Ausgabe-Umleitung liest — der häufigste Fehler bei diesem Flag.
Fallstricke
mogrifyüberschreibt die Originale. Nichtconvert, nichtmagick file out, sondern genaumogrify. Die einzige Ausnahme ist der-format-Modus, der neue Dateien anlegt.- In ImageMagick 7 heißt der Befehl
magick.convertbleibt aus Kompatibilitätsgründen erhalten und kann in neuen Installationen komplett fehlen.magick mogrifyfunktioniert in beiden Generationen. -resizeohne Flag vergrößert auch. Die Modifikatoren:>nur verkleinern,<nur vergrößern,!Seitenverhältnis ignorieren,^Box füllen und zuschneiden.
Verwandte Fragen
Wie schneide ich mittig auf eine exakte Größe zu? magick in.jpg -resize '400x400^' -gravity center -extent 400x400 out.jpg — erst die Box füllen, dann den Überschuss abschneiden.
Wie sehe ich die Maße, ohne die Datei zu öffnen? identify -format '%wx%h %b\n' file.jpg. Für einen ganzen Ordner: identify -format '%wx%h %f\n' *.jpg.
Warum ist ImageMagick besser als ein Online-Dienst? Die Dateien verlassen nie den eigenen Rechner, es gibt kein Mengenlimit, und ein Befehl verarbeitet tausend Bilder.
Siehe auch
CliAI schreibt die richtigen ImageMagick-Flags für das, was du beschreibst, inklusive Größenänderung und Formatumwandlung. In einer Zeile installieren.