Support for color profiles?



Hi,

Is there any ongoing work for supporting color profiles in f-spot?
I'm aware there's some code in src/Imaging/, but I already learned
it does "not enough".
Things I'd like to see:
- support for embedded color (ICC) profiles as per JFIF or Exif 2.2
  and for files using AdobeRGB as per Exif 2.21/DCF 2.0 when viewing
  files.
- conversion from the profiles named above to sRGB when exporting
  (optional, so you can use sRGB for web galleries, photo sharing
  sites etc and the native color space of the file whenever needed).

This obviously does not result in a "color managed workflow" but
will help dealing with color profiled images.

I'm willing to help coding and testing, but I did not want to
duplicate work already done. Can someone of the developers
tell me which parts of the color profile code is working?

Below I have compiled some points about color profiles and
file formats, in random order, for those who didn't already
dive into the gory details (sorry, it's a little lengthy):
- Do not expect to get a "color managed workflow" and such by
  just having those profile thingies around.
- The two most important color spaces today are sRGB and AdobeRGB.
  The former was supposed to be a "good guess" for most monitors
  (roughly speaking) when it was designed, the latter was designed
  by Adobe as enhanced "working color space" for preprint stages.
  It has a somewhat better color reproduction in cyan and green
  areas.
- A lot of software does not handle color profiles, but just
  assumes sRGB on all images. This includes all major web browsers
  except Apple Safari (and perhaps the upcoming Firefox 3)
  and even a lot of image viewers (gqview-devel 2.1.5 does
  support embedded profiles, but not Exif 2.21 as explained below;
  additionally, gqview development seems dormant). Gimp 2.4
  supports color profiles, but not Exif 2.21.
  For this reason images to be posted on the web should be in
  sRGB color space.
- If files recorded in AdobeRGB are viewed as sRGB files (without
  conversion), colors look very dull and grey.
- Strictly speaking, there is no such thing as a "JPEG file".
  Today, whe have JFIF (JPEG File Interchange Format) and
  Exif (Exchangeable Image File Format). The former does always
  and the latter does often carry their "payload" (the image)
  as JPEG compressed data. According to the papers, they require
  slightly different metadata handling (almost(?) every application
  does handle both file types just fine transparently to the user).
- if a (newer than 2003) camera records in AdobeRGB, it will
  hopefully do so in compliance with Exif 2.21/DCF 2.0. Exif 2.21
  is an update to the widely known and used Exif 2.2 standard.
  The most important part of the update (at least for this case)
  is the support for color spaces besides sRGB and "uncalibrated".
  So, if the Exif version of an photo file is 2.21 (0x0221 in tag
  0x9000 ExifVersion in APP1), it may have an color space of
  "uncalibrated" (0xFFFF in tag 0xA001 ColorSpace in APP1 (Exif))
  and the string "R03" in Exif.Iop.InteropIndex (that's tag 0x001
  in the APP1 section), which marks it as a "DCF option file" with
  AdobeRGB color space. An sRGB file has 0x0001 in ColorSpace and
  "R98" in InteroperabilityIndex) and is called a "DCF normal
  file". Also, a "DCF option file" is supposed to have an underscore
  as the first character of it's file name (for example "_mg_1234.jpg"
  when using Canon gear).
  The string "R03" is not defined in Exif 2.2 but only in Exif 2.21.
- Some software indicated the use of AdobeRGB on Exif 2.2 files by
  putting 0x0002 into Exif.Photo.ColorSpace. This is not covered by
  the standard, and (hopefully) not to common.
  The "right way" to indicate color profiles besides sRGB in Exif 2.2
  is to set Exif.Photo.ColorSpace to "uncalibrated" and supply the
  profile in Exif.Photo.ICC_Profile (the profile itself is stored in
  an APP2 section).
- Files created by other software (Gimp, Photoshop) will be in JFIF
  format can carry an embedded profile in an APP2 section, but there
  are no "real Exif tags".
- For correctly interpreting "DCF option files" with AdobeRGB color
  space one needs to have the AdobeRGB profile around. You can download
  these at http://www.adobe.com/digitalimag/adobergb.html but I think
  their license is too tight for including the profile in open source
  software. Alternatives are using a homebrewed profile "compatible
  with Adobe RGB (1998)" (I think I've seen one in src/Imaging/Tiff.cs)
  or instructing the user to download a profile on his own. There
  have been suggestions from the OpenICC project to put color
  profiles in /usr/share/color/icc/, /usr/local/share/color/icc/ or
  ~/.color/icc/.
- Some reading:
  the exiftool documentation http://www.sno.phy.queensu.ca/~phil/exiftool/
  the Exif 2.2 standard http://www.exif.org/specifications.html
  a tutorial on color management basics
    http://www.cambridgeincolour.com/tutorials/color-management1.htm
  the most comprehensive freely available official source on
    Exif 2.21/DCF 2.0 (no joking here)
    http://www.cipa.jp/exifprint/contents_e/01exif2_2_e.html

Regards
Christoph

-- 
Spare Space


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