[Gelöst] Speicherplatz von JPG-Bildern reduzieren.

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
2undvierzig
Beiträge: 128
Registriert: 05.09.2016 12:04:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von 2undvierzig » 03.04.2017 11:51:26

uname hat geschrieben:Ich würde "convert" (Option -quality) aus Debianimagemagick
Nu verrat doch nicht die Insidertricks. ;-)
Der Fremde ist nur in der Fremde ein Fremder (Karl Valentin).

wanne
Moderator
Beiträge: 7463
Registriert: 24.05.2010 12:39:42

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von wanne » 03.04.2017 11:59:11

2undvierzig hat geschrieben:Nu verrat doch nicht die Insidertricks. ;-)
Wie gesagt: Entgegen meiner Erwartung war die Qualität von ffmpeg bei gleicher größer deutlich besser als die von imagemagick. Das kann jetzt aber wirklich dran liegen, dass ich mich irgend wo bei extrem kleinen Dateigrößen bewegt habe.
rot: Moderator wanne spricht, default: User wanne spricht.

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

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von uname » 03.04.2017 12:10:18

Ok war kein Insider-Tipp. XnConvert mag ähnlich zu convert sein und auch convert wurde irgendwo schon genannt. Und ob convert besser ist als ffmpeg weiß ich auch nicht. Die ganzen Probleme hätte man gar nicht, wenn man endlich mit dem Pixelwahnsinn aufhören würde. So oft druckt man auch keine Poster oder Wandtapeten. Bei den Farben hat man doch auch schon vor Jahrzehnten bei 16 Millionen Farben aufgehört, da der Mensch nicht mehr als ein paar Millionen Farben unterscheiden kann. Mein Smartphone hat eine hohe Pixelauflösung mit schlechter Bildqualität. Umgekehrt wäre besser.

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

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von MSfree » 03.04.2017 12:24:42

uname hat geschrieben:Die ganzen Probleme hätte man gar nicht, wenn man endlich mit dem Pixelwahnsinn aufhören würde.
Beim OP ging es um Bilder mit 4608x2596 Pixel, also 12 Megapixel. Das ist zwar mehr als die typische Optik der Kameras mit 1/2.33"-Sensor auflösen kann, aber meinem Empfinden nach bewegt sich das eher am unteren Ende des Auflösungswahns. Es gibt Kameras, die über 20 Megapixel auf so einen 1/2.33"-Sensor quetschen.
So oft druckt man auch keine Poster oder Wandtapeten.
Es ist erstaunlich, wie wenig Pixel man eigentlch wirklich braucht, um schöne Poster zu drucken. Auf 100*75cm² reichen z.B. 5 Megapixel.
Bei den Farben hat man doch auch schon vor Jahrzehnten bei 16 Millionen Farben aufgehört, da der Mensch nicht mehr als ein paar Millionen Farben unterscheiden kann.
8 Bit pro Farbkanal sind leider nicht genug. In einigen Fällen sieht man z.B. statt eines glatten Farbverlaufs Abstufungen. Die Sensoren der Digitalkameras kann man, wenn man mal vom untersten Ramschsegment absieht, immer mindestens mit 10 Bit pro Kanal auslesen (sogar der Raspberry Kamerasensor liefert 10 Bit), typischerweise bekommt man sogar 12-14 Bit.

Warum die Hersteller die Fähigkeit von JPEG nicht ausnutzen, 12 Bit pro Farbkanal speichern zu können, ist mir allerdings ein Rätsel.

TomL

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von TomL » 03.04.2017 12:27:44

uname hat geschrieben:Ich würde "convert" (Option -quality) aus Debianimagemagick verwenden
Genau so mach ich das auch. Und vor dem Hintergrund, dass irgendwer in 20-30 Jahren alle Fotos, die nur mir und der Chefin als Erinnerung dienen, sowieso löschen wird, resize ich die auch alle gnadenlos auf Bildschirmgrösse. Für uns zum ansehen und erinnern "ach, guckma, weisse noch?" reicht uns die Größe 500 kb bis 1 mb immer aus. Sind eh alles nur Smartphone-Fotos.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von ottonormal » 03.04.2017 13:21:11

uname hat geschrieben:Ich würde "convert" (Option -quality) aus Debianimagemagick verwenden...
Danke für den Tipp, das funktioniert gut und erspart auch noch das nachträgliche Umbenennen der konvertierten Bilder. :THX:
TomL hat geschrieben:Für uns zum ansehen und erinnern "ach, guckma, weisse noch?"
Genau so sehe ich das auch; denn dafür reicht es doch allemal.

Ich wusste noch gar nicht, dass mit ffmpeg auch Bilder verarbeitet werden können. Dachte immer, das ist nur für Audio/Video. Würde ich auch gerne ausprobieren. Wie müsste der Befehl lauten wenn ich z.B. alle Bilder in einem Ordner in einen "neu"-Ordner konvertieren will mit Qualitätsstufe 75?

Wirklich überrascht bin ich nicht, aber ich finde es schon erstaunlich in einem Debianforum so viel Kompetenz in Sachen Fotobearbeitung zu finden. Das Thema hat ja eigentlich nur entfernt, wenn überhaupt, eine Beziehung zu Linux/Debian. :wink:

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von scientific » 03.04.2017 19:40:14

Graphicsmagick ist ein Fork von Imagemagick und soll noch besser funktionieren, daher kommt es oft auf Webservern zum Einsatz.
Lässt sich aus den Debianwuellen installieren.

Lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

rodney
Beiträge: 334
Registriert: 09.12.2016 04:15:59

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von rodney » 03.04.2017 23:59:52

uname hat geschrieben:Ich würde "convert" (Option -quality) aus Debianimagemagick verwenden[...]

Sei "neu" der Ordner mit den neu abzuspeichernden Bildern in Qualität 70%

Code: Alles auswählen

for i in $(ls *.JPG);do convert $i -quality 70 neu/$i;done
Sollte auf Metadaten kein Wert gelegt werden kann eine weitere Dateigroessenreduzierung durch die Option -strip erreicht werden. Auch -interlace holt noch ein paar Bytes raus. Abgeaenderter Befehl von @uname:

Code: Alles auswählen

for i in $(ls *.JPG);do convert $i -strip -interlace Plane -quality 70 neu/$i;done
P.S. Bilddateiverkleinerung ohne "Ruecksicht auf Verluste" ist eigentlich nicht so mein Ding (habe halt gern die Originale auf Halde), bin aber trotzdem erstaunt was da rauszuholen ist. Und die Ergebnisse mit 70% haben mich positiv ueberrascht.

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von Lord_Carlos » 04.04.2017 00:02:22

Oh Gott, wenn OP anfaegt die meta Daten wegen Speicherplatz zu loeschen werde ich wütend.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

rodney
Beiträge: 334
Registriert: 09.12.2016 04:15:59

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von rodney » 04.04.2017 00:06:15

Lord_Carlos hat geschrieben:Oh Gott, wenn OP anfaegt die meta Daten wegen Speicherplatz zu loeschen werde ich wütend.
Warum wuetend? Es ging doch um den Speicherplatz von JPG-Bildern und nicht um irgendwelche Komfortmerkmale wie Qualitaet oder auch Meta-Daten. Anfaenglich wurde ja sogar die Bildgroesse reduziert.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von ottonormal » 04.04.2017 12:54:58

Lord_Carlos hat geschrieben:Oh Gott, wenn OP anfaegt die meta Daten wegen Speicherplatz zu loeschen werde ich wütend.
Da würde ich auch über mich selbst wütend werden, soo schlimm isses aber noch nicht. :mrgreen:

Nur der Vollstängkeit halber, ich experimetiere gerade noch mit @unames Tipp herum. Wenn ich damit die Größe ändere von original 4608x2592 auf 1920x1080 stimmt das Ergebnis bei Hochkant-Bildern nicht, da habe ich dann nur 608x1080. Eigentlich müssten es da ja 1080x1920 sein.
Kann man den Befehl, und wenn, wie, ändern?

-resize in Prozentangabe macht es richtig:

Code: Alles auswählen

for i in $(ls *.JPG);do convert $i -resize 83.33% neu/$i;done
Damit erhalte ich wie gewünscht 1080x1920. Aber für jede andere Größe erst eine Rechenaufgabe lösen? Und wenn ich mal ein anderes Seitenverältnis haben möchte?

rodney
Beiträge: 334
Registriert: 09.12.2016 04:15:59

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von rodney » 04.04.2017 13:27:34

ottonormal hat geschrieben:...
Kann man den Befehl, und wenn, wie, ändern?

-resize in Prozentangabe macht es richtig:

Code: Alles auswählen

for i in $(ls *.JPG);do convert $i -resize 83.33% neu/$i;done
Damit erhalte ich wie gewünscht 1080x1920. Aber für jede andere Größe erst eine Rechenaufgabe lösen? Und wenn ich mal ein anderes Seitenverältnis haben möchte?
Versuche es mal mit:

Code: Alles auswählen

for i in $(ls *.JPG);do convert $i -resize 1920x1920 neu/$i;done

wanne
Moderator
Beiträge: 7463
Registriert: 24.05.2010 12:39:42

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von wanne » 04.04.2017 13:49:36

ottonormal hat geschrieben:Damit erhalte ich wie gewünscht 1080x1920. Aber für jede andere Größe erst eine Rechenaufgabe lösen?
Der scale filter des ffmpeg kann Rechenaufgaben lösen.

.5 steht für 1/2 (0.5); * für mal / für geteilt 2 für 2 iw für breite Orginalbild ih für Höhe Originalbildund -1 steht dabei für Seitenverhältnis beibehalten.

Sowas wäre eventuell interessant für dich:

Code: Alles auswählen

ffmpeg -i input.jpeg -vf scale=iw*.5:-1 -q [QUALITÄT] out.jpeg
jpegtran -optimize out.jpeg klein.jpeg
Irgendwie frisst der ffmepg die option -optimize entgegen seiner eigenen Dokumentation nicht.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Speicherplatz von JPG-Bildern reduzieren.

Beitrag von ottonormal » 04.04.2017 14:31:46

rodney hat geschrieben: Versuche es mal mit:

Code: Alles auswählen

for i in $(ls *.JPG);do convert $i -resize 1920x1920 neu/$i;done
Vielen Dank dafür. :THX: Ich verstehe es zwar nicht, aber das funktioniert perfekt. Also sollte man es grundsätzlich immer so machen, auch bei anderen Auflösungen.

Mit dem ffmpeg-Befehl bin ich noch nicht klargekommen. Geht das damit nicht, dass ein komplettes Verzeichnis mit allen Bildern, Quer- und Hochformat, in einem Rutsch in eine anderes Verzeichnis konvertiert wird?

Antworten