[ Usenet FAQs | Web FAQs | Documents | RFC Index ]
    Search the FAQ Archives

Part1 - Part2 - Single Page

Top Document: JPEG image compression FAQ, part 1/2
Previous Document: [21] What if I need more than 8-bit precision?
Next Document: [23] Where can I learn about using images on the World Wide Web?


[22] How can my program extract image dimensions from a JPEG file?


The header of a JPEG file consists of a series of blocks, called "markers".
The image height and width are stored in a marker of type SOFn (Start Of
Frame, type N).  To find the SOFn you must skip over the preceding markers;
you don't have to know what's in the other types of markers, just use their
length words to skip over them.  The minimum logic needed is perhaps a page
of C code.  (Some people have recommended just searching for the byte pair
representing SOFn, without paying attention to the marker block structure.
This is unsafe because a prior marker might contain the SOFn pattern, either
by chance or because it contains a JPEG-compressed thumbnail image.  If you
don't follow the marker structure you will retrieve the thumbnail's size
instead of the main image size.)  A profusely commented example in C can be
found in rdjpgcom.c in the IJG distribution (see part 2, item 15).  Perl
code can be found in wwwis, from http://www.tardis.ed.ac.uk/~ark/wwwis/.



Top Document: JPEG image compression FAQ, part 1/2
Previous Document: [21] What if I need more than 8-bit precision?
Next Document: [23] Where can I learn about using images on the World Wide Web?

Part1 - Part2 - Single Page


[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
jpeg-info@uunet.uu.net

Last Update October 22 2009 @ 05:26 AM

Some parts © 2009 Advameg, Inc.