[Image-SIG] Problem with psd and Alpha

Fredrik Lundh fredrik at pythonware.com
Tue Nov 9 14:55:57 CET 2010


On Thu, Aug 5, 2010 at 10:42 AM, Martino Massalini
<massalinimartino at gmail.com> wrote:
> Hi, i'm tryng to composite several psd coming from my render software.
> Each one is a psd with  the same size of the others and an alpha channel.
> The problem is when i do
>
> im = Image.open("filepath")
>
> I alway get a "RGB" image instead of "RGBA" so i can't use the alpha channel
> as mask when i compose the image.
>
> Here some snippet:
>
>>>> im = Image.open("prova0000.psd")
>>>> im.mode
> 'RGB'
>>>> im.split()
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "/Library/Python/2.5/site-packages/PIL/Image.py", line 1497, in split
>    if self.im.bands == 1:
> AttributeError: 'NoneType' object has no attribute 'bands'

This is a bug in PIL 1.1.7 that affects all file formats; fix here:

   http://hg.effbot.org/pil-2009-raclette/changeset/fb7ce579f5f9

>>>> repr(im.im)
> 'None'
>>>> im.load()
> <PixelAccess object at 0x52160>
>>>> repr(im.im)
> '<ImagingCore object at 0x520f0>'
>>>> im.split()
> (<Image.Image image mode=L size=146x90 at 0x42C7B0>, <Image.Image image
> mode=L size=146x90 at 0x42C828>, <Image.Image image mode=L size=146x90 at
> 0x42C940>)

I think the problem here is that the PSD format stores the alpha in a
separate layer, that's not recognized by the PSD loader.

If you mail me a sample image, I can check if there's an easy fix for
this issue.

</F>


More information about the Image-SIG mailing list