[SDL] SDL_Image: IMG_isJPG() fails on pictures with IPTC information

Jeremy Stanley 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
> "Exif"
> constant is not stored at offset 6.  Instead, the
> two
> 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
> the
> trick for me.
> 
> IMG_jpg.c
> 
> 49c49,52
> < 			SDL_RWread(src, magic, 4, 1);
> ---
> > 			SDL_RWread(src, magic, 4, 1);
> > 			if ( (magic[0] == 0xFF) && (magic[1] == 0xED) )
> {
> > 				SDL_RWseek(src, (((Uint16)magic[2] << 8) |
> magic[3]) + 2, SEEK_CUR);
> > 			}
> 
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> Read only the mail you want - Yahoo! Mail SpamGuard.
> 
> http://promotions.yahoo.com/new_mail 
> 
> _______________________________________________
> SDL mailing list
> SDL at libsdl.org
> http://www.libsdl.org/mailman/listinfo/sdl
> 

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SDL_image-IPTC-patch
Type: application/octet-stream
Size: 768 bytes
Desc: 117615756-SDL_image-IPTC-patch
URL: <http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20050816/d677d60f/attachment.obj>


More information about the SDL mailing list