Display colour correction with lookup table (or ICC profile)
|Reported by:||Owned by:||pulkomandy|
This is just a wishlist item as much as anything, but I'd like it if (for the ports where it is viable) there was a way to use either a 3D lookup table image or an ICC profile with a library like LittleCMS to perform color correction for screens. My laptop, for instance, has a display which only covers about 60% of the sRGB colour gamut, and many colours on it look quite different without correction than they do on an sRGB CRT or LCD panel.
Not all colour correction can currently be done in GPU hardware on most operating systems; they typically only support a one dimensional lookup table that can be used to correct white point and gamma. To get something closer to how an image would look on an ideal display, colour managed software utilizes a three dimensional lookup table to transform colours just before displaying.
Since Grafx2 uses an indexed 256 colour palette, it could likely just achieve this by taking the image's palette, feeding it as a raster image into LittleCMS, and using the resulting image to translate each colour from its raw actual value into a displayed one.
To accomplish this a dialogue would have to be added to either select an ICC profile, or to load a manually created lookup table. If you want to experiment with them, I have written a Python program that uses LittleCMS, and can apply transformations on image files. This could be used to generate palette colour translation tables if needed.
My repository also contains a couple colour profiles from my machines: my Dell u2412M, which only needs minimal corrections, and my Thinkpad X201 Tablet, which needs major corrections (and thus transformations on it yield more dramatic results).
The colour-corrected image is on the right; what grafx2 shows is on the left (on my Thinkpad; on the Dell the two images would be virtually indistinguishable between each other):
Full resolution https://i.imgur.com/vj7ohg4.jpg