[Image-SIG] Bug

Christian Jensen ChristianJ at implicitnetworks.com
Sat Jan 22 00:25:03 CET 2005


I don't think I need support... unless I am doing something wrong here
:-)

 

Please direct me:

 

I have a script that converts a 32 bit RGBA image over to another 32 bit
RGBA image, but in the middle, it reduces the number of colors for each
plane. This allows for pre-dithering when outputting to 15 and 16 bit
displays.

 

The bug I have noticed is that the values get shifted during the
"quantize" function, even when using a pure linear palette. I discovered
this when I fed in an image that had an input alpha value of 255 and it
came back out at 252.

 

Here is the script:

 

def RGBADither(bands_colors = [32.0,64.0,32.0,256.0], input_file="",
output_file=""):

            import Image, ImagePalette

            im = Image.open(input_file)

            

            bands = im.split()

            outbands= [0,0,0,0]

            

            for band in range(len(bands)):

                        

                        data = ""

                        for i in range(256):

                                    v =
chr(int((int((i/256.0)*bands_colors[band])/bands_colors[band])*256.0))

                                    data += chr(v) + chr(v) + chr(v)

 

                        p = ImagePalette.raw("RGB", data)

                        pimage = Image.new("P", (1, 1))

                        pimage.palette = p

                        tmp = bands[band]

                        tmp = tmp.convert(mode="RGB")

                        tmp = tmp.quantize(palette=pimage)

                        tmp = tmp.convert(mode="L")

                        outbands[band] = tmp

                        tmp.save("band%s.png"%band)

                        

            out = Image.merge("RGBA", outbands)

            out.save(output_file)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/image-sig/attachments/20050121/1343deb2/attachment.html


More information about the Image-SIG mailing list