PIL and requests don't get along

Alex Clark aclark at aclark.net
Tue Oct 23 14:28:56 EDT 2012


On 2012-10-23 18:06:59 +0000, Roy Smith said:

> I have a url from which I can get an image.  I want to use PIL to
> manipulate that image.  Getting the image is easy:
> 
>>>> import requests
>>>> r = requests.get(url)
> 
> There's a bunch of factory functions for Image, but none of them seem
> to take anything that requests is willing to give you.  Image.new()
> requires that you pass it the image size.  Image.open() takes a file
> object, but
> 
>>>> Image.open(r.raw)
> 
> doesn't work because r.raw gives you a socket which doesn't support
> seek().  I end up doing:
> 
>>>> r = requests.get(url)
>>>> data = cStringIO.StringIO(r.content)
>>>> image = Image.open(data)
> 
> which works, but it's gross.  Is there something I'm missing here?


No idea but you can open a ticket here if you think it's appropriate:  
https://github.com/python-imaging/Pillow/issues


-- 
Alex Clark · https://www.gittip.com/aclark4life/





More information about the Python-list mailing list