Hi, I'm new to this list, so excuse me if this is a known issue. I didn't find anything on it on the net so far but didn't have time to search much.
I have observed what i consider a flaw in the Image.paste algorithm when used with transparent images. transparent-columns.png is an image with 3 vertical black columns with alpha=0.5, 0.2 and transparent respectively. transparent-bars.png is an image with 2 horizontal black bars with transparent and alpha=0.5 respectively. (images attached) When these two images are transparently pasted one over the other, using the following code: from PIL import Image source = Image.open('transparent-columns.png') result = Image.open('transparent-bars.png') result.paste(source, (0, 0), source) result.save('transparent-columns-on-bars-pil.png') The result is unexpectet to say the least. PIL seems to modify the transparency even in regions where only one of the images has non-transparent values. Very wrong in my opinion. Doing the same manipulation in GIMP 2.6 gives what i consider the expected result. (attached for reference) I guess the per-pixel transparency of the result should be result_alpha = 1 - (1-alpha1)*(1-alpha2), where alpha1,alpha2 are the alpha channel values from the original images. Regards, Lars Ruoff
<<attachment: transparent-bars.png>>
<<attachment: transparent-columns.png>>
<<attachment: transparent-columns-on-bars-gimp-2.6.png>>
<<attachment: transparent-columns-on-bars-gimp-2.6-with-white-background.png>>
<<attachment: transparent-columns-on-bars-pil.png>>
<<attachment: transparent-columns-on-bars-pil-with-white-background.png>>
_______________________________________________ Image-SIG maillist - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig