Hey, what platform are you on? I know that sdl_image on OSX has had some bug fixes recently for sdl_image.
On Sun, Feb 19, 2012 at 6:00 PM, Erik Grahn J. <eri...@gmail.com> wrote: > Hey all, > > I'm writing something where I load 4-colour indexed PNG images (8x8 tiles) > with a simple greyscale palette (four entries, in order: black, dark grey, > light grey, white) off disk. I then intend to recolour these in different > ways by replacing the palette indices using PixelArray.replace, but I'm > kind of getting stuck because I'm not getting the palette values I want > from the file. > > In the 8-bit PNG, my four greyscale colours are unquestionably palette > indices 0-3 (I have verified this with a hex editor even, they are the > first four values in the PLTE chunk) but when I turn my surface into a > PixelArray and print it, it looks like this: > > PixelArray( > [0, 0, 86, 127, 127, 0, 0, 0] > [0, 86, 127, 86, 86, 86, 0, 0] > [86, 127, 86, 86, 41, 86, 86, 0] > [86, 127, 86, 86, 41, 86, 86, 0] > [86, 127, 86, 86, 41, 86, 86, 0] > [86, 127, 86, 41, 41, 86, 86, 0] > [0, 86, 127, 86, 86, 86, 0, 0] > [0, 0, 86, 86, 86, 0, 0, 0] > ) > > So instead of the values I want (0, 1, 2, 3), I'm getting 0, 41, 86 and > 127. I have no idea where it gets these numbers from. Possibly a conversion > to some internal default palette somewhere? I have tried calling > set_palette on the surface to no avail -- same results. > > Any help would be super appreciated. > > > -- > Erik Grahn J. <eri...@gmail.com> >