lcms2: transforms on load; groundwork for save
authorAndrew Chadwick <andrewc-git@piffle.org>
Mon, 2 Apr 2012 00:01:24 +0000 (01:01 +0100)
committerAndrew Chadwick <andrewc-git@piffle.org>
Sat, 7 Apr 2012 18:32:30 +0000 (19:32 +0100)
commit986c55ed815ea7387d75c8ceeabca19296b95447
tree8a11c0fd66211abfcb28b675a9ae1d4edec62d05
parentc24e74c37e14f25b38f075ad196f70695a0cdc02
lcms2: transforms on load; groundwork for save

Basic build infrastructure for lcms2.

Load PNG files using whatever colour management info is in there, but
convert to sRGB 8-bit using lcms2. At the same time, detect PNGs which
were written without CM chunks.

If/when we go to linear light compositing in line with other OpenRaster
editors, we'll need to detect old OpenRaster files and do something sane
with them. One way of detecting would be to use lack of CM chunks as a
strong hint that a file was written by an old version of MyPaint. It'd
need confirmation; possibly using (the presence of) OpenRaster version
numbers in stack.xml assuming the spec dictates linear light at the same
time that MyPaint starts writing version numbers.

Infrastructure in place for saving PNG files with sRGB+cHRM+gAMA chunks,
but not utilized. Right now, MyPaint defaults to *not* saving them
because I might want to use this condition for a flag (see above...)
README
SConstruct
lib/fastpng.hpp
lib/pixbufsurface.py
lib/tiledsurface.py