| Index: imageConversion.py |
| =================================================================== |
| --- a/imageConversion.py |
| +++ b/imageConversion.py |
| @@ -19,14 +19,14 @@ |
| if image.mode in ('RGBA', 'LA'): |
| return image.split()[image.getbands().index('A')] |
| - if image.mode == 'P': |
| - transparency = image.info.get('transparency') |
| - |
| - if transparency is not None: |
| - table = [255] * 256 |
| - table[transparency] = 0 |
| - |
| - return image.point(table, 'L') |
| + # In order to generate an alpha channel for images using a palette, we |
| + # convert the image to grayscale+alpha. Initially, we created an alpha |
| + # channel by replacing opaque pixels with a high mark and transparent |
| + # pixels with a low mark. However, it turned out that you can't rely on the |
| + # value of Image.info['transparency'] since in some cases it might be an |
| + # unparsed string instead an int indicating the value of transparent pixels. |
| + if image.mode == 'P' and 'transparency' in image.info: |
| + return image.convert('LA').split()[1] |
| def load_image(path): |
| image = Image.open(path) |