I received a set of photographs from a photographer and need to confirm that the JPEGs were not saved as Progressive JPEGs. I have Adobe Bridge and Photoshop -- how do I check this?


Some simple methods:

  1. ImageMagick — On the command line run:
    identify -verbose mystery.jpg | grep Interlace
    The output will either be “Interlace:JPEG” or “Interlace: None.”
  2. Photoshop — Open file. Select File -> Save for Web & Devices.
    If it’s a progressive jpeg, the Progressive checkbox will be selected.
  3. Any browser — Baselines jpegs will load top to bottom, and progressive jpegs will do something else. If the file loads too fast, you may need to add bandwidth throttling. I use ipfw on my Mac.


Programmatic methods

Check out Detecting Progressive JPEG. The author posts links to a number of scripts people have developed:

A couple of identifying bytes can be used to recognize the files. A progressive DCT-based JPEG can be identified by bytes “0xFF, 0xC2″. Also, progressive JPEG images usually contain multiple scans so you can look for a couple of “Start of Scan” matches (bytes: “0xFF, 0xDA”). The author used a simple Bash command to get accurate results:

>grep -c -P “xffxc2″ progressive1.jpg

>grep -c -P “xffxc2″ progressive2.jpg

>grep -c -P “xffxc2″ baseline1.jpg

>grep -c -P “xffxc2″ baseline2.jpg

>grep -c -P “xffxDA” progressive1.jpg

>grep -c -P “xffxDA” progressive2.jpg

The link also contains a number of other useful tools.


The plot thickens (thanks to user PussInBoots for alerting me to dig deeper). The question asked how to tell whether a JPEG was saved as Progressive.

  • "Saved as" appears to have a flexible meaning. I experimented and found that in some cases, saving as progressive meant only that the meta data parameter (Interlace) was changed, but the file was not actually altered to contain progressive scans. So the file contains a single image and the rendering software is told to treat it like a progressive image.

    The way these "phony" progressive files manifest in the tests described above:

    • InageMagick: The Interlace parameter reads as "JPEG" rather than "None".

    • Photoshop: The only version of Photoshop I had readily available is ancient (version 7.0). In the Save for Web dialog, the Progressive box was pre-checked on these files, but not for standard JPEGs.

    • Browser: My system and Internet connection are too fast for this to be a useful test. Under normal conditions, everything is close enough to instantaneous to not be able to reliably differentiate any difference.

    • Identifying Bytes: This appears to be a more reliable indicator. The "phony" progressive JPEGs did not have either of the identifying byte patterns.

  • So to the original question, if any of the tests, above, indicate that the file is not a progressive JPEG, you can rely on the fact that it is not. However, the "simple methods", above, do not appear to reliably differentiate true progressive JPEGs from "phony" ones, so you can't rely on them to know if a JPEG is really progressive. In fact, PussInBoots reports in the comment that Photoshop CS6 appears to have a default choice as "progressive", so it's initial setting tells you nothing about the existing file.

  • This is wrong: "Photoshop — Open file. Select File -> Save for Web & Devices. If it’s a progressive jpeg, the Progressive checkbox will be selected.". I tried this today in Photoshop CS6 and if the jpeg is not progressive it still autoselects the checkbox. – PussInBoots Jan 30 '16 at 12:07
  • @PussInBoots: Thanks for reporting this. It led to some revelations that I added to the answer. – fixer1234 Jan 30 '16 at 20:59

If you're on a unix, use the file command:

$ file image.jpg

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


For future generations - there is a simpler way. Just check it with Irfanview. Click on Image->Information.

Check Jpeg properties using Irfanview

  • Have you tested how that reports "phony" progressives? – fixer1234 Aug 27 '19 at 19:33
  • @fixer1234 Indeed I did. Tested with a normal jpeg which I resaved as progressive. IV displayed the tag afterwards. No idea if this always works but in my testing it did. – Hexodus Sep 27 '19 at 14:49
  • The "phony" progressives are ones where the meta data (interlace parameter) is set to indicate progressive, but the image actually isn't. Some software, like Photoshop and ImageMagicK, just look at that setting and don't reliably report the true nature of the image. If your "resaving as progressive" created a true progressive image, the test won't tell you whether Irfanview reliably reports the phonies. It's been 4 yrs since I looked at this, and I didn't keep a record of how I created or identified phony progressives, but I likely started with what PussInBoots reported. – fixer1234 Sep 27 '19 at 15:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.