Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

Heute morgen, als ich das Fotoarchiv meines Bruders auf dem Eigenbau-NAS Server durchsucht habe, ist mir aufgefallen, dass die Bilddateien eine Auflösung von 5184 x 3456 Pixeln hatten. Kein Wunder, dass die Vorschaubilder im Filebrowser so langsam geladen wurden, schließlich mussten große Datenmengen über das Netzwerk übertragen werden. Aber habe ich überhaupt etwas von der hohen Auflösung? Die großen Bilddateien brauchen nur sehr viel länger, um übertragen zu werden und benötigen auch entsprechend viel Platz auf Speicherkarten oder den Serverfestplatten. Ein einziges Bild kommt schon mal auf 6-9 MB, dass summiert sich bei größeren Sammlungen mit tausenden Fotos.

Um zu sehen, ob sich die Bilddateien schmerzlos in ihrer Auflösung verkleinern lassen, habe ich mit ein paar Bilder aus der Sammlung herausgepickt und je eine Version auf eine maximale Auflösung von 2500 Pixeln je Dimension verkleinert. Ein bemerkenswerter Unterschied war auf meinen FullHD Bildschirmen nicht zu erkennen. Die Dateigröße war gleich viel geringer und die Qualität, mit der man die Fotos betrachten konnte, dieselbe. Natürlich muss man beim Vergrößern von Fotos Abstriche machen. Wenn man sich aber ansieht, dass beim Vergrößern der Originale nicht sehr viel mehr zu erkennen ist (abgesehen von vergrößertem Rauschen ;) ), relativiert sich das ganze schon wieder. Ich speichere also gerade Daten, die für mich im Normalfall keinen Nutzen haben. Für mich stand also fest: Die Dateien werden verkleinert.

Wie verkleinert man tausende Fotos am einfachsten?

Mit zwei kleinen Tools: „find“, um passende Bilddateien (auch rekursiv in Unterordnern) ausfindig zu machen und das „mogrify“-Kommando aus dem „imagemagick“ Paket, um die Bilddateien zu skalieren. Das folgende Kommando habe ich mir zusammengebaut:

find . -name "*.JPG" -exec mogrify -resize '2500x2500>' {} \;

Es wird in dem Ordner ausgeführt, in dem sich die zu verkleinernden Fotos mit der Dateiendung .JPG  befinden. Andere Dateien werden nicht verarbeitet, ebenso keine Bilder, die kleiner als 2500 x 2500 Pixel groß sind. Alle anderen Dateien, die diese Dimensionen überschreiten, werden so skaliert, dass die angegebenen Dimensionen nicht mehr überschritten werden. Die Skalierung erfolgt natürlich proportional. Verzerrungen treten nicht auf.

Bevor das Kommando aufgerufen wird, sollte eine Sicherung des Original Ordners gemacht werden, denn die Originaldateien werden überschrieben und sind danach nicht mehr vorhanden.

Den Befehl habe ich direkt auf dem Server in einer Screen-Session ausgeführt, sodass ich meine SSH-Verbindung trennen und später ggf. wieder aufnehmen kann. Der Server verarbeitet die Dateien ohne weiteres Zutun im Hintergrund.

Durch die Skalierung auf eine vernünftige Größe habe ich eine Menge Speicher gespart: Die kleine Sammlung konnte ohne bedeutende Qualitätseinbußen von 20,6 GB auf 6.2 GB verkleinert werden und lädt im Filebrowser nun ein ganzes Stück schneller.

Update am 26.04.: Bevor sich noch mehr Leute aufregen weil ich die ach-so-wichtigen Fotos verkleinert habe und die ja jetzt völlig entstellt sind… ;) … natürlich habe ich auch noch die Originale. Die verkleinerte Version der Sammlung benutze ich für den Zugriff über das Netzwerk.


Post published on 25. April 2014 | Last updated on 18. Mai 2014
Tags:           

Diesen Blog unterstützen

Wenn Dir der Beitrag gefallen hat, freue ich mich über einen kleinen Obolus :-) Bitcoin QR Code

PayPal-Seite: https://www.paypal.me/ThomasLeister
Meine Bitcoin-Adresse: 15z8 QkNi dHsx q9WW d8nx W9XU hsdf Qe5B 4s

Siehe auch: Unterstützung

Informationen zum Autor

Thomas Leister

Geb. 1995, Kurzhaar-Metaller, Geek und Blogger. Nutzt seit Anfang 2013 ausschließlich Linux auf Desktop und Servern. Student der Automobilinformatik an der Hochschule für angewandte Wissenschaften in Landshut.

