Correct way to work with color managed applications?

Hello,

Again me wondering about things related to color calibrated monitors and application that are aware of ICC profiles.

So my problem is that I really don’t know how to best work with these applications. What I would assume, that when you apply an ICC profile for your monitor, it should work like some sort of overlay that corrects colors for anything that is being showed via that screen. And then there are software applications that are aware of these ICC profiles for monitors and try to use these profiles, but when they do, I get muddy not beautiful colors. In addition I am certain that for applications that I turn off color management they show more correct colors as I checked with printed pictures. But the problem is that some applications seem to be unable to turn off ICC profiling. I read that Firefox browser is also a color managed application by default. I looked at how my portfolio shows up there, and witnessed those moody colors opposed to what I see on Chrome browser which shows nice colors, I went to check on other websites and noticed that many many images suffer from the weird ICC profile interpretation. So my question is how to correctly handle the monitor calibration profile at application level? I use I Geeqie to view images since it allows to easily check between color managed and color management off views and I can say that when color management is off it shows more correct colors proven by printed images. SO what is the deal? badly working Color profile? Should I not care much since not many people calibrate monitors? Currently I tell color managed applications to use sRGB color profile instead of my monitor’s ICC profile because I think that DispcalGUI covers the profiling on global basis. Other case of using color management on app level would be to load printer profile to estimate how it should look printed using that exact printer.
Attached you will find a screenshot of difference between color managed Fireffox and not color managed Chrome.

Hey

These will explain a lot:

http://www.ludd.ltu.se/~torger/dcamprof.html

Basically: you need to profile your monitor, which usually involves calibration. The calibration curves are stored in the same ICC file which contains the profiling information, for convenience. These calibration curves are loaded into the video card (GPU) which changes colors of everything on the screen. That gets you just half way there, and if you stop there you’re nowhere near seeing correct colors. The next half is using a color-aware application (image viewer, photo editor, web browser) which will use the profile information from the ICC file to adjust colors of whatever its showing so that they look correct on your monitor with your calibration curves loaded into the GPU. The way it will “use the profile” involves the rendering intent, and neither of my two favorite Linux image viewers - Geeqie and Gwenview - support letting the user choose the rendering intent. Which sucks. Big time. Because now I have to make a new monitor profile with the appropriate rendering intent baked-in. But I digress. Only when your software does the above can you feel secure that your colors are accurate.

By the way, the most commonly used intent for day-to-day viewing is “relative colorimetric”.

About automation: The X window system supports a variable, an “atom”, called _ICC_PROFILE which is the standard place where the “correct” monitor profile for the current screen should be referenced. I believe dispcalGUI sets it when you “install” a monitor profile. Applications can then check for this atom and if it contains something, they can load it for you. Otherwise you must pick the right monitor profile manually.

A general problem is that most developers aren’t photographers and they may have a vague notion of color management and be motivated to implement it in their software, but as they don’t actually use it the end result is a half-baked sham of a feature, and that way you end up with programs which for example don’t let you select a custom monitor profile if the X atom is set, or don’t let you select the rendering intent. There is no such thing as “partial color management support”. It either works end to end and allows you to set all the things which need to be set and which are up to the user and not up to the developer to decide, or it does not.

In your screenshot I see Firefox and Chrome. I haven’t looked at Firefox in a while so I won’t comment, but Chrome does not support color management. If you load calibration curves into the GPU then the images inside Chrome and everything including the Chrome window decorations and the mouse cursor itself will be affected, but the color’s won’t be correct because it won’t use the profiling part of the ICC file. Out of luck.

Nope, that’s just the calibration curves being loaded into the GPU.

That’s called soft-proofing and it requires that you use a calibrated and profiled monitor with loaded calibration curves and applied ICC profile.

2 Likes

Firefox is fully color managed: How to configure Firefox color management

That article is from 2010. Is it still valid? If so, great!
Chrome had some color management support in the past, and then at one fell swoop they removed it. Brilliant.

– Update: I see from the comments that it must still be valid.

Short addendum to what @Morgan_Hardwood wrote: The part that gets loaded into the GPU is called vcgt and is just a gamma correction. It will not change the colors. So don’t confuse it with full screen color correction which might come with Wayland (I hope).

Another thing to be careful about is what part of the color management applications support. I have seen image viewers that are able to read the color profile from images but have a display profile of sRGB hardcoded so that’s only half useful and won’t give correct colors in the general case.

