I’d like to convert a set of pixel values from one profiled colorspace to another, without these values residing in an image file, such as (say) a list of RGB/RGBA/CMYK/etc data structures.
I have Python and PIL at my disposal, but I’m interested in solutions in related environments if that’s what it takes.
The latest PIL has very nice support for LittleCMS — but no way to hand it anything other than a PIL image (or a legacy pyCMS object) for it to act upon.
As far as I can ascertain, the command-line tool icctrans that’s included with LittleCMS does something of this sort, but I can’t seem to find any non-skeletal documentation on it, and the documentation refers to it as a demonstration tool.
In order to use the current 2.3 version of Little CMS with Python, I translated
lcms2.htolcms2consts.pywith theh2py.pyscript that comes in the Python distribution. The script does not translate struct declarations, but the constants are enough to do basic color transformations withctypesandlcms2as a dynamic library.This example transforms a single colour from double precision Lab to 8-bit sRGB using built-in profiles. Use
cmsOpenProfileFromFile(filename, 'r')instead for files.