Einige einfache Methoden:
- ImageMagick - Auf der Befehlszeile:
identify -verbose mystery.jpg | grep Interlace
Die Ausgabe lautet entweder "Interlace: JPEG" oder "Interlace: None".- Photoshop - Datei öffnen. Auswählen
File -> Save for Web & Devices
.
Wenn es sich um ein progressives JPEG handelt, wird das Kontrollkästchen "Progressiv" ausgewählt.- Alle Browser - Baselines-JPEGs werden von oben nach unten geladen, und progressive JPEG-Dateien tun etwas anderes. Wenn die Datei zu schnell lädt, müssen Sie möglicherweise eine Bandbreitenbeschränkung hinzufügen. Ich verwende ipfw auf meinem Mac.
Programmatische Methoden
Check out Progressive JPEG erkennen . Der Autor veröffentlicht Links zu einer Reihe von Skripts, die von den Entwicklern entwickelt wurden:
Ein paar identifizierende Bytes können verwendet werden, um die Dateien zu erkennen. Ein progressives DCT-basiertes JPEG kann durch die Bytes "0xFF, 0xC2" identifiziert werden. Progressive JPEG-Bilder enthalten in der Regel mehrere Scans, sodass Sie nach einigen Übereinstimmungen mit „Start of Scan“ suchen können (Bytes: „0xFF, 0xDA“). Der Autor verwendete einen einfachen Bash-Befehl, um genaue Ergebnisse zu erhalten:
>grep -c -P “xffxc2″ progressive1.jpg >1 >grep -c -P “xffxc2″ progressive2.jpg >1 >grep -c -P “xffxc2″ baseline1.jpg >0 >grep -c -P “xffxc2″ baseline2.jpg >0 >grep -c -P “xffxDA” progressive1.jpg >6 >grep -c -P “xffxDA” progressive2.jpg >12
Der Link enthält auch eine Reihe weiterer nützlicher Tools.
Aktualisieren
Die Handlung wird dicker (danke an Benutzer PussInBoots, der mich auffordert, tiefer zu graben). Bei der Frage wurde gefragt, wie Sie feststellen können, ob ein JPEG als progressiv gespeichert wurde .
"Gespeichert unter" scheint eine flexible Bedeutung zu haben. Ich experimentierte und stellte fest, dass das Speichern als progressiv nur bedeutet, dass der Metadatenparameter (Interlace) geändert wurde, die Datei jedoch nicht so geändert wurde, dass sie progressive Scans enthielt. Die Datei enthält also ein einzelnes Bild, und die Rendering-Software soll sie wie ein progressives Bild behandeln.
Die Art und Weise, wie sich diese "falschen" progressiven Dateien in den oben beschriebenen Tests manifestieren:
InageMagick: Der Interlace-Parameter wird als "JPEG" und nicht als "None" gelesen.
Photoshop: Die einzige Version von Photoshop, die ich zur Verfügung hatte, ist uralt (Version 7.0). Im Dialogfeld "Für Web speichern" wurde das
Progressive
Kontrollkästchen für diese Dateien vorab geprüft, nicht jedoch für Standard-JPEGs.Browser: Mein System und die Internetverbindung sind zu schnell, als dass dies ein nützlicher Test wäre. Unter normalen Bedingungen ist alles nahe genug, um jeden Unterschied nicht zuverlässig unterscheiden zu können.
Identifizierende Bytes: Dies scheint ein zuverlässigerer Indikator zu sein. Die "falschen" progressiven JPEGs hatten keines der identifizierenden Bytemuster.
Auf die ursprüngliche Frage, wenn einer der obigen Tests darauf hinweist, dass es sich bei der Datei nicht um ein progressives JPEG-Format handelt, können Sie sich darauf verlassen, dass dies nicht der Fall ist. Die „einfachen Methoden“, jedoch oben, erscheinen nicht zuverlässig wahr progressive JPEGs von „falsch“ diejenigen zu unterscheiden, so dass Sie nicht auf sie verlassen, um zu wissen, ob ein JPEG ist wirklich progressiv. Tatsächlich meldet PussInBoots in dem Kommentar, dass Photoshop CS6 eine Standardauswahl als "progressiv" zu haben scheint, so dass die anfängliche Einstellung nichts über die vorhandene Datei sagt.