CMYK Encoded Images Not Supported Previous to IE 9
Posted by William Diaz on June 1, 2012
This mysterious issue arrived to me as an email from another technician. His caller wanted to know why an HTML linked image was not displaying in her Outlook message, instead displaying the red X. When I received the message, I could see the image. The obvious difference was that I was using Outlook 2010 & IE 9. The user and the technician were Outlook 2003 and IE 8. The difference between the two is that Outlook 2003 uses IE to render html content, whereas Outlook 2010 uses Word. Figuring the message content was privy to Outlook 2010, I wanted to open the image link in IE9. To get the image link, view the email as raw html by right-clicking an empty portion of the message and selecting View Source. You might need to scroll a bit depending upon how much html formatting there is but you can locate the image link by looking for src= like in the example below or the image extension:
I pasted the URL into my browser, where it also displayed. Since it was occurring with both the tech and the user, the issue seemed specific to the browser. To verify the image was caching, I navigated to the user’s workstation using the UNC path to the Temporary Internet Files Folders1 and searched the recently accessed folder for the image name specified in the URL above. I could see it there, but when I opened it with an image viewer, only part of it displayed:
It seems the image is only partially downloaded, 91 kbs instead of the full 545 kbs2 (the initial kb downloaded is random). To further isolate the problem and remove the web site and any possible html or script issues, I saved the image I was able to download on my workstation, dropped it on an XP lab, right-clicked and opened with IE, where it still did not display. The evidence was conclusive, the problem was with the image and IE 8 (and earlier). Some image property wasn’t working with the IE image decoder. With that, some quick research alluded to an issue where IE, as well as earlier Firefox browsers, could not handle images that were encoded as CMYK. In short CMYK is optimized for printing and these are the colors you see when it is actually printed to paper whereas most computer imaging is RGB, which is optimized for monitor viewing. There is a good read on this issue here: CMYK images not displayed in Internet Explorer.
IE 9 and other modern browsers now support CMYK. A good way to test this is to convert any regular RGB image to CMYK. I used an online converter at http://www.rgb2cmyk.org/ to do this and the resulting CMYK could not be opened in IE 8.
Finally, a comparison of the CMYK encoded image and then the same image encoded as RGB (difference due to perhaps one less color channel?):
1 You wont be able to navigate to the subfolders here of the logged on user using the normal drive letter path in explorer unless you explicitly type in the folder path; to workaround this use the UNC path. In Win XP this would be \\ComputerNameOrIP\c$\Documents and Settings\username\Local Settings\Temporary Internet Files\Content.IE5\SomeRandomFldrName. In Windows Vista or 7 this would be \\ComputerNameOrIP\c$\Users\username\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\SomeRandomFldrName.
2 I don’t know if the size of this image is somewhat of a tell-tale sign that this is a CMYK encoded jpeg since it has an additional color channel. In regular monitor RGB encoding, this jpeg is less than a third of the size of the CMYK version, but then again compression-conversion technologies also apply. Outside of that, I can’t find another way of easily determining if an image is using CMYK encoding or RGB.