Then, if your application supports both display profiles as well as image profiles you have to make sure that the correct display profile is used. In Firefox you can set it in about:config (search for “display_profile”), but some only support the _ICC_PROFILE atom which tends to fail when you have more than one monitor. There is an extension to the X atom spec that deals with that case (using _ICC_PROFILE_n for n > 0) but that’s almost nowhere implemented (darktable and GIMP support it) and sometimes used slightly different than specified (both dt and GIMP diverge from the specs). An alternative that should be more future proof is using colord, however that isn’t widely supported yet (darktable supports it).

To see what profiles your system has set up you can use the small darktable-cmstest tool that is shipped with darktable. Compiling it standalone should be possible, too. Another way to see if thinks are working as intended is using a known-broken test profile like BRG.icc and/or images with such a profile embedded. There is also a website to test your browser.

embedded image removed due to broken colors after conversion by the forum software

If you have more questions feel free to join us in IRC.

PS: I just noticed that the labels in that image are German. The important translations are:

  • Rot – red
  • Grün – green
  • Blau – blue

Here’s the thought process I’ve recently been through in case it helps.

How my setup was (misconfigured mess)

I have a Dell U3011 monitor which I bought years ago mainly for its size, resolution and aspect ratio (16:10 instead of the less-useful-to-me 16:9). I ran it in its standard (full gamut, though that kind of thing wasn’t really on my radar back then) mode, but everything in my sRGB/web life was very bright and saturated, and I compensated by turning the contrast right down.

This made for quite a nice experience for me indivudally in isolation as colours were still saturated and I don’t like my displays too bright/contrasty.

What I then tried (attempting Adobe RGB)

When I recently bought myself a new DSLR and started to get back into photography a bit more I looked into display colour issues and read a few articles. At some point I looked up my monitor specs and info and was surprised to learn that it was wide(r) gamut (I’d been assuming it was sRGB), and that it can “do” Adobe RGB. I’d read that working in Adobe RGB could be problematic but I wanted to give it a go, so I started to experiment.

I did more reading and used some of the tools @houz mentions above. I think I did have some success, and my monitor’s Adobe RGB mode, Ubuntu and Darktable seemed to make this viable, though I wasn’t very sure of the results.

Where I am now (aiming low)

However, I ended up deciding that I didn’t need colours outside of sRGB for now (especially as if you’re going to go to the bother of Adobe RGB it seems you should really do a proper monitor calibration rather than relying on the manufacturer’s supplied profile, which I’m not keen to do at this stage) in the knowledge that I could always re-process RAWs into AdobeRGB rather than sRGB if I wanted to in order to get those richer colours. (RAWs are not made in either colour space, and require rendering into such a colour space at the point of processing.) I don’t print often and my images will mostly be viewed on the web, where it’s best to assume that viewers have no colour management, unfortunately. I’m a web developer and hobbyist photographer, so I think sRGB is currently right for me.

Wishing to stick with the simple sRGB route, I’d turned my monitor into its preconfigured sRGB mode. However, this made all colours very dull and unsaturated. I finally realised that my low contrast setting from back when I initially adjusted the monitor was to blame; turning it up again resulted in somewhat saturated colours, though they are still less saturated than I was used to running in the standard/full gamut mode I’d got used to. However, as I understand it, these slightly less saturated colours are nearer what most viewers will see on typical monitors, most of which won’t support saturation to the level wider gamut displays do.


I’m not sure if this helps you in your situation, but maybe it gives you some things to think about and try.

My OS and monitor are both set to sRGB, and your images look the same to me in both browsers; I would say that the saturation level is good as the red hair is quite bright while still showing detail. I opened up one of the thumbnails in GIMP and I see that it had an sRGB colour profile embedded in it, and this being the case, Firefox shouldn’t erroneously desaturate as I understand it. Nor should it if there is no no embedded colour profile as it should assume sRGB.

But remember that these tests can’t tell you whether your color management workflow is set up correctly! They only tell you one link from a chain of things. In that test website’s case, it will only tell you whether your browser supports embedded profiles, and even if the result is positive your monitor profile might still not be supported nor loaded and your calibration could be totally whack.

Displays which support wide gamuts are of a higher quality and support accurately showing more saturated colors, so for that reason you could say that sRGB screens generally look less saturated. My high-end laptop screen covers 76% of the sRGB gamut, and 54% of AdobeRGB. I presume most screens do worse than that.

Still confused how to actually avoid the colors getting off when color managed. I mean, if I for example edit using color management on, what I see is red being very low, making e.g. skin become like sand or mud. If I reconstruct the colors, on other devices I end up with huge red amounts making the skin be like lobster. Wonder how people make it to work right. I use darktable and get good results when color management is under colord option. But when I open it in Gwenview or Geeqie with color management on, I get mud and sand color skin etc. Color management is like a mystery,

