Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

python - How to use StringIO with imghdr to determine if valid image

How to use StringIO with imghdr to determine if valid image

I loaded a image into

image_file = StringIO(open("test.gif",'rb').read())
imghdr.what(image_file.getvalue())

    print imghdr.what(image_file.getvalue())
  File "/usr/lib/python2.7/imghdr.py", line 12, in what
    f = open(file, 'rb')
TypeError: file() argument 1 must be encoded string without NULL bytes, not str
like image 434
Tampa Avatar asked Mar 18 '14 23:03

Tampa


1 Answers

imghdr.what takes the optional second argument. If that is specified the first argument is ignored and the second argument is assumed to contain image bytes.

So you can change the following line:

print imghdr.what(image_file.getvalue())

with:

print imghdr.what(None, image_file.getvalue())
like image 164
falsetru Avatar answered Nov 18 '22 20:11

falsetru