Monday 18 March 2019

arcgis desktop - Why do CMYK colours in ArcMap not match those in Adobe products?


I'm creating a map in ArcMap, based on a style guide which specifies colours in CMYK notation. So I've set the colours in ArcMap's color selector. The layer has no transparency set, and is the only layer drawn.


Why does the polygon below not match the colours of the equivalent object when viewed in the PDF style guide?


enter image description here


(ArcMap on the left, the PDF on the right. Note the CMYK numbers match, but the colours clearly don't)


When I examine the ArcMap colour in PhotoShop's colour picker, it shows as C:75 M:51 Y:55 K:29



Is there a setting somewhere which tells ArcMap which colour profile to use? (I'm out of my depth here as I don't fully understand this colour space stuff.....)



Answer



RGB and CMYK are both device dependent color models; that is, they represent colors via numbers and thus the appearance will vary with each device's interpretation of those numbers. The same values may appear different on different monitors or printers. For this reason there are various profiles even within the same color space.


All displays (ok, almost all) are RGB in nature and until relatively recently sRGB at that. This means that even if you are viewing a CMYK color space/value/etc., it has been converted to an RGB space/value to be shown on the screen. This is where the problem originates - a) not all software is color space aware, and b) even if it is it may not use the same profiles or rendering engine. ArcGIS doesn't currently support ICC profiles. It has its own built-in rendering engine to convert and display the different color spaces. Most Adobe products have vastly broader support for color. They can view and work in different color spaces, as well as work with various profiles. My version of Photoshop comes with 13 default profiles for CMYK alone, which are broad 'standards' as opposed to printer specific. Even though RGB can and does have many profiles (as above it is device dependent, not unique/constant), the sRGB space is so ubiquitous as a default and small that you're unlikely to notice much difference in how two softwares on the same machine/display render it. Two displays is another story.


A quick and easy way to observe this is if you have a digital camera that supports the AdobeRGB color space, or find an image that was taken in it. Take an image in that space, open in Windows Picture Viewer (which is not color aware) and open in Photoshop (which is). The WPV display should be washed out compared to the Photoshop version. If in Photoshop you then convert that AdobeRGB profile to the sRGB profile and save a copy of the image, you should see no difference between the two programs because sRGB is used by pretty much everything as a default, including WPV (and many web browsers as well). Here's one (among many) website with more info and example. In theory, two softwares that are color space/profile aware should display the same on the same monitor. But while you could change the Adobe settings to match Arc, there's no Arc profile to load and Arc doesn't allow you to change or use an external profile.


But just because something doesn't display the same on your software/device doesn't mean it's useless. That's basically what profiles do, is translate between devices. If you use the numbers given in the guide, they should get the result they expect when they open/view it, even if it looks different to you. In fact, exporting to pdf with the CMYK color space should show you what it should be, even if you'll never see that in Arc. This process is known as soft proofing (or hard proofing if you do an actual print) - basically making sure what you see on screen matches the final output, or in a case where you can't make those adjustments then you at least know what shifts to expect.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...