Bilder optimieren unter Linux

Jeder der des öfteren Fotografiert und seine Bilder veröffentlichen möchte kennt es: Die Daten sind einfach zu groß. Keiner braucht diese Größe im Internet.

Es ist also sinnvoll die Bilder zu verkleinern. Wie das geht möchte ich nun hier erklären.

Als erstes installieren wir jpegoptim.

sudo apt-get install jpegoptim

Danach gehen wir mit cd in den Ordner wo die zu optimierten Bilder liegen (Macht davor eine Kopie).

Dort können nun alle Bilder mit folgendem Befehl optimiert werden. In meinem Beispiel werden alle Bilder auf 60% der eigentlichen Größe gebracht. Dies spart einige MB ein.

for i in *.jpg; do jpegoptim -S 60% "$i"; done
jpegoptim: skipping special file: 60%
DSC_6195_01.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 16078123 --> 9023419 bytes (43.88%), optimized.
jpegoptim: skipping special file: 60%
DSC_6197.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 14940374 --> 8722881 bytes (41.62%), optimized.
jpegoptim: skipping special file: 60%
DSC_6198.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 13277606 --> 8134588 bytes (38.73%), optimized.
jpegoptim: skipping special file: 60%
DSC_6202.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 11476865 --> 6981548 bytes (39.17%), optimized.
jpegoptim: skipping special file: 60%
DSC_6204.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 8668428 --> 5248062 bytes (39.46%), optimized.
jpegoptim: skipping special file: 60%
DSC_6209.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 9411852 --> 5712039 bytes (39.31%), optimized.
jpegoptim: skipping special file: 60%
DSC_6213.jpg 4946x3278 24bit N Exif XMP ICC JFIF  [OK] 22181695 --> 12199237 bytes (45.00%), optimized.
jpegoptim: skipping special file: 60%
DSC_6218.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 13622387 --> 8265688 bytes (39.32%), optimized.
jpegoptim: skipping special file: 60%
DSC_6220.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 13166499 --> 7880330 bytes (40.15%), optimized.
jpegoptim: skipping special file: 60%
DSC_6224.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 16231542 --> 10289339 bytes (36.61%), optimized.
jpegoptim: skipping special file: 60%
DSC_6225.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 13201831 --> 7760433 bytes (41.22%), optimized.
jpegoptim: skipping special file: 60%
DSC_6227.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 13636073 --> 8223099 bytes (39.70%), optimized.
jpegoptim: skipping special file: 60%
DSC_6230.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 14248372 --> 9260302 bytes (35.01%), optimized.
jpegoptim: skipping special file: 60%
DSC_6232.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 13213108 --> 8282989 bytes (37.31%), optimized.
jpegoptim: skipping special file: 60%
DSC_6235.jpg 4946x3278 24bit N Exif XMP ICC JFIF  [OK] 15608826 --> 8937118 bytes (42.74%), optimized.
jpegoptim: skipping special file: 60%
DSC_6236.jpg 4946x3278 24bit N Exif XMP ICC JFIF  [OK] 9076679 --> 5140378 bytes (43.37%), optimized.
jpegoptim: skipping special file: 60%
DSC_6239.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 13564298 --> 8544726 bytes (37.01%), optimized.
jpegoptim: skipping special file: 60%
DSC_6241.jpg 3278x4946 24bit N Exif XMP ICC JFIF  [OK] 21419749 --> 12347955 bytes (42.35%), optimized.
jpegoptim: skipping special file: 60%
DSC_6243.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 14387115 --> 9144480 bytes (36.44%), optimized.
jpegoptim: skipping special file: 60%
DSC_6246.jpg 4946x3278 24bit N Exif XMP ICC JFIF  [OK] 23993891 --> 13684661 bytes (42.97%), optimized.

Es wird also auch angezeigt wie viel durch diese Optimierung eingespart wurde.

der Befehl

ls -lah

zeigt im übrigen alle sich im Ordner befindlichen Daten samt ihrer Größe.

