ImageMagick - Bildgröße optimieren
Fabian Graßl
- grafik
0 Dieter Raber0 frankx0 frankx
0 Marc Reichelt1 Fabian Graßl
Hallo!
Ein PHP-Programm skaliert in meinem PHP-Programm automatisch hochgeladene Bilder. Das funktioniert auch wuderbar. Ich verwende (u.a.) folgenden Befehl:
/usr/bin/convert /pfad/zu/hochgeladenem/bild.jpg -resize 125 -quality 85 /pfad/zu/neuem/bild.jpg
Die Bilder werden automatisch in diese Webseite eingebunden.
Mein Problem ist: Bestimmte Bilder sind 10x so groß wie andere, mit dem selben Befehl erzeugte Bilder! Wo liegt das Problem? Wie kann ich erreichen, dass alle Bilder eine geringe Größe haben?
Die Bilder solle aber nicht unbedingt extrem an Qualität verlieren!
sg, Fabian.
Hallo Fabian,
Setz die Qualitaet mal schrittweise runter und teste an einem 'grossen' und einem 'normalen' Bild. Ich habe mit 75% gute Erfahrungen gemacht, aber das musst du fuer dich entscheiden.
Gruß,
Dieter
Setz die Qualitaet mal schrittweise runter und teste an einem 'grossen' und einem 'normalen' Bild. Ich habe mit 75% gute Erfahrungen gemacht, aber das musst du fuer dich entscheiden.
Hallo Dieter!
Ich glaube nicht, dass es daran liegt, dass ich die Qualität auf 85 setzte. Beide Bilder haben ja bei gleicher Qualität und bei gleichen Ausmaßen eine unterschiedliche Dateigröße (Faktor 10!). Ich hatte eher an Probleme mit Farben, etc. gedacht... damit hab' ich aber leider wenig Erfahrung...
Aber ich werde die Qualität trotzdem mal auf 75 setzen.
sg, Fabian
Hellihello
also meine Kenntnisse marginal. Auf meinem Rechner erzeuge ich mit batch-datei (Windoof)
for %%i in (*.*) do convert -thumbnail 180x180 %%i ../gross/%%i
das 180x180 macht, dass sie maximal 180 und/oder breit sind, also nie höher als 180 oder breiter als 180.
Gruß,
frankx
Hellihello Ingrid.
da hatte ich wohl "Größe" missverstanden.
Gruß,
frankx
Hallo Fabian,
/usr/bin/convert /pfad/zu/hochgeladenem/bild.jpg -resize 125 -quality 85 /pfad/zu/neuem/bild.jpg
Die Bilder werden automatisch in diese Webseite eingebunden.
Mein Problem ist: Bestimmte Bilder sind 10x so groß wie andere, mit dem selben Befehl erzeugte Bilder! Wo liegt das Problem? Wie kann ich erreichen, dass alle Bilder eine geringe Größe haben?
Ich kann dein Problem nicht nachvollziehen, denn alle Bilder auf der von dir verlinkten Seite haben eine Breite von 125 Pixel, nur die Höhe ist unterschiedlich, weil du die Höhe in deinem Befehl nicht angibst. Oder meinst du die Dateigröße?
Vielleicht kann ich dir noch einen Tipp geben:
Dokumentation des Befehls "resize".
Wenn du allerdings die Dateigröße meinst: Die fehlerbehaftete JPEG-Kompression eignet sich sehr gut für weichkantige Bilder (also etwa Fotos), aber eher schlecht für markante Formen. Da die Bilder nun noch unterschiedliche Auflösungen haben, können schon ziemlich viele Unterschiede in der Kompression - und damit in der Dateigröße - auftreten.
Was die Verluste an Qualität angeht: Vermutlich werden die Bilder bereits als JPEG-Dateien hochgeladen. Von ImageMagick werden diese geöffnet, verkleinert und wieder gespeichert. Da JPEG verlustbehaftet ist, entstehen selbst bei einer Verkleinerung der Bilder weitere Verluste.
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Die Lösung:
/usr/bin/convert /pfad/zu/hochgeladenem/bild.jpg +profile '*' -resize 125 -quality 75 /pfad/zu/neuem/bild.jpg
Das Problem waren die EXIF-Daten, die bei ImageMagick bei der Skalierung eines Bildes erhalten bleiben.
In neueren Versionen von ImageMagick kann man auch -strip oder -thumbnail verwenden.
sg, Fabian.