Page 1 of 1

0.90 Linux: display ICC profile uncorrectly applied to output image

Posted: Fri Jul 20, 2018 9:11 am
by jenga
(Ubuntu 18.04). Source image: jpeg with srgb profile.

When option "utiliser le profil ICC" is selected, the displayed image is modified according to the display ICC profile, which is fine: pixel values on the screen are modified to compensate the physical screen bias (reading pixel values with ctrl-shift-I or looking at the histogram confirms this modification).

But when the image is saved on disk, even if no user modification has been made, the saved image differs from the initial one in a sensible way.
It seems that the stored pixel values are those altered according to the display profile, which should not be. Display profile, which is device-dependent, should be applied only on the displayed pixels, it should not alter the image itself.

The shift is cumulative, i.e. when saving again the saved image and so on, the result tends (in my case) to some uniform grey (because my display over-saturates a bit, thus my ICC profile reduces saturation and contrast).

I have tried to play with options in "Formats -> Ecriture / JPEG" (e.g. "conserver ICC" or not) with the same result.

When "utiliser le profil ICC" is unselected, the written image is fine (visually equal to the original one, pixel values are almost identical when good quality jpeg is selected), of course at the expense of the display quality as the hardware bias is not corrected.

Most importantly, I would like to sincerely thank you for providing the community with one of the best tools around.

Re: 0.90 Linux: display ICC profile uncorrectly applied to output image

Posted: Sun Aug 05, 2018 4:32 pm
by xnview
yes, 'save' use the image (with icc applied)

Re: 0.90 Linux: display ICC profile uncorrectly applied to output image

Posted: Thu Aug 09, 2018 6:59 pm
by jenga
Thank you for your answer.
I think this thread reports exactly the same issue:

viewtopic.php?f=62&t=37755

Let's take an example:
-the RGB value of a pixel is (100, 100, 100)
-in this area the uncorrected display is too bright, which means the icc profile needs to reduce the values, let's say by 10%

Indeed, if we load this image with icc management enabled, XnView modifies the pixel value, according to the icc profile, to (90, 90, 90). ("show color information" confirms this). This is fine as far as display is concerned, colors are correctly corrected.

But "save" saves on disk the icc altered value (90, 90, 90), which is different from the initial one although no image modification has been done, which is surprising.
If we load the saved image (90, 90, 90), the color management then modifies the value to (81, 81, 81), another save/load operation leads to (72, 72, 72), etc. As a result, the image alteration grows in a very visible way at each save/load cycle.

I think "save" should rather save the pixel value not altered by the icc profile (i.e. 100, 100, 100) in the example), because this profile is related to the display, not to the image itself.

XnView is great anyway!

Re: 0.90 Linux: display ICC profile uncorrectly applied to output image

Posted: Fri Aug 10, 2018 7:48 am
by xnview
jenga wrote:
Thu Aug 09, 2018 6:59 pm
Thank you for your answer.
I think this thread reports exactly the same issue:

viewtopic.php?f=62&t=37755
yes same issue