# Seeing different colors in different browsers: not an ICC thing...



## KrisK (Jan 19, 2014)

Is it normal for an image's colors to appear slightly different, on the same calibrated system, across what appear to be color-managed (or at least ICC-aware) browsers? (I'm in Windows 7, 64-bit.)

I've attached a cropped screen shot of how IE11 and Firefox 26 render an ICC-tagged test image that I found in another forum on this site.

Both browsers correctly show a yellow car, so as I understand the issue the browsers are ICC-aware (if they weren't the cars would appear purple, as I've demonstrated to myself in some non-color managed apps I've got.) But Firefox (and Chrome, it turns out) introduce a warm cast.

Is this just how it is? Or am I missing some variable in the color management / ICC chain?

Thanks.


----------



## privatebydesign (Jan 19, 2014)

In Windows that is how it is, with Apple it isn't as all three colour managed browsers display the car the same. So there is something in your OS that is allowing the browsers to make their own gamma, black point, and saturation implementation.

As per this page http://petapixel.com/2012/06/25/is-your-browser-color-managed/



> Note that even the browsers that recognize nonstandard color profiles don’t all implement the monitor color profile the same way, with each successive browser bringing up the black levels (and IE9 really pumps the saturation!). Note also that every browser tested in OSX correctly implements ICC profiles once an image is fully loaded.


----------



## neuroanatomist (Jan 19, 2014)

As a Mac user, I like not having to worry about this sort of thing directly. But, it's good to be reminded that people could be viewing my images through tinted Windows.


----------



## jrista (Jan 20, 2014)

I don't think it is a windows thing. It would depend on whether the browsers or for that matter the tools used to create the images use Windows ICM, or implement their own ICM. Photoshop, for example, can be configured to use it's own ICM or the platform ICM. The two do not produce the same results, so if you want Photoshop to render colors the same way browsers will render colors, you should change it from it's default (using it's own ICM engine) to using Windows ICM.

I suspect one or more of the browsers you are using is not using the Windows ICM engine, and is instead using it's own. Anything that uses the same ICM engine to render color should be producing identical results. I guess the one caveat would be untagged JPEG images...it is possible that different browsers are using slightly different sRGB color profiles (ICC profiles) to represent the sRGB space. They may still use Windows ICM, but are actually supplying slightly different ICC profiles to guide color conversion. If that's the case (honestly not sure how you might figure that out), there probably isn't anything you can do about it.


----------



## neuroanatomist (Jan 20, 2014)

jrista said:


> I don't think it is a windows thing. ... I suspect one or more of the browsers you are using is not using the Windows ICM engine, and is instead using it's own.



Potato, potaah-to. AFAIK, OS X manages the color and overrides any browser-specific color management.


----------



## jrista (Jan 20, 2014)

neuroanatomist said:


> jrista said:
> 
> 
> > I don't think it is a windows thing. ... I suspect one or more of the browsers you are using is not using the Windows ICM engine, and is instead using it's own.
> ...



That might be true. If it is, that could be considered a detractor...there are times I've found it extremely useful to use Photoshop's own ICM (as it actually seems more accurate). Anyway, the OP's problem occurs with Windows 7, so I think my answer is quite relevant to his issues.


----------



## KrisK (Jan 20, 2014)

Ah, Windows. Well, I've already got ProRes-envy; now I've got this to worry about.



neuroanatomist said:


> As a Mac user, I like not having to worry about this sort of thing directly. But, it's good to be reminded that people could be viewing my images through tinted Windows.



Yes, that test image was very helpful in puzzling this out. Thanks.

For what it's worth, IE 11 matches PS, LR, etc. It's also the only browser on my side that seems to be ICC-4 ready, based on the test page located here:

http://www.color.org/version4html.xalter


----------



## Mt Spokane Photography (Jan 20, 2014)

I don't think that much attention has been paid to having perfect color in browsers. Apple has always taken color more seriously. except for their Windows version of Quick Time which clamped blacks the last time I tried it.

Since the average user has uncalibrated monitors that are all over the place, it probably goes unnoticed by 99.9%.


----------



## jrista (Jan 20, 2014)

KrisK said:


