Author:  Omari Stephens <xsdg@xsdg.org>
Version: 1
Date:    3 February 2010

This spec is intended to define GIMP's color profile management behavior as pertains to the opening and exporting of image files.  How this is achieved or implemented, and especially the UI and UX considerations involved, is not currently in the scope of this spec.

Further discussion will happen on the mailing list: gimp-developer@lists.xcf.berkeley.edu


1) When an image is opened with no associated color profile, we assume that it is encoded in sRGB space.  In practice, I'll say that it has an implicit sRGB profile.  The user will have the following options:
  a) Assert (aka "apply") some explicit color profile
  b) Leave the image without an explicit color profile
  c) Convert the image from the implicit profile to some explicit profile (AdobeRGB, ProPhotoRGB, sRGB, etc.)

2) When an image is opened _with_ an associated color profile, the user will have the following options:
  a) Leave the image with the explicit color profile
  b) Convert the image to some other explicit profile

3) When a PNG is opened that is tagged with the sRGB chunk
  a) This is as-yet undecided.  See the later discussion about sRGB chunk vs. sRGB profile.

4) When an image with an explicit profile is exported
  a) It will be tagged with that profile in whatever way is appropriate for the file format.
  b) If this is an sRGB PNG, we need to decide between an sRGB chunk and sRGB profile.  See later discussion.
  c) If the file format has no way to embed color profile information, (FIXME!)

5) When an image with an implicit profile is exported
  a) The image is saved with no color profile information.  For PNG, this means no sRGB chunk and also no iCCP chunk.


PNG: sRGB chunk vs. sRGB profile
In theory, an untagged PNG and a PNG with the sRGB chunk should be treated identically.  In practice, and particularly among web browsers, this is not the case.  See [1].  Given this context, we face the question of what to do when we have the choice to use either an sRGB chunk or an sRGB profile in the iCCP chunk.  In theory, these two choices should have the same outcome.  However, it is not clear whether theory matches reality in this case either; I have very little data to judge either way.

[1] "Making the Color Spaces Match" section of http://hsivonen.iki.fi/png-gamma/
