On Fri, 11 May 2007 15:37:27 +0100 Simon Farnsworth <[EMAIL PROTECTED]> babbled:
> We've found that loader_bmp.c in imlib2 1.4.0 does not correctly handle > RGB565 Windows BMPs (compression method BI_BITFIELDS), nor does it > correctly shift the bits for RGB555 images into the MSBs of the 32 bit > output format. > > The attached patch corrects loader_bmp.c's handling of 16 bit Windows > BMPs by doing the following: > > * Introduce a left shift for each of the three colour components in > 16-bit images > * Set this left shift to 3 for each colour component in RGB555 images > * For "bitfields" images (RGB565, for example), determine the value of > left shift by masking and shifting 0xFFFF until the byte value of the > component has the MSB set. > * When reading components, left shift them appropriately, to make the > byte values the MSBs of the output colour components. > > We've also noticed that 16 bit BMP handling depends on a little-endian > processor; this is fine for us, so I've not fixed it, but if > endian-independence is a goal, the code underneath "THIS WAS OLD CODE" > needs re-evaluating (casting unsigned char * to unsigned short *, then > deferencing the pix pointer assumes that we're on a little-endian system). i also fixed endianess - i think. in cvs :) > I'm not subscribed to the list, so please CC me on any replies. > -- > Thanks, > > Simon Farnsworth > > > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [EMAIL PROTECTED] 裸好多 Tokyo, Japan (東京 日本) ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel