|
Pigment is the new name of what was KritaColor in the good old 1.6 days. With some improvements, like a cleaner API, and more shared source code, mostly thanks to templates (in 1.6, more than 60% of the code was duplicated, either directly in the library or in the various plugins).
One of the biggest drawback was color conversion. KritaColor was created to abstract color, in such way that filters, tools or any other algorithms in Krita didn't have to care about the color space of an image. And in fact, it was first conceived around the lcms library, which is a color management library which handles ICC color space, that means RGB, CMYK, LAB, grayscale,... in integer 8bit or 16bit. But Krita also supports High-Dynamic Range color space, which are mostly floating points color space in 16bit or 32bit. And unfortunately in KritaColor, when a color space was not handled by lcms, colors were first convert to LAB/Integer 16bit, but that meant losing High-Dynamic Range information, as for those color space a lot of important information is stored near 0.0 or above 1.0, information lost when converting to an integer color space, not counting the conversion from 32bit to 16bit.
|