(gelöst) Bilddatei, verkleinern

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
fischig
Beiträge: 3598
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

(gelöst) Bilddatei, verkleinern

Beitrag von fischig » 27.08.2021 08:59:55

Ich habe hier ein JPG, aufgenommen mit einer Kompaktkamera, 5,3MB groß. Das Bild soll via Internet versendet werden, um auf einer Web-Seite zur Information veröffentlicht zu werden, Die Datei ist der anfordernden Seite aber zu groß. Hier einige Daten: 5184 × 3888 Pixel, 180 × 180 PPI (wenn mehr für die Hilfe erforderlich ist, bitte anfordern). Ich hatte gehofft, dass eine Umwandlung mit gimp in png (ohne Umformatierungen im Detail) eine kleinere Datei ergäbe, aber das Gegenteil war der Fall: 21MB. Wie kriege ich die Datei deutlich kleiner als 5MB bei akzeptabler Qualität.
Zuletzt geändert von fischig am 27.08.2021 14:10:05, insgesamt 1-mal geändert.

willy4711

Re: Bilddatei, verkleinern

Beitrag von willy4711 » 27.08.2021 09:04:56


Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Bilddatei, verkleinern

Beitrag von MSfree » 27.08.2021 09:31:43

fischig hat geschrieben: ↑ zum Beitrag ↑
27.08.2021 08:59:55
Ich habe hier ein JPG, aufgenommen mit einer Kompaktkamera, 5,3MB groß....Hier einige Daten: 5184 × 3888 Pixel
Für eine Webseite ist ein Bild mit 5184 × 3888 Pixel ohnehin zu hoch aufgelöst. Selbst, wenn man ein Bild im Fullscreen anzeigen will (in der Regel nutzt man aber eher nur 50% der Anzeigefläche), sind je nach Bildschirm des Anwenders heutzutage 1920 x 1080 Pixel, 1920 x 1200 Pixel oder maximal 3840 x 2160 Pixel üblich.

Wenn man von rund 50% nutzbarer Bildschirmfläche ausgeht, also rund 1 Megapixel, dann sollte man das Bild auf etwa 1152 x 864 Pixel runterskalieren. Wenn man es dann noch als JPEG mit eine Q-Faktor von 85 abspeichert, sollte die resultierende Dateigröße etwa 300-400kByte betragen.

Selbst, wenn du nicht ganz so geizt, und das Bild z.B. auf 2000 x 1500 Pixel skalierst, sollte die resultierende JPG-Datei um die 750kB klein sein.
Ich hatte gehofft, dass eine Umwandlung mit gimp in png (ohne Umformatierungen im Detail) eine kleinere Datei ergäbe,
PNG nutzt meines Wissens keine verllustbehaftete Kompression. Daß die Datei am Ende nur 21MB groß war, bei über 60MB entkomprimierter Ausgangsgröße, ist eigentlich schon erstaunlich, ich hätte eher 50MB erwartet.

uname
Beiträge: 12044
Registriert: 03.06.2008 09:33:02

Re: Bilddatei, verkleinern

Beitrag von uname » 27.08.2021 09:40:20

@fischig
Wenn das Bild am Ende sowieso im Internet landet und dir egal ist, dass ein Dritter das Originalbild hat(te) und auch die IP von dem, der es dort verändert hat, kannst du ein Online-Bildbearbeitungsprogramme wie https://picresize.com/de verwenden.
Falls du einen Webspace hast, kannst du z. B. den Online-Filemanager Elfinder installieren. Der kann auch Dateien verkleinern.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Bilddatei, verkleinern

Beitrag von eggy » 27.08.2021 11:39:27

Offtopic:
MSfree hat geschrieben: ↑ zum Beitrag ↑
27.08.2021 09:31:43
PNG nutzt meines Wissens keine verllustbehaftete Kompression. Daß die Datei am Ende nur 21MB groß war, bei über 60MB entkomprimierter Ausgangsgröße, ist eigentlich schon erstaunlich, ich hätte eher 50MB erwartet.
Je mehr homogene Flächen, desto besser wirds.

Code: Alles auswählen

convert -size 5184x3888 plasma: plasma.png
convert -size 5184x3888 xc:white white.png
ls -sh plasma.png white.png 
101M plasma.png
12K white.png