14 thoughts on “Große Fotos verkleinern mit „find“ und „mogrify“

  • Ich weiß ja nicht, was dein Bruder so mit seinen digitalen Fotos vorhat, aber man sollte bei der Mindestauflösung ggf. darauf achten, dass man ein ausreichend großes Printprodukt mit 300 dpi aus einer Bilddatei erzeigen kann. Mit 2500 px könnte man immerhin DIN A5 (2480px@300dpi) erreichen. Empfehlenswert ist aber eher DIN A4, also mindestens 3508px für 300dpi. Ein Hinweis dazu fände ich schon angebracht ;)

    Unabhängig davon ist die Kernaussage deines Artikels aber trotzdem wegweisend. Ich habe mein Bildarchiv bspw. auf einem (bzw. wegen BackUp zwei) externen Speichermedien und verwende die Daten auf meinem NAS ebenfalls verkleinert um den Zugang über das Netzwerk zügiger zu gestalten. Brauche ich dann Daten für die Bildbearbeitung, dann nehme ich die eben in Originalgröße aus dem eigentlichen Bildarchiv auf den externen Speichermedien.

    • Gut dass du das erwähnst… ich war mir nicht sicher, welche Bildgröße vernünftig ist. Normalerweise drucken wir aber höchstens in Din A5 aus, dann passt das so. ;) … wenn wir denn überhaupt ausdrucken.

      LG Thomas

      • Es ist übrigens auch kein großes Problem z.B. ein DIN A5 Fotoausdruck bei einem Fotografen noch vergrößern zu lassen. Das wird – soweit ich weiß – dann in einem optischen Verfahren gemacht, was nachträglich auch deutlich bessere Ergebnisse liefern kann. Ich habe für eine Fotoaustellung auf diese Weise mal DIN A6 Fotoausdrucke auf etwa DIN A3 vergrößern lassen. Kostet gutes Geld, aber die Ergebnisse waren es wert.

  • original bleibt original bleibt original… hab auch schon mal darüber nachgedacht unsere foto archiv zu verkleinern um platz zu sparen… aber daten reduzieren für das bisschen speicher? ne neue platte ist billiger und kostet weniger zeit. und wer weiss wozu es irgendwann mal gut ist…

    • Ja, Speicher ist auch bei mir (noch?) nicht das Problem. Hab zwei 4 TB Platten im Server, das reicht erst mal. Mir ging es hauptsächlich um die Übertragungsgeschwindigkeit, wenn man die Bilder z.B. über eine langsamere WLAN Verbindung abrufen will.

  • die frage ist doch wie oft man das tatsächlich macht…

  • Ich bin schon mal gespannt, was dein Bruder sagt, wenn die gedruckten Fotos beschissen aussehen werden.

    • Wieso sollten die „beschissen“ aussehen? Wie postlet schon sagt, für Din A5 Ausdrucke reicht das noch locker – vor allem wenn man eh keinen professionellen Fotodrucker Zuhause stehen hat. Mein Bruder hat bis heute kein einziges Foto ausgedruckt – das wird alles nur digital verwertet. Größer als Din A4 wird schon gar nicht ausgedruckt. Ich sehe das Problem nicht.

      Sollten wir tatsächlich mal in die Situation kommen, einen riesigen Ausdruck haben zu wollen, dann gibt es ja noch die Möglichkeit beim Fotografen die Bilder vergrößern zu lassen. Das hat postlet auch schon erwähnt.

      • Freiheit stirbt

        Auch eine optische Vergrößerung kann fehlenden Informationen nicht ersetzen. Es mag besser aussehen als das rein rechnerische Interpolieren am Rechner, aber es wird selten das Original wieder hergestellt. Rein einfarbige Flächen bilden die Ausnahme. ;-)

  • Datenkompression zieht zwangsläufig eine Verlust von Bildinformation nach sich. Einen ambitionierten Fotografen würde es niemals im Traum einfallen, seine Fotos zu komrimieren. Todsünde!

  • Interessanter Beitrag.

    Gerade diese „kleinen“ Dinge sind es, die mich unter Linux immer faszinieren, gleichzeitig erfordern aber Konsolen Befehle eine gewisse Übung, da sich schnell auch viel kaputt machen lässt.

    Das Beispiel läßt sich z.b. auch anwenden, wenn man seine Fotos für einen upload auf eine Webseite vorbereiten möchte. Da bietet sich dann an, die Bilder noch etwas zu komprimieren (Oh Frevel :p ) -quality 75

  • Ich schließe mich meinen Vorrednern an: auf keinen Fall verkleinern. In ein paar Jahren haben wir alle 4k-Bildschirme und würden uns über die schlechte Bildqualität nur ärgern.

    Es lässt sich allerdings durchaus ein bisschen was einsparen, indem man die Thumbnails löscht, die jede Kamera in die JPEG-Dateien einbettet. Geht z.B. so:
    echo „Removing thumbnails from images, setting timestamps…“
    jhead -dt -ft *.jpg

    Und dann gäbe es noch die Möglichkeit von „baseline“ auf „progressive“ umzusteigen,
    was (verlustfrei!) nochmal ein paar Bytes einspart:
    jhead -cmd „jpegtran -progressive -outfile &o &i“ *jpg

    Leider verkraftet so manche TV-Streamer-Box den progressive Modus nicht, also erstmal ausprobieren!

  • Geil. Alle Welt regt sich über Datenschutz etc.pp auf und der Bruder verändert einfach mal die Fotos…

    Die Bildgröße von ca. 18MP erinnert mich an eine DSLR. Und die kauft man ja nun nicht umsonst.

    Du solltest Das mit Deinem Bruder besprechen.
    Jedenfalls bekämst Du mit mir riesige Probleme wenn Du so etwas mit meinen Bildern machen würdest.

    Daher – Um den Familienfrieden nicht zu gefährden – Besprechen.
    Übrigens, Rechtlich gesehen sind das seine DAten. Die gehen Dich überhaupt nix an. ;)

    • Sieht im Moment eher so aus als würde sich alle Welt darüber aufregen dass ich Fotos verkleinere ;)
      Seine Bilder laufen unter „Familienfotos“, die hat er selbst ins Archiv gelegt. Ich habe das mit ihm natürlich auch abgesprochen. Originale liegen auch noch drauf. Die skalierten Bilder werden nur genutzt, wenn man schnellen Zugriff über das WLAN braucht.


Comments are closed.