PIL and requests don't get along
Roy Smith
roy at panix.com
Wed Oct 24 09:35:55 EDT 2012
In article <mailman.2725.1351058163.27098.python-list at python.org>,
Kushal Kumaran <kushal.kumaran+python at gmail.com> wrote:
> On 23 Oct 2012 14:06:59 -0400, roy at panix.com (Roy Smith) wrote:
> > 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?
>
> That is pretty much what the requests module documentation says here:
>
> http://docs.python-requests.org/en/latest/user/quickstart/#binary-response-con
> tent
Heh, I hadn't even noticed that. I guess this is as good as it gets.
More information about the Python-list
mailing list