How do I copy a remote image in python?

user166648 picture user166648 · Sep 8, 2009 · Viewed 14.8k times · Source

I need to copy a remote image (for example http://example.com/image.jpg) to my server. Is this possible?

How do you verify that this is indeed an image?

Answer

Nadia Alramli picture Nadia Alramli · Sep 8, 2009

To download:

import urllib2
img = urllib2.urlopen("http://example.com/image.jpg").read()

To verify can use PIL

import StringIO
from PIL import Image
try:
    im = Image.open(StringIO.StringIO(img))
    im.verify()
except Exception, e:
    # The image is not valid

If you just want to verify this is an image even if the image data is not valid: You can use imghdr

import imghdr
imghdr.what('ignore', img)

The method checks the headers and determines the image type. It will return None if the image was not identifiable.