[SDL] SDL_Image: IMG_isJPG() fails on pictures with IPTC information
stanmuffin at yahoo.com
Tue Aug 16 19:03:36 PDT 2005
Here's a proper unified diff from CVS for this patch.
--- Jeremy Stanley <stanmuffin at yahoo.com> wrote:
> I found that SDL_Image fails to load JPEG files to
> which I have added a caption using Picasa (a free as
> in beer picture organization tool;
> http://www.picasa.com). Picasa claims to store its
> captions in IPTC format. Photoshop apparently uses
> this format too, but I don't have that program so I
> can't verify that.
> The problem is that the IPTC information block is
> stored between the SOI (FF D8) and APP1 (FF E1)
> markers in the JPEG file, so that the "JFIF" or
> constant is not stored at offset 6. Instead, the
> bytes at offset 2 store FF ED and the next two bytes
> store the size of the block as a big endian word
> (including the size field). The APP1 (FF E1) marker
> will immediately follow.
> A simple fix could be inserted just after the second
> SDL_RWread() in IMG_isJPG(). Instead of throwing
> these four bytes away, we can check for the IPTC
> header and skip over it. The following code does
> trick for me.
> < SDL_RWread(src, magic, 4, 1);
> > SDL_RWread(src, magic, 4, 1);
> > if ( (magic == 0xFF) && (magic == 0xED) )
> > SDL_RWseek(src, (((Uint16)magic << 8) |
> magic) + 2, SEEK_CUR);
> > }
> Do you Yahoo!?
> Read only the mail you want - Yahoo! Mail SpamGuard.
> SDL mailing list
> SDL at libsdl.org
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 768 bytes
More information about the SDL