Features of LCMS2

LCMS2 is a color management engine that implements V2 and V4 ICC profiles up
to V4.3. It supports transformation, proofing and introspection of profiles
for a large variety of color formats and targets.

Features of smc.freeimage

smc.freeimage is developed as part of the closed source Visual Library
framework.

mostly written with Cython with some lines of handwritten C Code and some
Python helpers.

fast, it avoids copying large amounts of data and releases the GIL whenever
possible.

64bit safe, tested on i386/X86 and AMD64/X86_64 systems

thread safe

wraps a large subset of FreeImage features

compatible with Python 2.6 to 3.3.

Performance

smc.freeimage with libjpeg-turbo read JPEGs about three to six times faster
than a standard build of PIL and writes JPEGs more than five times faster. By
default PIL is compiled against the standard libjpeg library. Some Linux
distributions have started to install libjpeg-turbo as libjpeg.so (libjpeg-turbo
has a libjpeg v8 compatible ABI). On these platforms PIL is almost as fast as
smc.freeimage.

JPEG's restart markers are not compatible with libjpeg-turbo's Huffman
decoder optimization and reduce performance a lot. Please read the section
"Restart Makers" on the page http://www.libjpeg-turbo.org/About/Performance
for more information.

Correct and optimized integration of a color management system (LittleCMS2)
instead of lcms1 integration including caching of optimized
transformations, in-place transformation and introspection of profiles.