Jump to content
Jimmini

Colors displaying incorrectly when using color profile

Recommended Posts

This seems like a pretty major and obvious thing, so maybe I'm doing something wrong, but on both my computers in Affinity Photo and Designer 1.8.3.641 (and previous versions), colors are not displaying correctly when the color profiles I created for my monitors are enabled. Both hue and brightness are shifted compared to how the colors look in almost all other programs I've tested, including with images saved by Affinity Photo itself. I use the standard sRGB profile for documents and the color settings are at their defaults:

AffinityColorSettings.png.563122a2016ef6d2e8f43cf2c6f06ecb.png

Programs I've compared it to include Windows Explorer, Internet Explorer, Edge, Paint, Visual Studio, Blender, and VLC, all producing colors as expected. Only Chrome and Firefox seem to alter colors to different degrees.
I've also compared it to various application programming interfaces by outputting a single color, i.e. Win32/GDI, WPF, OpenGL and Vulkan, again with colors showing correctly.
Additionally, I tested it by taking a screenshot of a document opened in Affinity Photo and comparing it to the actual document:

AffinityColorBug.png.8282f194ef77306579a9c61be7fdfbfd.png

Here I made a gradient in Photo, made a screenshot of it and inserted it below the actual gradient. The red color (255, 0, 0) is made slightly pink (255, 8, 34) among other things.
Apart from the color values, it also simply doesn't look like how I expect it.

The only way I found to "fix" it is to disable the color profile altogether (i.e. use the default sRGB IEC61966-2.1 profile), or to enable it while Affinity Photo is running (but only until I restart the program).

I'm using Windows 10, a Nvidia 650M with the latest drivers on my laptop and a 1080 Ti on my desktop PC. The color profiles were made with a X-Rite ColorMunki Display and DisplayCAL. It makes no difference whether I enable them with DisplayCAL or with the Windows Color Management dialog.

Share this post


Link to post
Share on other sites

Affinity manages display of the colors differently from other applications, which may explain why things look one way in Affinity and another way in other applications.

There's more information about it in an article on Serif's Affinity Spotlight site: https://affinityspotlight.com/article/display-colour-management-in-the-affinity-apps/

 


-- Walt

Windows 10 Home, version 2004 (19041.388),
   Desktop: 16GB memory, Intel Core i7-6700K @ 4.00GHz, GeForce GTX 970
   Laptop:  8GB memory, Intel Core i7-3625QM @ 2.30GHz, Intel HD Graphics 4000 or NVIDIA GeForce GT 630M
Affinity Photo 1.8.5.703 and 1.9.0.734 Beta   / Affinity Designer 1.8.5.703 and 1.9.0.734 Beta  / Affinity Publisher 1.8.5.703 and 1.9.0.742 Beta.

Share this post


Link to post
Share on other sites

I've seen that article already. It mentions an issue with default profiles, which I'm not using, and the issue of other applications not taking the color profile of image files into account, which isn't the cause either, since even single solid color outputs from standard Windows APIs without any image files involved are displayed differently.

Considering colors in Windows are inherently in sRGB space, I only work with sRGB images, and Windows is already transforming colors using the active display profile, I don't see why Affinity would need to perform any additional conversions in my case.
Even if there is a good reason for it and it's not considered a bug, it effectively results in colors being displayed differently compared to how the operating system displays colors, and I would like to have an option to disable it as it makes UI design a trial and error process.

Also, I just figured out that colors are displayed correctly if I use my display profile for the document, but that's obviously a bad idea.

Share this post


Link to post
Share on other sites
On 7/16/2020 at 3:00 PM, Jimmini said:

I've also compared it to various application programming interfaces by outputting a single color, i.e. Win32/GDI, WPF, OpenGL and Vulkan, again with colors showing correctly.

 

2 hours ago, Jimmini said:

Considering colors in Windows are inherently in sRGB space, ..., and Windows is already transforming colors using the active display profile,