ls -lah
insgesamt 166M
drwxrwxr-x 2 dansch dansch 4,0K Mär 1 18:57 .
drwxrwxr-x 3 dansch dansch 4,0K Mär 1 18:09 ..
-rw-rw-r-- 1 dansch dansch 8,7M Mär 1 18:56 DSC_6195_01.jpg
-rw-rw-r-- 1 dansch dansch 8,4M Mär 1 18:56 DSC_6197.jpg
-rw-rw-r-- 1 dansch dansch 7,8M Mär 1 18:56 DSC_6198.jpg
-rw-rw-r-- 1 dansch dansch 6,7M Mär 1 18:56 DSC_6202.jpg
-rw-rw-r-- 1 dansch dansch 5,1M Mär 1 18:56 DSC_6204.jpg
-rw-rw-r-- 1 dansch dansch 5,5M Mär 1 18:56 DSC_6209.jpg
-rw-rw-r-- 1 dansch dansch 12M Mär 1 18:56 DSC_6213.jpg
-rw-rw-r-- 1 dansch dansch 7,9M Mär 1 18:56 DSC_6218.jpg
-rw-rw-r-- 1 dansch dansch 7,6M Mär 1 18:56 DSC_6220.jpg
-rw-rw-r-- 1 dansch dansch 9,9M Mär 1 18:56 DSC_6224.jpg
-rw-rw-r-- 1 dansch dansch 7,5M Mär 1 18:56 DSC_6225.jpg
-rw-rw-r-- 1 dansch dansch 7,9M Mär 1 18:56 DSC_6227.jpg
-rw-rw-r-- 1 dansch dansch 8,9M Mär 1 18:56 DSC_6230.jpg
-rw-rw-r-- 1 dansch dansch 7,9M Mär 1 18:56 DSC_6232.jpg
-rw-rw-r-- 1 dansch dansch 8,6M Mär 1 18:56 DSC_6235.jpg
-rw-rw-r-- 1 dansch dansch 5,0M Mär 1 18:56 DSC_6236.jpg
-rw-rw-r-- 1 dansch dansch 8,2M Mär 1 18:57 DSC_6239.jpg
-rw-rw-r-- 1 dansch dansch 12M Mär 1 18:57 DSC_6241.jpg
-rw-rw-r-- 1 dansch dansch 8,8M Mär 1 18:57 DSC_6243.jpg
-rw-rw-r-- 1 dansch dansch 14M Mär 1 18:57 DSC_6246.jpg

Wie man sehen kann, sind meine Bilder immer noch ziemlich groß. Also muss noch weiter optimiert werden.

Da wir keine 100% der Bildqualität benötigen setze ich nun die Qualität auf 90% wieder wird angezeigt, um wie viel % die Bildgröße verringert wurde. Die Ausgabe sieht so aus:

for i in *.jpg; do jpegoptim --max=90 "$i"; done
DSC_6195_01.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 9023419 --> 3169970 bytes (64.87%), optimized.
DSC_6197.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 8722881 --> 3243965 bytes (62.81%), optimized.
DSC_6198.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 8134588 --> 3011576 bytes (62.98%), optimized.
DSC_6202.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 6981548 --> 2442272 bytes (65.02%), optimized.
DSC_6204.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 5248062 --> 2230673 bytes (57.50%), optimized.
DSC_6209.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 5712039 --> 1664716 bytes (70.86%), optimized.
DSC_6213.jpg 4946x3278 24bit N Exif XMP ICC JFIF  [OK] 12199237 --> 3286009 bytes (73.06%), optimized.
DSC_6218.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 8265688 --> 2960645 bytes (64.18%), optimized.
DSC_6220.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 7880330 --> 2849726 bytes (63.84%), optimized.
DSC_6224.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 10289339 --> 4419079 bytes (57.05%), optimized.
DSC_6225.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 7760433 --> 2774338 bytes (64.25%), optimized.
DSC_6227.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 8223099 --> 2998954 bytes (63.53%), optimized.
DSC_6230.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 9260302 --> 3676445 bytes (60.30%), optimized.
DSC_6232.jpg 3264x4928 24bit N Exif XMP ICC JFIF  [OK] 8282989 --> 3164467 bytes (61.80%), optimized.
DSC_6235.jpg 4946x3278 24bit N Exif XMP ICC JFIF  [OK] 8937118 --> 2687943 bytes (69.92%), optimized.
DSC_6236.jpg 4946x3278 24bit N Exif XMP ICC JFIF  [OK] 5140378 --> 3891019 bytes (24.30%), optimized.
DSC_6239.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 8544726 --> 3255987 bytes (61.89%), optimized.
DSC_6241.jpg 3278x4946 24bit N Exif XMP ICC JFIF  [OK] 12347955 --> 4186463 bytes (66.10%), optimized.
DSC_6243.jpg 4928x3264 24bit N Exif XMP ICC JFIF  [OK] 9144480 --> 3569131 bytes (60.97%), optimized.
DSC_6246.jpg 4946x3278 24bit N Exif XMP ICC JFIF  [OK] 13684661 --> 4338693 bytes (68.30%), optimized.

Der Befehl ls -lah zeigt uns wieder alle Bilder und die dazugehörige Größe an:

