Read the EXIF.Photo.Colorspace tag in opening: camera JPEGs are displayed incorrectly when colors are in Adobe RGB

Ideas for improvements and requests for new features in XnView MP

Moderators: XnTriq, xnview

Post Reply
simohno
Posts: 4
Joined: Sun Jan 03, 2021 2:47 pm

Read the EXIF.Photo.Colorspace tag in opening: camera JPEGs are displayed incorrectly when colors are in Adobe RGB

Post by simohno »

Hello to all

I really appreciate XnView, but I would like to point out one of its few weaknesses in my opinion of photographer, concerning the color management.

All the out-of-camera JPEG files (at least for my Olympus, Canon, Nikon models) don't include in the file an explicit "ICC profile" tag structure, but only some other color profile metadata into the EXIF structure, which are, after some research I've done: the EXIF.Photo.Colorspace tag, which is not visible in XNView, and some infos called "Interoperability index" (IOP), which can be: R03 - Adobe RGB or R98 - sRGB.

Now, I shoot always in Adobe RGB, and notice that while GIMP, Adobe Bridge and Google Picasa display correct colors and report "Color space/profile: Adobe RGB" in the file properties, XNView MP does not; this is surely due to the fact that XNV only reads the "ICC profile" tag and not the EXIF.Photo.Colorspace too, and if the former is empty, it uses the color profile set in the Settings by the user. The result is annoying: I have photos in Adobe RGB which are displayed with dull colors (as if they were described in sRGB, the default color space I've set in the settings, "if the photos have not one"); this, until I manually assign to the file an ICC profile and choose the option "Save profile into file" when exporting. And this can't unfortunately be done in XNView, so I have to switch to GIMP to do this.
A workaround that I used in the past is to choose Adobe RGB for the default color profile when the file hasn't one, but this way I get, on reverse, over-saturated colors from photos I shoot with the smartphone (which are in sRGB).

Therefore, I suggest these improvements:
  • Upon opening a JPG image, read the EXIF.Photo.Colorspace metadata if the Color profile is empty. If the former contains a profile, use it to render the image!
  • Show the EXIF.Photo.Colorspace metadata in the (else very complete) metadata list in Properties
  • (Less urgent, but useful): give the possibility to write the color profile (or a choosen one, in case there is no color information) inside the file, in the "ICC color profile" tag, with a simple menu entry (for a single photo)
  • Give the possibility to do this also in Batch convert module, to do this for an entire set of photos. (EDIT: with an action "ICC convert", using the same ICC profile for input and output, and checking "Ignore embedded profile", this seems to do the job, but it's quite long to use, and possibly does an unnecessary conversion rather than simply a profile assignment.)
Thank you for considering this,

Simone
Post Reply