91 Stimmen

Ist es möglich, die Qualitätsstufe eines JPEGs zu bestimmen?

Dies ist eigentlich eine zweiteilige Frage, da ich noch nicht ganz verstehe, wie diese Dinge funktionieren:

Meine Situation: Ich schreibe eine Web-App, mit der der Benutzer ein Bild hochladen kann. Meine App ändert dann die Größe auf etwas anzeigbar (z. B. 640x480-ish) und speichert die Datei zur späteren Verwendung.

Meine Fragen:

  1. Ist es möglich, aus einer beliebigen JPEG-Datei die Qualitätsstufe zu ermitteln, so dass ich beim Speichern des verkleinerten Bildes dieselbe Qualität verwenden kann?
  2. Ist das überhaupt von Bedeutung? Sollte ich alle Bilder mit einer angemessenen Stufe (z. B. 75-80) speichern, unabhängig von der ursprünglichen Qualität?

Ich bin mir da nicht so sicher, denn ich denke, wenn jemand ein 5-Megapixel-Bild mit der Qualität 0 speichern würde, wäre es so blockig wie möglich. Bei einer Verkleinerung des Bildes auf 640x480 würde die Blockhaftigkeit geglättet werden und kaum weniger auffällig... bis ich es wieder mit Qualität 0 gespeichert habe...

Am anderen Ende des Spektrums, wenn es ein Bild mit 800x600 und q=0 gibt, wird die Größenänderung auf 640x480 nichts daran ändern, dass es wie völliger Mist aussieht, also wäre das Speichern mit q=80 überflüssig.

Bin ich überhaupt nah dran?

Ich verwende die GD2-Bibliothek auf PHP, falls das von Nutzen ist

0voto

mmj Punkte 5051

Wenn Sie Irfanviews Schätzung des JPEG-Komprimierungsgrads vertrauen, können Sie diese Informationen aus der Info-Textdatei extrahieren, die mit dem folgenden Windows-Zeilenbefehl erstellt wird (Ihr Pfad zu i_view32.exe könnte anders sein):

"C:\Program Files (x86)\IrfanView\i_view32.exe" <image-file> /info=txtfile

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X