What does that mean? As I wrote, there’s more to color management than one link… it’s a chain of things. Start with the URLs in my first reply.

@Danas_Anis: So you set the monitor to an internal sRGB mode? Did you also set sRGB as your system’s display profile? Maybe you just got used to the over saturated look of the wide gamut monitor?

@Morgan_Hardwood: Of course such a website only tests one piece of the puzzle, I just mentioned it because the question about browser support was brought up earlier. To help testing some other steps I would set the mentioned BRG profile as the display profile and see if image viewers and browsers show funny colors. That way you can make sure that the way they pick the used profile actually works.

And I just noticed that the image of the color circle embedded above is cached by this website and broken while doing so. I guess it just stripped the color profile which isn’t the best thing to do for a photography site. @patdavid, could you have a look if that can be fixed?

@Morgan_Hardwood I think too much information in this matter, I read the articles, but the more I read the deeper the wood becomes. They describe the principle of color calibration and management but still I am confused about per application basis stuff. As for color managed application, on my system the colors are wrong, they are more correct when I turn off color management or make application use sRGB profile instead. I can confirm that with printed images.

Well I guess I will go to print new images sometime this month and will check again, I no longer have previous prints But need to check things again, definitely skin tones on print are not as yellow as color managed apps show on my system…

@houz no, I am using an ICC profile system wide but get more correct colors when I turn of color management in Geeqie for example. When I turn on color management in Geeqie, I get colors of mud. Printed images on paper look far better (professional grade not home printer). And this result in confusion to me. If for example I make GIMP use system color profile, it seems like it puts away a lot of reds and I get yellowish skin tones instead of healthy Caucasian skin.
The reason I brought this topic is that since I heard that Firefox is color managed, I went to check my online published stuff using firefox and noticed the mud colors instead of nice tones, but that is with majority of images found on such websites like behance etc. I just got worried how should the images be prepared correctly so that they would be showed well on both color managed screens and not color managed screens. Not too red, not too yellow.

After years with calibrated monitor, I can;t stand the blue cast that is usually there when without the calibration on my screen so no way I am not using color calibration profiles on my screen. I am using a pretty old laptop, it has good screen but as with many laptops, without calibration non IPS panels are too blue. IPS and PLS panels show more correct colors out of the box usually, but still needs to be calibrated.

It’s somewhat depressing that 54% of AdobeRGB is considered “high-end” these days. I’m not critiquing your choice of term even for a second – instead I’m merely lamenting the state of the art at present. My impression is that in the days when a “high resolution display” was 1920x1280 or 1920x1080, an important part of what people took to be good quality was color gamut, but when manufacturers created 4K and 5K displays, for the most part gamut suffered badly, dropping precipitously. Only very recently is it becoming possible to once again find high-resolution displays with anything like an acceptable color gamut at a reasonable price.

Probably just as sad is the fact that lower-end 1080p displays these days, such as those found in the base-model Lenovo workstation laptops, have truly appalling color gamut coverage.

Maybe the root cause of this lamentable situation is commodity marketing and manufacturing cost, equivalent to where the great mass of largely uniformed decision-makers judge the quality of a camera based on mainly how many megapixels the sensor has. The manufacturers know better, but they’re under strong pressure to deliver massive volumes as cheaply as they can.

Personally I’m making do with my 2011 era Lenovo W520, which has good gamut coverage. I plan to run it until it one day stops, hopefully not any time soon :smiley:

1 Like

@Danas_Anis indeed, knowing when color management is working correctly is not a simple feat. I’ll just bounce some thoughts around, don’t feel compelled to answer the questions, it’s just something to think about:

  • You base your judgement that your color management is incorrect on the fact that the prints don’t look as yellow (as warm?) as what you see on screen. Who is to say that the prints are correct? Is the printer profiled correctly and are you using that profile and are you comparing the printout to a soft-proofed image?
  • Have you profiled your monitor yourself? If so, have you used the correct white point? The correct white point depends on the task at hand - you might use “native” for working on photos but 5000K for matching prints…
  • Is your colorimeter faulty? Is it designed to work well with your screen? Does it need any correction matrices?
  • Do these color-managed apps have correctly implemented color management?
  • Have you loaded the calibration curves (VCGT) into the video card? Your last paragraph makes it sound like you have. If you’re in Linux you can easily check: argyll-dispwin -c resets the VCGT which should make the screen look more blue, argyll-dispwin -L loads the calibration curves which should make it warmer.

