PIL and requests don't get along

Roy Smith roy at panix.com
Tue Oct 23 14:06:59 EDT 2012


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?



More information about the Python-list mailing list