[Image-SIG] Transparent paste - another problem
Florian Höch
lists+Image_SIG at hoech.org
Fri Oct 10 10:55:27 CEST 2008
Ok, I think I got it. The alpha channel needs to be updated during and
inserted after the paste operations.
from PIL import Image, ImageChops
foo = Image.open("bar.png")
alpha = foo.split()[-1]
for p in w:
baz = Image.open(p.element.binary.path)
foo.paste(baz, (p.x, p.y), baz)
alpha = ImageChops.add(alpha, baz.split()[-1])
foo.putalpha(alpha)
Regards,
Florian
Szymon Kosok schrieb:
> Hi,
>
> Ok. So here is some baz:
>
> http://i.wonderlife.pl/cache/ubranie-83-620.png
> http://i.wonderlife.pl/cache/ubranie-84-620.png
>
> And this is foo:
>
> http://i.wonderlife.pl/img/ciala/mc.png
>
> Regards,
> Szymon
>
> 2008/10/8 Florian Höch <lists+Image_SIG at hoech.org>:
>> Hi,
>>
>> without seeing the original foo and at least some of the baz images, it's
>> hard to tell how to achieve what you're looking for. I'd assume you want
>> some sort of "adaptive multiplication", where only transparent parts are
>> "multiplied over" the existing image and fully opaque parts "knock out"
>> everything under it.
>>
>> Regards,
>>
>> Florian
>>
>> Szymon Kosok schrieb:
>>> Hi,
>>>
>>> I have another problem with PIL and transparent images. I have such code:
>>>
>>> foo = Image.open("bar.png")
>>>
>>> for p in w:
>>>
>>> baz = Image.open(p.element.binary.path)
>>>
>>> foo.paste(baz, (p.x, p.y), baz)
>>>
>>> And the problem is... every baz (some of them are semi-transparent) is
>>> transparent over every previous element.
>>>
>>> Maybe I'll show what I want, and what I got:
>>>
>>> http://i36.tinypic.com/2efjlaw.png - this is what I want,
>>> http://i38.tinypic.com/11glf6t.png - and this what I get.
>>>
>>> Any hints?
>>>
>>> Best regards,
>>> Szymon
>>> _______________________________________________
>>> Image-SIG maillist - Image-SIG at python.org
>>> http://mail.python.org/mailman/listinfo/image-sig
>> _______________________________________________
>> Image-SIG maillist - Image-SIG at python.org
>> http://mail.python.org/mailman/listinfo/image-sig
>>
More information about the Image-SIG
mailing list