Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo
I'm trying to save raw pixels from a GdkPixbuf as a GIF with giflib. Everything works... except the colors are really screwey in the final image. I used the default, 16-color colormap from one of the utilities in giflib (EGAPalette, I think the structure was called). Everything has a magenta shade, and every color is completely off (some blues look pure red/green/blue, etc).
I am totally new to this. What do I need to do to create a ColorMap to send to giflib? I don't want to mess with colors... it just needs to look right. I'd like also to be able to save the GIF as monochrome, and certain bit-depths (up to 8-bit, of course) if possible.
Any help would be appreciated. Thanks.
Heh... I just discovered QuantizeBuffer(). I'm finally getting colors in my image. However, it's still not quite right. The grays/whites are slightly off, with a slight blue tint, but look more white than anything. I don't know why this is. I would think QuantizeBuffer() would pick the correct colors for use? Also, I see banding in certain areas of my screen (example, near gradients). I can see pretty much all colors, though.
Since I'm using GdkPixbufs, I simply grab the pixels:
Then, I grab the RGB values: p, p, p, respectively. I build up a Red, Green, and Blue array, then I pass this to QuantizeBuffer(). Then, I write to EGifPutLine the buffer set by QuantizeBuffer(). I'm using 256 colors, 8BPP.
I should also note that I attempted to use a colormap from an existing GIF using the gifclrmp utility (gifclrmp -s image.gif) to create my GIF image, but the colors are still off, even though the image uses mostly the same colors.
Also, if I create a colormap with .Red, .Green, and .Blue values incrementing as the index increments (example colormap->colors.red = 0, colormap->colors.red = 55) 256 times, the image turns out to be grayscale.
I think I'm getting close...