plasma: generiert zufällig Bilder, der gezeigte Wert kann daher auch etwas abweichen

Um mit convert ein Bild zu verkleinern kann man im einfachsten Fall das hier nehmen:
convert -resize 800x600 -quality 80 plasma.png out.jpg

Erzeugen wir mal ne kleine Testreihe:

Code: Alles auswählen

for i in 10 20 30 40 50 60 70 80 85 90 95 ; do  convert -resize 800x600 -quality $i plasma.png  quality_$i.jpg  ; done
Welche Dateigröße dabei rauskommt, hängt sehr vom Bild ab.

Code: Alles auswählen

8,0K quality_10.jpg
 12K quality_20.jpg
 16K quality_30.jpg
 24K quality_40.jpg
 28K quality_50.jpg
 32K quality_60.jpg
 44K quality_70.jpg
 60K quality_80.jpg
 72K quality_85.jpg
144K quality_90.jpg
232K quality_95.jpg
In der Regel ist man im Bereich von 80 gut aufgehoben.

Bildgrößen durchtesten (folgend nur in der Breite beschränkt, die Höhe wird entsprechend automatisch festgelegt):

Code: Alles auswählen

for j in 600 800 1024 1152; do for i in 10 20 30 40 50 60 70 80 85 90 95 ; do convert -scale $j -quality $i plasma.png  "scale_"$j"_quality_"$i".jpg"  ; done; done
Schauen wir uns die Ergebnisse noch halbwegs hübsch an:

Code: Alles auswählen

ls scale_*.jpg -sh1 | awk -F '[ _.]' '{sub ("^ *", ""); arr[$3][$5] = $1; } END{printf "      "; for (k in arr["800"]) {printf "%8s",k": ";} print " " ;    for (k in arr) {printf "%6s",k": "; for (l in arr[k]) {printf "%8s",arr[k][l] " "} print " "} }'
Die jpgs:

Code: Alles auswählen

          10:     20:     30:     40:     50:     60:     70:     80:     85:     90:     95:  
 600:    4,0K    8,0K     12K     16K     16K     20K     28K     36K     44K     84K    128K  
 800:    8,0K     12K     16K     20K     28K     32K     44K     56K     68K    140K    216K  
1024:    8,0K     16K     24K     32K     40K     48K     64K     88K    108K    220K    348K  
1152:     12K     20K     28K     40K     48K     60K     80K    108K    132K    272K    428K  
 
Als png sähe das Plasmabild dann so aus:

Code: Alles auswählen

          10:     20:     30:     40:     50:     60:     70:     80:     85:     90:     95:  
 600:    1,4M    1,4M    1,4M    1,4M    1,4M    1,4M    1,4M    1,4M    1,4M    1,4M    1,4M  
 800:    2,4M    2,4M    2,4M    2,4M    2,4M    2,4M    2,4M    2,4M    2,4M    2,4M    2,4M  
1024:    3,9M    3,9M    3,9M    3,9M    3,9M    3,9M    3,9M    3,9M    3,9M    3,9M    3,9M  
1152:    4,9M    4,9M    4,9M    4,8M    4,8M    4,8M    4,8M    4,8M    4,8M    4,8M    4,8M 
Offtopic zum Offtopic:
Weitere Optionen oder eigene Programme wie mat2 sind hilfreich wenn man Exifdaten und co loswerden will, Digitalkameras hinterlassen zuweilen viel mehr Informationen als einem bewusst ist. convert könnte man z.B. noch "-strip" mitgeben, damit Überflüssiges aus der Datei entfernt wird.
Ich benutze oben -scale, da es bei meinen Bilder gut funktioniert hat. Man kann aber auch -resize und -filter nutzen. Auf der Imagemagick Beispielseite findet man ausführliche Erklärungen. https://legacy.imagemagick.org/script/c ... .php#scale

fischig
Beiträge: 3598
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Bilddatei, verkleinern

Beitrag von fischig » 27.08.2021 14:04:08

Vielen Dank für die zahlreichen Hinweise!
Ich hab's mit denen von MSfree (runter skalieren auf 2000x1500 Pixel) umgesetzt. Das Bild hat keinerlei künstlerischen Anspruch und ja, es ist mir egal, was der Empfänger damit anstellt. Einverständnis des Eigentümers der abgebildeten Lokalität ist gegeben.

Antworten