babl master is now able to express CMYK based pixel formats backed by lcms2 and ICC profiles and most conversions that is needed by GEGL. The work mentioned in the previous post about making GEGL as a compositor less tied to RGB, and share a common code-path for 1, 3, 4 or more components in the case of spectral data is bearing fruit and for these operations CMYK support is now coming to GEGL.

When using a point composer node to combine CMYK and RGB data the color model of the "input" pad becomes the output color model, just like the RGB space of "input" also wins over "aux".  Operations that do not support CMYK end up temporarily converting to RGB, and back to CMYK if recombined with CMYK data or stored to a JPG.

The count of core operations made able to work with either Grayscale, RGB or CMYK based data in 32bit floating point is growing some that do not need to involve RGB for now are: crop, scale, rotate, translate, gaussian blur, arithmetic operations, porter duff operations and unsharp mask. Along with image loading and saving support for CMYK in JPEG and TIFF.

The TIFF saving support needs an ability to constrain the output bit-depth, for the same reason that specifying a TIFF file, or even a CMYK TIFF file is insufficient for data exchange. TIFF supports many pixel encodings and the default behavior now most often lead to 32bit floating point CMYK files with alpha, many other big software packages struggle with these files.