useful snippet for getting .png image dimensions without using an external imaging library.
#!/usr/bin/env python
import struct
def get_image_info(data):
if is_png(data):
w, h = struct.unpack('>LL', data[16:24])
width = int(w)
height = int(h)
else:
raise Exception('not a png image')
return width, height
def is_png(data):
return (data[:8] == '\211PNG\r\n\032\n'and (data[12:16] == 'IHDR'))
if __name__ == '__main__':
with open('foo.png', 'rb') as f:
data = f.read()
print is_png(data)
print get_image_info(data)
/headnods:
getimageinfo.py source, Portable_Network_Graphics (Wikipedia)
4 comments:
Cool stuff! I assume this is Python 2.x only? It looks like you're assuming byte strings.
yup, this is for Python 2.
Nice snippet. Thanks
... (data[:8] == b'\211PNG\r\n\032\n' and (data[12:16] == b'IHDR'))
...
print(is_png(data))
print(get_image_info(data))
...
Post a Comment