Hi, unfortunately your assumptions here are incorrect. The colour you are outputting is not sRGB, it is a raw value that is used by the display hardware. If you use Win32/GDI or any other API to output a full red value (0xFF0000FF), then the monitor will output it at full intensity. So if your monitor is capable of displaying a wider colour gamut, that full red will actually be outside of the sRGB gamut.

To achieve correct colour reproduction, as Affinity does, you need to convert from the document colour profile to the screen colour profile. In Affinity, choose whatever colour space you want for your document, but in Windows, make sure that you monitor profile is set correctly.

If you set your document's colour profile to be the same as your monitor, you're effectively saying "perform no colour conversion", so again, full red will output at the full intensity that the monitor is capable of.

Hope that helps.

Share this post


Link to post
Share on other sites

Hi, I appreciate your answer, and it seems you're right. I assumed that full color correction is done system-wide once a profile is set in the Color Management settings, but apparently only calibration curves are loaded.

While that is definitely good to know, it doesn't change the fact that, as I mentioned before, colors don't match the ones in most other software, making it a pain to work with UIs, textures, screenshots, etc. So, is there a way to disable the color conversion, other than assigning my display profile to documents or disabling the profile on a system level? If not, would you consider adding such an option please?

Anyway, sorry for the false alarm.

Share this post


Link to post
Share on other sites
2 hours ago, Jimmini said:

I assumed that full color correction is done system-wide once a profile is set in the Color Management settings

That would certainly have made my life easier! macOS does apply a colour conversion to the entire display surface in this way, which is pretty sensible. 

2 hours ago, Jimmini said:

colors don't match the ones in most other software,

I suggest you raise bug reports with the devs of the other software ;-). In all seriousness, I briefly mentioned it in my post above, if you have the same document profile as your monitor profile, there will be no conversion. So whatever your monitor profile is set to, just choose the same profile for your document. Or alternatively change your monitor profile to be sRGB and keep your document in sRGB. Though generally I would avoid the latter.

As you're using Photo, you could convert the document to 32-bit, then use the 32-bit Preview panel to disable the ICC display transform (choose "Unmanaged"). But I really wouldn't recommend that, as it's massively overkill for what you want.

Finally, when you talk about colours not looking right, for UI design, you're talking about on your own screen. Without adequate colour profile conversion, you can't tell what the images will look like on my screen. You're saying "the red in my document doesn't look like the red somewhere else on my screen" - unfortunately this is a problem with Windows. However, if you keep your document in sRGB, then send it to me, it will look _exactly_ the same on my monitor, as it does on your monitor (in Affinity, or any other application that properly does colour profile conversion). 

Share this post


Link to post
Share on other sites

I have the slight feeling Microsoft wouldn't be very interested in such a bug report heh. Actually, they do seem to have added system-wide color correction already, but I think only for HDR monitors: https://docs.microsoft.com/en-us/windows/win32/direct3darticles/high-dynamic-range#wide-color-gamut-with-automatic-system-color-management

I understand why adding an option to intentionally break your own application just to have it behave like the rest of the system isn't very appealing... And you made a good point that it would really just look "correct" on my own screen. I guess I'll just work around it how you suggested when really needed.

Thanks for taking the time to clear this up.

Share this post


Link to post
Share on other sites

Actually I do have a question if you don't mind. Seeing that you're one of the few people who actually bothered to implement this properly, it would be very helpful if you could just briefly confirm whether I got the idea of this whole process right, so I don't base my decisions on wrong assumptions:

1) The display is roughly calibrated using OSD settings, if possible
2) Gamma curves are generated per channel that complement the prior calibration
3) A profile is created that accurately describes the transformation from CIELAB/CIEXYZ to the display's unique color space (assuming the prior calibration)
4) When the profile is installed, Windows loads the gamma curves into a table stored on the graphics card
5) Applications convert their colors to CIELAB/CIEXYZ, then to the display's color space using the transformation stored in the profile, and output it
6) The colors are automatically adjusted using the gamma table and then displayed

On macOS, step 5 is done automatically system-wide.

Is this somewhat correct?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

Please note the Annual Company Closure section in the Terms of Use. These are the Terms of Use you will be asked to agree to if you join the forum. | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.