7

My displays are color calibrated every other month or so with a hardware calibration tool. When I take a screen shot of a profile aware app, such as photoshop or lightroom or some web browsers, I don't want the screen shot to be adjusted for my monitor. Is there an easy way to do this besides my current approach:

  1. goto system preferences, display, color calibration
  2. change the profile to a generic monitor one
  3. start the color aware application (most seem to require a fresh startup to deal with the change)
  4. take the screen shot
  5. change my profile back
  6. restart the application

To address @barryj's assertion that color profile only matters if I'm using a camera to take a picture of the display. Here are two screen shots of the same image, one with the default color profile applied to the monitor, and one with my custom profile applied, just to show you how much of a difference it really makes.

side by side comparison

11
  • By 'take the screen shot' do you mean via software such as the built-in mac screenshot, or with a camera? Changing the profile will only have an effect if you are physically taking a picture of your monitor with a camera. – barryj May 6 '11 at 19:19
  • taking a screen shot with an app, either built in screenshot or skitch or similar. – cabbey May 6 '11 at 19:55
  • so changing the profile will have no effect on your screenshot. If you want to test - take a screenshot, then change the profile, and take another of the same screen image. Display the two results side by side - they'll be the same. – barryj May 6 '11 at 20:00
  • 2
    I stand corrected - that seems a bit crazy to me. Sorry to have contradicted you. – barryj May 6 '11 at 20:05
  • 1
    nope, that removes an embedded profile, these screen shots don't have one. – cabbey May 6 '11 at 20:17
3

The fact that the monitor's profile gets embedded is the only way the OS can preserve the appearance of colors in your photos. If you open a photo in Photoshop, take a screen capture (let's say for now via the built-in OS tool), then open this screen shot in Photoshop (and preserve the profile in the file) and compare both side to side, then you will see that the colors are visually similar even though the numbers for each pixel is different from one to the other.

This is all normal behavior. The colors you see on your screen on a calibrated and profiled monitor is actually raw values sent by the OS to the graphics card which then "assigns" the monitor profile to the values in real time so that the colors look like they should on the monitor. This is the simple explanation of course, there is much more going on in the background.

In the color management world there is only 2 options when you wish to play around with colors and profiles: assign or convert colors. When switching from one color space to another (i.e. from RGB to CMYK), your only option is convert since the laws of physics apply here. Within the same color space, if you assign profiles (or remove them, i.e. assigning nothing) you preserve the numbers while sacrificing (to various degrees) the appearance of the colors. When converting, you preserve the appearance of the colors while sacrificing the numbers in the file.

In your case, you need to convert the screen shot to a device-independent profile like Adobe RGB, or a device-dependent but easy to play with like sRGB. You can do that in Photoshop or Preview, as long as you do convert and not assign. Removing the profile is not really helping, since the numbers will have no meaning...

0

MacOS comes with a bunch of scripts for manipulating image color spaces - Embedding profiles, matching an image to a profile, or 'proofing' an image through one space into another.

It's likely that either Matching an image to a given profile, or proofing it from one assumed profile to another, will do what you want.

The scripts are found in /Library/Scripts/ColorSync, and if you use the Scripts menulet, you can access them from the menu bar.

They are of course a front-end for the sips command line tool.

0

My Mac's screenshot colors were off and I was terribly confused. I found this question and started investigating.

Summary

Use the display color profile sRGB IEC61966-2.1 when you want to take screenshots.

How I debugged it

I created an image using GIMP that had a section of yellow RGB(255, 255, 0) and inspected it with the "Digital Color Meter" MacOS app. I thought the Chrome browser's color picker was acting kind of strange so avoided it.

Color profile sRGB IEC61966-2.1

Notice 3 things:

  • On the left, the color information of the file is not present.
  • Top right, you see the color meter show RGB(255, 255, 0). This is the color value that will end up in your screenshot file.
  • On the bottom, the monitor profile is set to sRGB IEC61966-2.1. This was the only profile that I found gave me accurate screenshots.

Compare that with the readings when I activate other color profiles. The following Color LCD profile shows RGB(255, 253, 84) on the color meter. This was the default color profile, and although it might not be obvious on your screen, on mine it made the strong yellows look whiter, more like a banana. The worst part was that I just couldn't figure out which colors were the underlying real colors by analyzing screenshots.

Color LCD profile

The Generic RGB profile shows RGB(255, 255, 11) on the color meter.

Generic RGB profile

Answering the original question

I believe the answer is no, though you could develop a method. You can't have a color profile and take non-color-corrected screenshots. Looking at the MacOS APIs for capturing the screen:

There doesn't seem to be a parameter that would allow ignoring the display color correction. What you could do is implement a tool that:

  • Sets the color profile to sRGB IEC61966-2.1 by using CMSetSystemProfile
  • Takes a screenshot
  • Then sets the profile back to whatever color profile was active earlier.

Also, there might be other APIs I'm unaware of.

Here's my original test png:

colors-are-whack-no-profile.png

Image embedded color profiles complicate things

If I take a screenshot when the Color LCD profile is active, the Color LCD profile is saved in the screenshot metadata. So even when I open that screenshot later when the sRGB IEC61966-2.1 profile is active, it's only slightly color-distorted to RGB(254, 255, 0), but some apps disregard the attached color profile, like the website photopea.com which will cause dramatically incorrect colors RGB(255, 254, 84).

This investigation was really confusing. Hopefully folks that read this get slightly less confused.

screenshot with a profile in a non-color-profile app

-1

Try opening up the screenshot in "Preview" and then under the "Tools" menu select "Assign Profile..." and change the profile of the image that way.

If that works, you should be able to automate the process with either a folder action and AppleScript to Automator.

2
  • 1
    For the record, to make this work you seem to need a profile that is effectively the negative of your calibration... so if the monitor is weak in red and the calibration increases the red 10% you would need to assign a profile that does the opposite in order to get back to "un corrected". Creating such a profile appears to be quite difficult and time consuming. – cabbey Aug 29 '11 at 4:34
  • Assigning in this case is lost time. There is no objective way to be certain the numbers are interpreted correctly by the OS. Converting is the only solution. – Fred Nov 11 '11 at 17:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .