On Fri, Mar 6, 2015 at 7:37 PM, Garo Atberger <sylwana...@gmail.com> wrote:
> Hello there. I ran into an issue with trying to get image data from two > images, to then combine and save as a PNG. I'm not exactly sure how to > address this problem directly, other than saying that the resulting data is > usually a garbled mess. > I'm including the small script with example images to demonstrate what I > tried to do so far. Is there any way to fix that? Or maybe is there a > better way to do that? > > Thank you in advance. > They are at least two problems in the script: 1. the pitch parameter in .get_data should be the number of bytes per row, Negative values indicate a top-to-bottom arrangement. Normally width * len(format). The script is passing len(format) 2. the implementation of the interleave functionality does not work; a variant that works can be def interleave(image, alpha): image_iterator = iter(image) alpha_iterator = iter(alpha) while 1: yield image_iterator.next() yield image_iterator.next() yield image_iterator.next() yield alpha_iterator.next() image = b"123"*16 alpha = b"7"*16 print "image:", repr(image) print "alpha:", repr(alpha) interleaved = ''.join(interleave(image, alpha)) print "interleaved:", interleaved If you only care about getting the image on disk, then using pillow ( https://pypi.python.org/pypi/Pillow/2.7.0) would be faster and simpler: from PIL import Image mask = Image.open("test3_a.bmp") mask = mask.convert("L") bar = Image.open("test3.bmp") bar.putalpha(mask) bar.save("test3_with_alpha.png") -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to pyglet-users+unsubscr...@googlegroups.com. To post to this group, send email to pyglet-users@googlegroups.com. Visit this group at http://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/d/optout.