/imagesize_py

Primary LanguagePythonMIT LicenseMIT

imagesize

https://travis-ci.org/shibukawa/imagesize_py.svg?branch=master

This module analyzes JPEG/JPEG 2000/PNG/GIF/TIFF/SVG/Netpbm/WebP image headers and returns image size or DIP.

import imagesize

width, height = imagesize.get("test.png")
print(width, height)

width, height = imagesize.getDPI("test.png")
print(width, height)

This module is a pure Python module. You can use file like object like file or something like io.BytesIO.

API

  • imagesize.get(filepath)

    Returns image size (width, height).

  • imagesize.getDPI(filepath)

    Returns image DPI (width, height).

Benchmark

It only parses headers, and ignores pixel data. So it is much faster than Pillow.

module result
imagesize (pure Python) 1.077 seconds per 100 000 times
Pillow 10.569 seconds per 100 000 times

I tested on MacBookPro (2014/Core i7) with 125kB PNG files.

Development

Run test with the following command:

python -m unittest

License

MIT License

Thanks

I referred to the following code:

I use sample image from here:

Thank you for feedback: