Why another Python imaging library
There exist quite a bunch of other Python imaging solutions with PIL
being the most prominent one. Most of them don’t satisfy at least one and
typically more of the criteria that I consider quality and modern
Python software.
- They are hardly documented or not at all
- They don’t have complete test suite with reasonable coverage
- They don’t work with one of: Python 2.5, Python 2.6, Python 2.7, Python 3.2,
PyPy or IronPython
- They can’t run processing algorithms on many cores in parallel leaving
them idle.
- They are limited to narrow scope of image formats
- They don’t allow operation on RAW data formats such as YCbCr
or RGB triplets
- They can only process images internally in 8bit depth per channel what
can be not sufficient for some operations
- They are not actively maintained anymore or largely out-dated
- They don’t provide Pythonic API because they are modeled after C code
- They provide interfaces that are not easily extensible e.g. don’t allow
subclassing
- They are not easily installed on widely used OSes such as Windows,
Linux and MacOS X
- They always require C compiler during installation phase
- They don’t have transparent open-source development cycle
- They try to hide complexity of image processing preventing you from performing
custom advance operations
- You can find a lot of ranting on the Internet and they drive you crazy