Hi Sven,
Sven Neumann wrote:
Well, it got to be doable in the file plug-ins since we don't want to have the core depend on lcms. Applying the embedded profile at load time could very well happen in the file plug-ins though. If the core needs to perform colorspace transformations then we should postpone this whole thing and do it properly with GEGL.
Given the limitations we're trying to work within, I think the best compromise is likely to be something like this:
- GIMP uses a user-selectable working profile.
- If a user loads an image tagged with a different profile, she is presented with the following options:
- Convert from the image's profile to the working profile, and accept the degredation that will result.
- Change the GIMP's working profile to match this image. This will leave the image data untouched. (This should disable the display filter for existing images, since they are presumably using a different profile.)
- Load the image without colour management, disabling the display filter for this image.
- If a use loads an image with no profile, the display filter should be disabled.
- A simple plugin should be available to fill in the gaps, i.e. tagging an image with a specific profile (for images with no profile), or converting an image to the current working space if it has changed.
For the majority of users, this should suffice; I suspect compositing images with different profiles won't be a particularly common occurrence - the user just needs to be made aware that colour-space transformations are a destructive change, and have an opportunity to avoid them.
All the best, -- Alastair M. Robinson