ls -lah
insgesamt 61M
drwxrwxr-x 2 dansch dansch 4,0K Mär  1 18:57 .
drwxrwxr-x 3 dansch dansch 4,0K Mär  1 18:09 ..
-rw-rw-r-- 1 dansch dansch 3,1M Mär  1 18:57 DSC_6195_01.jpg
-rw-rw-r-- 1 dansch dansch 3,1M Mär  1 18:57 DSC_6197.jpg
-rw-rw-r-- 1 dansch dansch 2,9M Mär  1 18:57 DSC_6198.jpg
-rw-rw-r-- 1 dansch dansch 2,4M Mär  1 18:57 DSC_6202.jpg
-rw-rw-r-- 1 dansch dansch 2,2M Mär  1 18:57 DSC_6204.jpg
-rw-rw-r-- 1 dansch dansch 1,6M Mär  1 18:57 DSC_6209.jpg
-rw-rw-r-- 1 dansch dansch 3,2M Mär  1 18:57 DSC_6213.jpg
-rw-rw-r-- 1 dansch dansch 2,9M Mär  1 18:57 DSC_6218.jpg
-rw-rw-r-- 1 dansch dansch 2,8M Mär  1 18:57 DSC_6220.jpg
-rw-rw-r-- 1 dansch dansch 4,3M Mär  1 18:57 DSC_6224.jpg
-rw-rw-r-- 1 dansch dansch 2,7M Mär  1 18:57 DSC_6225.jpg
-rw-rw-r-- 1 dansch dansch 2,9M Mär  1 18:57 DSC_6227.jpg
-rw-rw-r-- 1 dansch dansch 3,6M Mär  1 18:57 DSC_6230.jpg
-rw-rw-r-- 1 dansch dansch 3,1M Mär  1 18:57 DSC_6232.jpg
-rw-rw-r-- 1 dansch dansch 2,6M Mär  1 18:57 DSC_6235.jpg
-rw-rw-r-- 1 dansch dansch 3,8M Mär  1 18:57 DSC_6236.jpg
-rw-rw-r-- 1 dansch dansch 3,2M Mär  1 18:57 DSC_6239.jpg
-rw-rw-r-- 1 dansch dansch 4,0M Mär  1 18:57 DSC_6241.jpg
-rw-rw-r-- 1 dansch dansch 3,5M Mär  1 18:57 DSC_6243.jpg
-rw-rw-r-- 1 dansch dansch 4,2M Mär  1 18:57 DSC_6246.jpg

Wie wir sehen können, haben wir mehr als 200 MB eingespart.

Im vergleich der Befehl vor der Optimierung: insgesamt 278M

ls -lah
drwxrwxr-x 2 dansch dansch 4,0K Mär  1 19:02 .
drwxr-xr-x 4 dansch dansch 4,0K Mär  1 19:02 ..
-rw-rw-r-- 1 dansch dansch  16M Feb 25 16:03 DSC_6195_01.jpg
-rw-rw-r-- 1 dansch dansch  15M Feb 25 16:03 DSC_6197.jpg
-rw-rw-r-- 1 dansch dansch  13M Feb 25 16:03 DSC_6198.jpg
-rw-rw-r-- 1 dansch dansch  11M Feb 25 16:03 DSC_6202.jpg
-rw-rw-r-- 1 dansch dansch 8,3M Feb 25 16:03 DSC_6204.jpg
-rw-rw-r-- 1 dansch dansch 9,0M Feb 25 16:03 DSC_6209.jpg
-rw-rw-r-- 1 dansch dansch  22M Feb 25 16:03 DSC_6213.jpg
-rw-rw-r-- 1 dansch dansch  13M Feb 25 16:03 DSC_6218.jpg
-rw-rw-r-- 1 dansch dansch  13M Feb 25 16:03 DSC_6220.jpg
-rw-rw-r-- 1 dansch dansch  16M Feb 25 16:03 DSC_6224.jpg
-rw-rw-r-- 1 dansch dansch  13M Feb 25 16:03 DSC_6225.jpg
-rw-rw-r-- 1 dansch dansch  14M Feb 25 16:03 DSC_6227.jpg
-rw-rw-r-- 1 dansch dansch  14M Feb 25 16:03 DSC_6230.jpg
-rw-rw-r-- 1 dansch dansch  13M Feb 25 16:03 DSC_6232.jpg
-rw-rw-r-- 1 dansch dansch  15M Feb 25 16:03 DSC_6235.jpg
-rw-rw-r-- 1 dansch dansch 8,7M Feb 25 16:03 DSC_6236.jpg
-rw-rw-r-- 1 dansch dansch  13M Feb 25 16:03 DSC_6239.jpg
-rw-rw-r-- 1 dansch dansch  21M Feb 25 16:03 DSC_6241.jpg
-rw-rw-r-- 1 dansch dansch  14M Feb 25 16:03 DSC_6243.jpg
-rw-rw-r-- 1 dansch dansch  23M Feb 25 16:03 DSC_6246.jpg

Nun haben die Bilder eine Größe die eine Veröffentlichung im Internet zulässt. Wenn ich sie noch kleiner mache, verlieren die Bilder ihren Charme und natürlich weiter Qualität.

Teilen macht Spaß:

Posted by Daniel Schwarz

danielschwarz
Daniel Schwarz, macht irgendwas mit Computern in der Nähe von Würzburg, schreibt hier privat auf BlackIT um anderen bei Problemen zu helfen. Macht er mal nichts mit Computern so engagiert er sich ehrenamtlich bei der freiwilligen Feuerwehr in Randersacker und den Maltesern in Würzburg.

Letzte Beiträge: