Re: [Gimp-developer] Soft proofing and the GIMP Display Filters and Color Management settings



On 03/14/2014 10:34 AM, Øyvind Kolås wrote:
On Fri, Mar 14, 2014 at 2:21 PM, Elle Stone
<ellestone ninedegreesbelow com> wrote:
But a
patch to LCMS for more than four inks is surely possible.


The code *experiment* linked to has nothing to do with ink limiting;
what I linked to is rather naive additive and subtractive color mixing
in a 20 band spectral color space, a little bit like how physics
works. But yes; as I noted it doesn't take into account subsurface
scattering and other things that ICC profiles try to encompass
indirectly.

My apologies. Clearly I didn't read the code carefully enough.

The reason for that softproofing experiment is hunting for ways to
deal with CMYK as a subset of the ink-plate printing/spot-color
problem. Is it is easy to create and dynamically update/replace ICC
profiles programattically using LCMS/agryll for a combination of inks
coming from a couple of pantone colors (and yes, I'll include
metallics and reflective transparent again); on a custom fabric
choice. Like perhaps simulating the printing of silver, black and
reflective transparent on top of black fabric.

That's a question for the ArgyllCMS mailing list. People on that list profile all kinds of very odd things for specialized print reproduction, including rock specimens, tile samples, and oil paints. I doubt any of them would describe the process as "easy".

I've spent more time writing emails about this code; than writing -
and playing with it. It would've been nice if you had had time to come
to LGM.

Time is one thing. Family responsibilities are another. Sometimes there are conflicts. We all do the best we can.


See
https://mail.gnome.org/archives/gimp-developer-list/2012-August/msg00084.html
for an older writeup I did on the topic of GEGL and color.


I read your writeup several times over when you first posted it and also recently. But I'm not sure I understand it. Below is a summary of what I think your writeup means in terms of an image-editing workflow using GIMP:

1. When a user opens an image:
a. If there isn't an embedded ICC profile, sRGB is assigned. The user has the option to assign a different ICC profile. b. If there is an embedded ICC profile, to cover cases where the embedded ICC profile is incorrect, the user has the option to assign a different ICC profile.

2. Once the initial ICC profile assignment is taken care of:
a. The image precision is promoted to 32-bit floating point R'G'B'A (32-bit floating point gamma).
     b. The image is converted to the regular sRGB color space.
c. As the conversion is done using LCMS2 unbounded mode, no colors are clipped during the conversion. Instead, out-of-gamut colors are expressed using RGB values such that one or more of R, G, and B are less than 0 and/or greater than 1.

3. Although the image really is in the regular sRGB color space, all editing is done in a linear light version of the sRGB color space, which ensures that colors blend correctly: a. If certain layer blending operations look wrong when blended using the 32-bit floating point *gamma* precision, the user can opt to use 32-bit floating point *linear* precision (32-bit floating point RGBA). b. Some operations (for example painting with a brush and Gaussian blur) are always done using linear light, regardless of whether the image is converted to linear or to gamma floating point precision.

4. BABL has functions for converting sRGB to LAB, HSV, CMY, etc, for use in decomposing and composing. Also, babl/gegl/gimp all have functions for calculating the luminance of an sRGB image. Compose/decompose/calculating luminance are all done to/from/in linear light sRGB.

5. When linear light sRGB is required for an operation:
a. Certain BABL functions "undo" the regular sRGB TRC to create linear light sRGB.
     b. The required editing operations are performed.
     c. The image is returned to the regular sRGB color space.
These "to/from linear light" BABL functions include four functions in /babl/babl/base/util.h: linear_to_gamma_2_2, gamma_2_2_to_linear, babl_linear_to_gamma_2_2, and babl_gamma_2_2_to_linear.

6. Before exporting the edited image, the user can convert the image to the desired bit depth and ICC color space profile.

7. At present ICC profile conversions are handled by GIMP, but in the future they will be handled by GEGL. A start on GEGL color management is found in "gegl/operations/external/lcms-from-profile.c".

Does my description of the anticipated workflow cohere with what you've described? Did I get parts/all of it wrong?

Elle



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]