Wie kann ich feststellen, ob ein JPEG als progressiv gespeichert wurde?

Wie kann ich feststellen, ob ein JPEG als progressiv gespeichert wurde?

Ich habe von einem Fotografen eine Reihe von Fotos erhalten und muss bestätigen, dass die JPEGs nicht als progressive JPEGs gespeichert wurden. Ich habe Adobe Bridge und Photoshop – wie kann ich das überprüfen?

Antwort1

Einige einfache Methoden:

  1. BildMagick– Führen Sie in der Befehlszeile Folgendes aus:
    identify -verbose mystery.jpg | grep Interlace
    Die Ausgabe lautet entweder „Interlace:JPEG“ oder „Interlace: None“.
  2. Photoshop— Datei öffnen. Auswählen File -> Save for Web & Devices.
    Handelt es sich um ein progressives JPEG, ist das Kontrollkästchen Progressiv aktiviert.
  3. Jeder Browser— Baseline-JPEGs werden von oben nach unten geladen, progressive JPEGs machen etwas anderes. Wenn die Datei zu schnell geladen wird, müssen Sie möglicherweise eine Bandbreitendrosselung hinzufügen. Ich verwende ipfw auf meinem Mac.

Quelle

Programmatische Methoden

KasseErkennen von Progressive JPEG. Der Autor veröffentlicht Links zu einer Reihe von Skripten, die andere entwickelt haben:

Zur Erkennung der Dateien können einige Identifikationsbytes verwendet werden. Ein progressives DCT-basiertes JPEG kann durch die Bytes „0xFF, 0xC2“ identifiziert werden. Außerdem enthalten progressive JPEG-Bilder normalerweise mehrere Scans, sodass Sie nach einigen Übereinstimmungen beim „Start of Scan“ (Bytes: „0xFF, 0xDA“) suchen können. 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 außerdem zahlreiche weitere nützliche Tools.

Aktualisieren

Die Handlung verdichtet sich (danke an den Benutzer PussInBoots, der mich darauf aufmerksam gemacht hat, tiefer zu graben). Die Frage lautete, wie man erkennt, ob ein JPEGGerettetals progressiv.

  • „Gespeichert als“ scheint eine flexible Bedeutung zu haben. Ich habe experimentiert und festgestellt, dass in einigen Fällen das Speichern als progressiv nur bedeutete, dass der Metadatenparameter (Interlace) geändert wurde, die Datei jedoch nicht tatsächlich so geändert wurde, dass sie progressive Scans enthielt. Die Datei enthält also ein einzelnes Bild und die Rendering-Software wird angewiesen, es wie ein progressives Bild zu behandeln.

    So manifestieren sich diese „falschen“ progressiven Dateien in den oben beschriebenen Tests:

    • InageMagick: Der Interlace-Parameter lautet „JPEG“ und nicht „Keine“.

    • Photoshop: Die einzige Version von Photoshop, die ich zur Hand hatte, ist veraltet (Version 7.0). Im Dialogfeld „Für Web speichern“ Progressivewar das Kontrollkästchen für diese Dateien bereits aktiviert, jedoch nicht für Standard-JPEGs.

    • Browser: Mein System und meine Internetverbindung sind zu schnell, als dass dies ein sinnvoller Test wäre. Unter normalen Bedingungen ist alles nahezu augenblicklich, sodass man keinen Unterschied zuverlässig erkennen kann.

    • Identifizierung der Bytes: Dies scheint ein zuverlässigerer Indikator zu sein. Die „falschen“ progressiven JPEGs hatten keines der identifizierenden Bytemuster.

  • Also zur ursprünglichen Frage: Wenn einer der oben genannten Tests anzeigt, dass die Dateinichtein progressives JPEG ist, können Sie sich darauf verlassen, dass es das nicht ist. Die oben genannten „einfachen Methoden“ scheinen jedoch nicht zuverlässig zwischen echten progressiven JPEGs und „falschen“ unterscheiden zu können, sodass Sie sich nicht darauf verlassen können, ob ein JPEGIstwirklich progressiv. Tatsächlich berichtet PussInBoots in dem Kommentar, dass Photoshop CS6 anscheinend standardmäßig „progressiv“ ausgewählt hat, sodass die anfängliche Einstellung nichts über die vorhandene Datei aussagt.

Antwort2

Wenn Sie Unix verwenden, verwenden Sie den filefolgenden Befehl:

$ file image.jpg

image.jpg: JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=0], progressive, precision 8, 2000x1200, components 3

Antwort3

Für zukünftige Generationen gibt es einen einfacheren Weg. Überprüfen Sie es einfach mit Irfanview. Klicken Sie auf Bild->Informationen.

Überprüfen Sie die JPEG-Eigenschaften mit Irfanview

verwandte Informationen