What did you do?

What did you expect to happen?

reading frames of a standard indexed GIF image returns the original colours, works fine

What actually happened?

with my RGB GIF file, the colours go to black and white only, and the image.mode reports 'P' even when i can see in gimp that the image is RGB (not indexed colours)

What are your OS, Python and Pillow versions?

OS: Ubuntu Xenial

Python: 2.7.12

Pillow: 5.3.0

the image i'm using is at https://drive.google.com/file/d/1WEp8cuXAY_rAOE5E3tHm5zOBfJdWLn67/view?usp=sharing
sorry i'm not familiar enough with python/pillow to troubleshoot this by myself; is there any way to handle this kind of image?

In late October, I got an email from @kszu @ @tidelift that read in part:

I'm reaching out because I'm connecting with active open source maintainers to be part of our maintainer funding initiative at Tidelift, where we recently committed to paying $1 million to open source maintainers. We're already working with the maintainers of over 130 packages, including Python packages such as Coverage, setuptools, beautifulsoup, and Fabric.

I subsequently discussed funding with @kszu and @wiredfool and am feeling optimistic about the opportunity for @python-pillow/pillow-team to participate.

As some of you may know, I received a small amount of $$$ over the course of 5 years from https://gratipay.com/ (I don't recall how much, but probably no more than a few hundred dollars per year, if that.) Since Gratipay folded (thanks again @chadwhitacre!) I've been interested in finding a replacement, and this could definitely be it.

In short, here's how it will work:

Members of the @python-pillow/pillow-team should add a comment here indicating whether or not they'd like to participate (i.e. get paid for your contributions to Pillow!)

Members of @python-pillow/owners will decide what percentage of Tidelift's contribution each member of the @python-pillow/pillow-team will receive (most likely an equal distribution amongst those who are interested in funding) and report percentage to @tidelift.

Each interested member of the @python-pillow/pillow-team will sign a contract with @tidelift to facilitate payment.

So for example, if @tidelift is offering 10K over two years (which I believe they are) and @wiredfool @hugovk @radarhere @homm and myself would each get $83.33 a month.

To get started, let's first figure out which members of the current @python-pillow/pillow-team would like to participate. After that, we can discuss percentages (as I said, most likely an equal split amongst all active contributors.)

What did you do?

Opened an image and called load:
img = Image.open('file.jpg')
img.load()

What did you expect to happen?

Expected the method to finish executing and to return either an Image object or an informative message, or to raise an exception during execution.

What actually happened?

The process died after several seconds. I expect the issue is with file corruption, but pillow should return an informative message or raise an exception. Debugging with pdb got as far as this line before dying.

What are your OS, Python and Pillow versions?

OS: Debian GNU/Linux 9.5 (stretch)

Python: 3.6

Pillow: 5.3.0

To reproduce

Run the following with the image attached below:
python
from PIL import Image
img = Image.open('image.jpg')
img.load()