> Ah, Windows. Well, I've already got ProRes-envy; now I've got this to worry about.
> 
> 
> 
> ...



Hmm, very interesting. I had thought Chrome was ICM compatible, but I guess not. Opera (also a Chromium browser now) is also not compatible, and neither is Firefox. That would certainly explain why there are discrepancies...only IE is color managed!


----------



## LetTheRightLensIn (Jan 20, 2014)

KrisK said:


> Is it normal for an image's colors to appear slightly different, on the same calibrated system, across what appear to be color-managed (or at least ICC-aware) browsers? (I'm in Windows 7, 64-bit.)
> 
> I've attached a cropped screen shot of how IE11 and Firefox 26 render an ICC-tagged test image that I found in another forum on this site.
> 
> ...



Absolutely. IE is NOT fully color-managed (it simply converts any image tagged as wide gamut to sRGB and that's the extent of it's management, and that actually makes things worse if you were running it on a monitor in wide gamut mode so the wide gamut images may have looked at least vaguely correct before it turned them into sRGB). Firefox is color-managed and if you use the plug-in to turn it on 100% it will even color-manage the text and background colors, every single last element on a webpage.

IE does not make any use of the monitor profile at all. So if you have an sRGB image but your monitor is set to gamma 2.2 it won't translate from sRGB tone curve to gamma 2.2 and you'll get shadows that look a bit too contrasty and dark as well as slight mistakes in the highlights. Also if the primaries on your monitor are not exactly set to sRGB coordinates it won't apply the needed transformations for that and if your profile is a complex LUT table to try to fix some of the color issues with your monitor it won't use those either.

Firefox will do all of that.

Chrome does nothing ever.

(actually i haven't tested the very latest IE that just came out, but I thought I've heard that it is the same old story, more or less not color-managed)


----------



## LetTheRightLensIn (Jan 20, 2014)

jrista said:


> I don't think it is a windows thing. It would depend on whether the browsers or for that matter the tools used to create the images use Windows ICM, or implement their own ICM. Photoshop, for example, can be configured to use it's own ICM or the platform ICM. The two do not produce the same results, so if you want Photoshop to render colors the same way browsers will render colors, you should change it from it's default (using it's own ICM engine) to using Windows ICM.
> 
> I suspect one or more of the browsers you are using is not using the Windows ICM engine, and is instead using it's own. Anything that uses the same ICM engine to render color should be producing identical results. I guess the one caveat would be untagged JPEG images...it is possible that different browsers are using slightly different sRGB color profiles (ICC profiles) to represent the sRGB space. They may still use Windows ICM, but are actually supplying slightly different ICC profiles to guide color conversion. If that's the case (honestly not sure how you might figure that out), there probably isn't anything you can do about it.



nah it's really not an ICM engine issue thing at all (unless maybe the very newest IE change things, I will check later). Firefox and irfanview color management make things basically identical to Photoshop ICM. It's that IE 100% ignores the monitor profile. As does Chrome. Chrome even ignore the image profile was well.


----------



## jrista (Jan 20, 2014)

LetTheRightLensIn said:


> KrisK said:
> 
> 
> > Is it normal for an image's colors to appear slightly different, on the same calibrated system, across what appear to be color-managed (or at least ICC-aware) browsers? (I'm in Windows 7, 64-bit.)
> ...



I'm not sure that Chrome does nothing. At least, Chromium as used in Opera, based on some tests I just ran a short while ago, seems to do color management. Firefox doesn't support the ICC test, however it does seem to properly render photos with AdobeRGB. 

Seems like browser color management is a quirky scenario. Only IE supports the ICC test, however all browsers seem to do some kind of ICM on some images. Opera/Chromium, for example, doesn't seem to handle ProPhotoRGB images for whatever reason (they show up rather desaturated.)

Really wish this issue would be delt with. The major operating systems offer built-in color management engines. Browsers wouldn't have to implement them on their own, they would just need to hook into the OS ICM and let it do it's thing. Sounds rather simple, if you ask me...


----------



## LetTheRightLensIn (Jan 20, 2014)

jrista said:


> LetTheRightLensIn said:
> 
> 
> > KrisK said:
> ...