@damonlynch yeah, Instagram seems to testify that people generally don’t give a hoot :wink: I still suffer a minor heart attack every time I upload a photo or panorama I spent hours on only to see it riddled with compression artifacts, have its chroma halved or quartered, and have its colors butchered by the social platform responsible for the crime.

I started drawing a chart that explains the basic high level steps. Maybe we can tweak it until there are no errors left and it’s clear enough to be of help.

I assumed that the image is in AdobeRGB color space and that the application has a working profile of sRGB (not true for darktable, but it’s just an example …).

3 Likes

Great approach, @houz. Thanks for taking this opportunity. There’s a lot of information on the internet about color management, but what is missing is a simple explanation of what is happening and why it happens. All those tutorials telling “press this button and edit this config file” do not really help understanding color management, but your approach could handle it.

Does that mean you are open for suggestions? I have got a couple:

  1. For the basic understanding it is not important if the image is edited or only viewn, especially since you do not tell the differences when it comes to editing. Therefore I would suggest to skip this step to make the graphic less cluttered.
  2. It may be useful to give a hint why the “vcgt icon” is black/white while the “profile icon” is colored.
  3. Assuming that the profile is the result of a monitor calibration approach, the details about what the monitor does with the data (the “maybe” part) could be removed to make the info graphic as simple as possible, or footnotes could be introduced for these details that are practically important but not necessary for a basic understanding. That covers e.g. that GIMP has color management turned off by default as well.
  4. If it does not make the image too cluttered, what about adding symbolic horseshoe diagrams that show 3 things: The color space in use at this step, the color coverage of the image (an example coverage) and 3 example pixels/colors (one that will be out of gamut in one of the steps).

Sure. I will see what I can come up with.

@Morgan_Hardwood well, definitely the judgment is not made by any professional and science approved method. It is just that with a few colleagues we came to this conclusion, that the print house house I print images usually is the most accurate one from 5 different service providers. But it is just a measurement by eye. I actually don;t have the printer ICC profile, but whenever I print images, I go back home and check it next to the screen and I am never surprised of different colors, they always are pretty much same looking, print doesn;t glow so it is less bright. But I think I will check again using few different pictures, especially with those where I see major skin tone difference where I get reds be completely gone if I view the image with color management on.

I really wish to get things as right as I can.

My colleague profiled the screen. But it was long time ago, so definitely need for a new profile and calibration. But this old profile is better than having nothing. I have two profiles, older one is made with spyder 2 while newer one is made with spyder 3 but I like the older one better, spyder 3 gives a bit of yellow tint on the gray. I am looking to buy a colorimeter and have decided to go with Colormunki Display, but currently i don’t have funds for it cause I am planning on a photoshoot which will require some funding from my pocket…

I really am not sure whether color managed apps are implementing my profiles correctly. that is one of the reason for this forum topic. If I would color grade my images according to how they are showed when color management is on, not colored managed apps will show lobster red skin tones. If I color grade with color management turned off on GIMP and view the images on a color managed app, I get reds being muted ending up with some yellowish brown or mud tint. Probably my ICC profile is not being set up correctly on color managed apps. Or maybe it shows correct and I am doing it all not right, but then, if I print my images, I get what is expected according to my screen on not color managed app but with calibration on on the monitor. And I end up with confusion on how to work with color management on apps.

well I guess I will just have to comapre different images with print and screen with color managed app management on and off and when possible calibrate my monitor and see how the new profile works.

For some reason your provided commands didn;t work, says no such command found, but I know argyll cms is installed, other wise Dispcalgui wouldn’t work right?

Thank you everyone who participate in this topic, hopefully we will manage to make this subjected a lot more easy to understand.

1 Like

Color management is there to avoid such unintended differences. Both profiles should match. If they don’t, either the procedure was done incorrectly, or was done with differing settings in software (e.g. different whitepoint in calibration).

dispcalGUI has a “Verification” feature, but I haven’t learned how to use it yet.

I can vouch for GIMP and RawTherapee’s color management implementation - latest development versions of both.

Why don’t you process a photo to look well with CM turned on and again with it turned off, then make both JPEGs available, and the raw file too just in case, so we can take a look? In that case upload the file using http://filebin.net/ so we can be sure they have not been changed in any way.

argyll-dispwin is also called just dispwin, try both.

Remember that your color profile is only valid with your monitor calibration - changing one invalidates the other.

My biggest obstacle regarding color management is being able to tell when I did it right.

I see dispcalGUI is now called DisplayCAL.

Latest version is 3.1.2
https://sourceforge.net/projects/dispcalgui/files/release/3.1.2.0/

1 Like