If you read around on missing features in open source image authoring programs, one of the things that pops up is spot colors.
What are spot colors?
Spot colors are basically a list of colors that a paint company can reliably recreate. Within a digital context, what is important is that spot colors are treated properly by the color management, and thus display properly on the screens of those who care about color management.
There are two parts to spot color implementation:
Getting the color.
Spot colors are typically stored in ICC profiles. LCMS can open these files and read out the NamedColorList inside. Furthermore, our new palette format, KPL, can store non-srgb values perfectly fine.
However, it currently isn't possible to get KoColorSet to link to lcms and then to teach it how to open icc profiles due the way the source code is laid out.
When we have our list of colornames, what should be done is that we request the user how the PCS is interpreted(Either LAB or XYZ), and then use the PCS values as the color space for the color. We should take as high a bitdepth as possible. Then, with the colornames and everything, we'll create a KoColorSetEntry out of each color and store the result as
Spot color workflows.
Krita, as a raster painting program, mostly exists with the idea of mixing colors in mind, and as such spot color access is for most artists sufficient.
However, spot colors in print are not just colors. Rather, they are often used as a mask for a certain area of color, so that the printer can make that area glossy, or with only gold paint or other printing tricks.
In photoshop, spot colors are therefore implemented as a seperate channel. They are masks for a specific color, without any mixing. For Krita's example, this is quite like a fill layer filled with a single color, that then, upon export is converted to a grayscale image indicating coverage.
We will need to do more research into DTP and similar printing techniques to really figure out what we can do for people using spot colors in a printing workflow.