IE passes the ICC test because it understands image profiles and both v2 and v4 but that ICC test only tests how browsers react to image profiles. It does nothing to tell you abut whether the browser handles monitor profiles. IE doesn't (at least not as of all versions prior to the very latest and I'm pretty sure even the latest still does not).

Firefox may fail the ICC test, but only the v4 tagged images of which there are likely only a vanishing few out there on the web but it passes everything else. It understands monitor profiles and can even handle text, backgrounds and so on, everything (well actually not Adobe Flash stuff since that renders itself and is not managed, so sadly flash based slide shows are 100% not color managed  ). Some browsers handle most stuff but don't handle untagged elements so all the images not tagged as sRGB (but that are sRGB) and all the web elemenets like various background colors and text colors and so on are not managed and all that stuff goes radioactive if you use those browsers on a wide gamut monitor set to wide gamut mode, even if all tagged images look perfect. 

at least on Windows. MAC is different some there have been times that MAC versions of browsers have been color-managed but not Windows and even vice-versa and then in some cases the MAC itself tries to color manage which Windows never does.


----------



## jrista (Jan 20, 2014)

LetTheRightLensIn said:


> jrista said:
> 
> 
> > LetTheRightLensIn said:
> ...



The browser shouldn't "handle" monitor profiles. It isn't the browsers job, technically speaking. It's the job of the Image Color Management (ICM) engine to handle that. You have multiple profiles in play at any given time. In the case of rendering an image to the screen, you have two key profiles: The image profile and the monitor profile. The monitor profile ONLY affects things rendered to the screen. That is completely abstract from the browser, or any other ICM-aware application. It isn't the applications responsibility to deal with the monitor.

For that matter, neither is it really the application's responsibility to actually deal with the image profile. All a browser really needs to do is determine what ICC profile an image is tagged with, and render it to the screen VIA ICM. The ICM engine will then deal with any and all other devices (and their profiles) in order to spit out color-corrected values for each pixel. 

In the case of a print softproofing workflow, you would technically have three profiles in play: The image, the screen, and the printer. The ICC profile assigned to an image basically calibrates the image. You can't apply a monitor profile to an image, it wouldn't make any sense. Neither can you apply a print profile to an image. Each profile only applies to the thing it was designed for. ICM will convert from the image ICC profile to the printer ICC profile, and will then in turn render that output to screen with the monitor ICC profile. 

So long as a browser properly uses the OS ICM engine, it doesn't actually need to do a bloody thing, other than render _*via *_ICM with the images ICC profile (or assume sRGB if there is no profile tagged). The OS ICM engine does all the rest.

In the case of Opera/Chrome, it appears they do not support the v4 profiles like you say. That said, as far as I can tell, they do support full ICM as I've described above for v2 profiles. Is there something about IE that is different? Is there evidence that indicates it converts everything to sRGB in some sideband way first? (That doesn't seem logical to me, given that Windows has had it's own ICM for years.)


----------



## ereka (Jan 20, 2014)

This might help?

http://www.gballard.net/firefox/


----------



## sandymandy (Jan 20, 2014)

if i remember correctly firefox is the only browser that really does icc


----------



## jrista (Jan 20, 2014)

sandymandy said:


> if i remember correctly firefox is the only browser that really does icc



It was the first. At the moment, it appears that all major browsers now support ICM. This is a handy little test site:

http://photographylife.com/is-your-browser-color-managed

Both photos look identical in IE 11, FF, Chrome, and Opera. Seems all of them are color managed. I think the big difference is the v2 vs. v4 support...as far as I can tell, only IE does v4 ICC support. And, for some reason, Chromium seems to render my ProPhotoRGB images desaturated (which means it isn't being properly converted via ICM), however I am not sure if those images are tagged with a v4 ICC profile or v2.


----------



## 49616E (Jan 20, 2014)

Firefox version 8 added support for ICC V4. However, it is not enabled by default. It can be enabled by going to about:config in your address bar then gfx.color_management and changing the it to enablev4=true

Full path: about:config, gfx.color_management, enablev4=true

Once changed restart the browser and the setting should be implemented.


----------

