PIL and requests don't get along
Kushal Kumaran
kushal.kumaran+python at gmail.com
Wed Oct 24 01:55:53 EDT 2012
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-content
--
regards,
kushal
More information about the Python-list
mailing list