Difference between revisions of "ICC profiles"

From ArchWiki
Jump to: navigation, search
(LPROF ICC Profiler)
m (File Transfer)
(37 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:Graphics and DTP (English)]]
+
[[Category:Graphics and desktop publishing]]
 +
{{Article summary start}}
 +
{{Article summary text|This article attempts to introduce available methods to install and load ICC profiles for the benefit of color management across desktop applications.}}
 +
{{Article summary end}}
  
 
= Introduction =
 
= Introduction =
Line 5: Line 8:
 
As it pertains to general desktop use, an ICC profile is a binary file which contains precise data regarding the color attributes of an input, or output device. <sup>[1]</sup> Single, or multiple profiles can be applied across a system and its devices to produce consistent and repeatable results for graphic and document editing and publishing. ICC profiles are typically calibrated with a [http://en.wikipedia.org/wiki/Tristimulus_colorimeter (tristimulus) colorimeter], or a spectrophotometer when absolute color accuracy is required.  
 
As it pertains to general desktop use, an ICC profile is a binary file which contains precise data regarding the color attributes of an input, or output device. <sup>[1]</sup> Single, or multiple profiles can be applied across a system and its devices to produce consistent and repeatable results for graphic and document editing and publishing. ICC profiles are typically calibrated with a [http://en.wikipedia.org/wiki/Tristimulus_colorimeter (tristimulus) colorimeter], or a spectrophotometer when absolute color accuracy is required.  
  
<sup>[1]</sup> <u>ICC Profile</u>. Wikipedia, The Free Encyclopedia. Wikimedia Foundation, Inc. 6 July 2010. Web. 13 Aug. 2010. <http://en.wikipedia.org/wiki/ICC_profile>.
+
<sup>[1]</sup> <u>ICC Profile</u>. Wikipedia, The Free Encyclopedia. Wikimedia Foundation, Inc. 23 Aug. 2010. Web. 6 July 2010. <http://en.wikipedia.org/wiki/ICC_profile>.
  
= ICC Profile Generation =
+
= Profile Generation =
  
 
==  File Transfer ==
 
==  File Transfer ==
Line 13: Line 16:
 
Profile generation on a Windows 7/Vista/XP, or [http://www.apple.com/macosx/ Mac OS X] system is one of the easiest and most widely recommended methods to obtain a ICC monitor profile. Since ICC color profiles are written to an open specification, they are compatible across operating systems. Transferring profiles from one OS to another can be used as a workaround for the lack of support for certain spectrophotometers, or colorimeters under [http://www.linux.org/ Linux]: one can simply produce a profile on a different OS and then use it in a Linux workflow. <sup>2</sup> Recommended colorimeters include the [http://www.xrite.com/product_overview.aspx?ID=788 X-Rite i1Display 2] and the [http://spyder.datacolor.com/product-mc-s3pro.php Spyder3 Pro]. Note that the system on which the profile is generated must host the exact same video card and monitor for which the profile is to be used. Once generation of an ICC profile, or a series of profiles is complete on a Windows 7/Vista/XP system, copy the file(s) from the default path:
 
Profile generation on a Windows 7/Vista/XP, or [http://www.apple.com/macosx/ Mac OS X] system is one of the easiest and most widely recommended methods to obtain a ICC monitor profile. Since ICC color profiles are written to an open specification, they are compatible across operating systems. Transferring profiles from one OS to another can be used as a workaround for the lack of support for certain spectrophotometers, or colorimeters under [http://www.linux.org/ Linux]: one can simply produce a profile on a different OS and then use it in a Linux workflow. <sup>2</sup> Recommended colorimeters include the [http://www.xrite.com/product_overview.aspx?ID=788 X-Rite i1Display 2] and the [http://spyder.datacolor.com/product-mc-s3pro.php Spyder3 Pro]. Note that the system on which the profile is generated must host the exact same video card and monitor for which the profile is to be used. Once generation of an ICC profile, or a series of profiles is complete on a Windows 7/Vista/XP system, copy the file(s) from the default path:
  
  C:\WINDOWS\system32\spool\drivers\color
+
  C:\WINDOWS\System32\spool\drivers\color
  
 
Mac OS X generally stores saved ICC profiles in one of two locations:
 
Mac OS X generally stores saved ICC profiles in one of two locations:
  
 
  /Library/ColorSync/Profiles
 
  /Library/ColorSync/Profiles
  /Users/<username>/Library/ColorSync/Profile
+
  /Users/USER_NAME/Library/ColorSync/Profile
  
Once the appropriate .icc files have been copied, install the device profiles to your desired system. Common installation device profiles directories on Linux include:
+
Once the appropriate {{Ic|.icc/.icm}} files have been copied, install the device profiles to your desired system. Common installation device profiles directories on Linux include:
  
 
  /usr/share/color/icc
 
  /usr/share/color/icc
 
  /usr/local/share/color/icc
 
  /usr/local/share/color/icc
  /home/<username>/.color/icc
+
  /home/USER_NAME/.color/icc
  
 
{{Note|Ensure that the calibrated contrast, brightness and RGB settings of the monitor do not change between the time of calibration and the loading of the ICC profile.|}}
 
{{Note|Ensure that the calibrated contrast, brightness and RGB settings of the monitor do not change between the time of calibration and the loading of the ICC profile.|}}
Line 32: Line 35:
 
== LPROF ICC Profiler ==
 
== LPROF ICC Profiler ==
  
[http://lprof.sourceforge.net/ LPROF] is an ICC profiler with a graphical user interface listed under [http://aur.archlinux.org/packages.php?ID=8251 lprof] in the Arch User Repository (AUR).  
+
[http://lprof.sourceforge.net/ LPROF] is an ICC profiler with a graphical user interface listed under [https://aur.archlinux.org/packages.php?ID=8251 lprof] in the [[AUR|Arch User Repository (AUR)]].  
  
=== Calibration ===
+
{{Note|The following walkthrough has been modified from the ArchWiki article <b>[[Using LPROF to Profile Monitors]]</b>.}}
 +
 
 +
=== Monitor Calibration ===
  
 
==== Contrast/Brightness ====
 
==== Contrast/Brightness ====
  
Adjust the lighting in the room to what you will be using when working. Even if your screen is coated with an anti-reflective coating, you should avoid light falling directly on it. Let your monitor warm up for at least an hour for the image to get stabilized. It is not uncommon for Linux to be kept up 24/7 without shutting down, so you may consider that unless you hate the noise and/or light. That way, monitor will be always on (and your unpaid electric bills will quickly block your doorway),
+
Adjust the lighting in the room to what you will be using when working. Even if your screen is coated with an anti-reflective coating, you should avoid light falling directly on it. Let your monitor warm up for at least an hour for the image to get stabilized. If your calibration device has an ambient diffuser, adjust your room brightness to reach the recommended target lux point.
  
# Set contrast (usually a control with half-black-half-white circle) to maximum. If you find you cannot tolerate the bright highlights, you may lower contrast a little. The higher the better.
+
# Set the monitor contrast to maximum, or 100%.  
# Next, display a pure black over entire screen. You can do this by creating a small black PNG image (all pixels have RGB = 0, 0, 0). Open it up in [http://gwenview.sourceforge.net/ Gwenview] (you can install it along with KDE) or any other picture viewer that is capable of displaying an image in full-screen mode without any controls.
+
# Next, display a pure black over entire screen by creating a small, black PNG image (all pixels have RGB = 0, 0, 0) and opening it up in a picture viewer that is capable of displaying an image in fullscreen mode without any controls.
# Reduce the vertical size of the picture (not the PNG image displayed by a picture viewer but the whole of what's displayed on the screen) to something around 60% or 70% of the full height. What is revealed above and below the picture is called a ''non-scanned area'', and since that are is not receiving any voltage, it is the blackest of black your monitor is capable of displaying.  
+
# Reduce the vertical size of the monitor screen (not the PNG image displayed by a picture viewer but the whole of what's displayed on the screen) to 60% to 70% of the full height. What is revealed above and below the picture is called a ''non-scanned area'', and since that area is not receiving any voltage, it is the blackest of black your monitor is capable of displaying.  
 
# Locate the brightness control (usually a sun, circle with rays projecting from it's edges) and lower the value until the black ''image'' matches the non-scanned area.
 
# Locate the brightness control (usually a sun, circle with rays projecting from it's edges) and lower the value until the black ''image'' matches the non-scanned area.
  
 
==== Color Temperature ====
 
==== Color Temperature ====
  
As we said in the introduction, setting color temperature must occur at noon. If you only have fixed factory default color temperature, you don't really need to wait for the sunny day to come. Just set it to 6500K.
+
As we said in the introduction, setting color temperature must occur at noon. If you only have fixed factory default color temperature, you do not really need to wait for the sunny day to come. Just set it to 6500K.
  
 
Place your monitor so that you can see outside the window ''and'' your screen at the same time. For this step, you also need to create a white square image (RGB = 255, 255, 255), roughly 10 by 10 centimeters (4 by 3 inches). Using the same Gwenview technique as with brightness/contrast, display the white square on a pure black background.
 
Place your monitor so that you can see outside the window ''and'' your screen at the same time. For this step, you also need to create a white square image (RGB = 255, 255, 255), roughly 10 by 10 centimeters (4 by 3 inches). Using the same Gwenview technique as with brightness/contrast, display the white square on a pure black background.
Line 78: Line 83:
 
After you are all done, click on the '...' button next to ''Output Profile File'' box. Enter the name of your profile: ''somemonitor.icc''. Click ''Create Profile'' button, and you are done.
 
After you are all done, click on the '...' button next to ''Output Profile File'' box. Enter the name of your profile: ''somemonitor.icc''. Click ''Create Profile'' button, and you are done.
  
* Review the ArchWiki article [http://lprof.sourceforge.net/help/lprof-help.html Using LPROF to Profile Monitors] for details on how to profile monitors.
+
=== Additional Resources ===
 +
 
 +
* Review the ArchWiki article [[Using LPROF to Profile Monitors]] for additional details on how to profile monitors.
 
* Review the official [http://lprof.sourceforge.net/help/lprof-help.html LPROF Main Help Window] for details on how to profile additional devices, including printers and scanners.
 
* Review the official [http://lprof.sourceforge.net/help/lprof-help.html LPROF Main Help Window] for details on how to profile additional devices, including printers and scanners.
  
 
== Argyll CMS ==
 
== Argyll CMS ==
  
The [http://www.argyllcms.com/ Argyll Color Management System] is a complete suite of command-line profile creation and loading tools listed under [http://aur.archlinux.org/packages.php?ID=11453 argyllcms] in the Arch User Repository (AUR).  
+
The [http://www.argyllcms.com/ Argyll Color Management System] is a complete suite of command-line profile creation and loading tools listed under [https://aur.archlinux.org/packages.php?ID=11453 argyllcms] in the Arch User Repository (AUR).  
  
 
* Review the official [http://www.argyllcms.com/doc/ArgyllDoc.html Argyll CMS documentation] for details on how to profile selected devices.
 
* Review the official [http://www.argyllcms.com/doc/ArgyllDoc.html Argyll CMS documentation] for details on how to profile selected devices.
 +
 +
== ThinkPad ==
 +
 +
See [http://www.thinkwiki.org/wiki/Colour_profile color profiles] for IBM/Lenovo [[Wikipedia:ThinkPad|ThinkPad]] notebook [http://www-307.ibm.com/pc/support/site.wss/migr-62923.html monitor profile] ([http://www-307.ibm.com/pc/support/site.wss/migr-44320.html generic]) support.
  
 
= Loading ICC Profiles =
 
= Loading ICC Profiles =
 +
 +
Make sure you use only one ICC loader - either xcalib, dispwin, dispcalGUI-apply-profiles or others, otherwise you easily end up with uncontrolled environment. (The most recently run loader set the calibration, and the earlier loaded calibration is overwritten.)
 +
 +
Before using a particular ICC loader, you should understand that some tools set only the calibration curves (e.g. xcalib), other tools set only the display profile to X.org _ICC_PROFILE atom (e.g. xicc) and other tools do both tasks at once (e.g. dispwin, dispcalGUI-apply-profiles).
 +
 
== xcalib ==
 
== xcalib ==
  
* [http://xcalib.sourceforge.net/ xcalib] is a lightweight monitor calibration loader which can load an ICC monitor profile to be shared across desktop applications. [http://aur.archlinux.org/packages.php?ID=10969 xcalib] is part of the [[AUR|Arch User Repository (AUR)]]
+
* [http://xcalib.sourceforge.net/ xcalib] is a lightweight monitor calibration loader which can load an ICC monitor profile to be shared across desktop applications. [https://aur.archlinux.org/packages.php?ID=10969 xcalib] is part of the Arch User Repository (AUR).
  
 
=== Xinitrc Example ===
 
=== Xinitrc Example ===
  
Load profile {{Filename|P221W-Native.icc}} in <tt>/usr/share/color/icc</tt> on display host:0 when X server starts
+
Load profile {{ic|P221W-sRGB.icc}} in {{Ic|/usr/share/color/icc}} on display host:0 when X server starts
 
<pre>#!/bin/bash
 
<pre>#!/bin/bash
  
 
/usr/bin/xcalib -d :0 /usr/share/color/icc/P221W-sRGB.icc</pre>
 
/usr/bin/xcalib -d :0 /usr/share/color/icc/P221W-sRGB.icc</pre>
  
=== JWM {{filename|<StartupCommand>}} Example ===
+
=== JWM {{ic|<StartupCommand>}} Example ===
  
Load profile {{Filename|P221W-Native.icc}} in <tt>/usr/local/share/color/icc</tt> on display host:0 when JWM starts
+
Load profile {{ic|P221W-Native.icc}} in {{Ic|/usr/local/share/color/icc}} on display host:0 when JWM starts
   {{filename|<StartupCommand>}}xcalib -d :0 /usr/local/share/color/icc/P221W-sRGB.icc{{filename|</StartupCommand>}}
+
   {{ic|<StartupCommand>}}xcalib -d :0 /usr/local/share/color/icc/P221W-Native.icc{{ic|</StartupCommand>}}
  
 
== dispwin ==
 
== dispwin ==
* [http://www.argyllcms.com/doc/dispwin.html dispwin] is a part of [http://aur.archlinux.org/packages.php?ID=11453 argyllcms] in the Arch User Repository (AUR).
+
* [http://www.argyllcms.com/doc/dispwin.html dispwin] is a part of [https://aur.archlinux.org/packages.php?ID=11453 argyllcms] in the Arch User Repository (AUR).
  
 
=== Xinitrc Example ===
 
=== Xinitrc Example ===
  
Load profile {{Filename|906w-Native.icc}} in <tt>/home/arch/.color/icc</tt> on display 0 when X server starts
+
Load profile {{ic|906w-6500K.icc}} in {{Ic|/home/arch/.color/icc}} on display 0 when X server starts
 
<pre>#!/bin/bash
 
<pre>#!/bin/bash
  
/usr/bin/dispwin -d0 /home/arch/.color/icc/906w-Native.icc</pre>
+
/usr/bin/dispwin -d0 /home/arch/.color/icc/906w-6500K.icc</pre>
  
=== JWM {{filename|<StartupCommand>}} Example ===
+
=== JWM {{ic|<StartupCommand>}} Example ===
  
Load Argyll calibration file {{Filename|906w-Native.cal}} in <tt>/usr/local/share/color/icc</tt> on display 1 when JWM starts
+
Load Argyll calibration file {{ic|906w-7000K.cal}} in {{Ic|/usr/local/share/color/icc}} on display 1 when JWM starts
   {{filename|<StartupCommand>}}dispwin -d1 /usr/local/share/color/icc/906w-Native.cal{{filename|</StartupCommand>}}
+
   {{ic|<StartupCommand>}}dispwin -d1 /usr/local/share/color/icc/906w-7000K.cal{{ic|</StartupCommand>}}
  
 
= Additional Resources =
 
= Additional Resources =
 
* [http://en.wikipedia.org/wiki/Linux_color_management Linux Color Management] - Wikipedia
 
* [http://en.wikipedia.org/wiki/Linux_color_management Linux Color Management] - Wikipedia
 
* [http://www.argyllcms.com/ Argyll Color Management System] - Official Site
 
* [http://www.argyllcms.com/ Argyll Color Management System] - Official Site

Revision as of 23:05, 18 August 2012

Summary help replacing me
This article attempts to introduce available methods to install and load ICC profiles for the benefit of color management across desktop applications.

Introduction

As it pertains to general desktop use, an ICC profile is a binary file which contains precise data regarding the color attributes of an input, or output device. [1] Single, or multiple profiles can be applied across a system and its devices to produce consistent and repeatable results for graphic and document editing and publishing. ICC profiles are typically calibrated with a (tristimulus) colorimeter, or a spectrophotometer when absolute color accuracy is required.

[1] ICC Profile. Wikipedia, The Free Encyclopedia. Wikimedia Foundation, Inc. 23 Aug. 2010. Web. 6 July 2010. <http://en.wikipedia.org/wiki/ICC_profile>.

Profile Generation

File Transfer

Profile generation on a Windows 7/Vista/XP, or Mac OS X system is one of the easiest and most widely recommended methods to obtain a ICC monitor profile. Since ICC color profiles are written to an open specification, they are compatible across operating systems. Transferring profiles from one OS to another can be used as a workaround for the lack of support for certain spectrophotometers, or colorimeters under Linux: one can simply produce a profile on a different OS and then use it in a Linux workflow. 2 Recommended colorimeters include the X-Rite i1Display 2 and the Spyder3 Pro. Note that the system on which the profile is generated must host the exact same video card and monitor for which the profile is to be used. Once generation of an ICC profile, or a series of profiles is complete on a Windows 7/Vista/XP system, copy the file(s) from the default path:

C:\WINDOWS\System32\spool\drivers\color

Mac OS X generally stores saved ICC profiles in one of two locations:

/Library/ColorSync/Profiles
/Users/USER_NAME/Library/ColorSync/Profile

Once the appropriate .icc/.icm files have been copied, install the device profiles to your desired system. Common installation device profiles directories on Linux include:

/usr/share/color/icc
/usr/local/share/color/icc
/home/USER_NAME/.color/icc
Note: Ensure that the calibrated contrast, brightness and RGB settings of the monitor do not change between the time of calibration and the loading of the ICC profile.

2 Linux Color Management. Wikipedia, The Free Encyclopedia. Wikimedia Foundation, Inc. 23 Aug. 2010. Web. 22 Aug. 2010. <http://en.wikipedia.org/wiki/Linux_color_management>

LPROF ICC Profiler

LPROF is an ICC profiler with a graphical user interface listed under lprof in the Arch User Repository (AUR).

Note: The following walkthrough has been modified from the ArchWiki article Using LPROF to Profile Monitors.

Monitor Calibration

Contrast/Brightness

Adjust the lighting in the room to what you will be using when working. Even if your screen is coated with an anti-reflective coating, you should avoid light falling directly on it. Let your monitor warm up for at least an hour for the image to get stabilized. If your calibration device has an ambient diffuser, adjust your room brightness to reach the recommended target lux point.

  1. Set the monitor contrast to maximum, or 100%.
  2. Next, display a pure black over entire screen by creating a small, black PNG image (all pixels have RGB = 0, 0, 0) and opening it up in a picture viewer that is capable of displaying an image in fullscreen mode without any controls.
  3. Reduce the vertical size of the monitor screen (not the PNG image displayed by a picture viewer but the whole of what's displayed on the screen) to 60% to 70% of the full height. What is revealed above and below the picture is called a non-scanned area, and since that area is not receiving any voltage, it is the blackest of black your monitor is capable of displaying.
  4. Locate the brightness control (usually a sun, circle with rays projecting from it's edges) and lower the value until the black image matches the non-scanned area.

Color Temperature

As we said in the introduction, setting color temperature must occur at noon. If you only have fixed factory default color temperature, you do not really need to wait for the sunny day to come. Just set it to 6500K.

Place your monitor so that you can see outside the window and your screen at the same time. For this step, you also need to create a white square image (RGB = 255, 255, 255), roughly 10 by 10 centimeters (4 by 3 inches). Using the same Gwenview technique as with brightness/contrast, display the white square on a pure black background.

  1. First, prepare your eyes by staring at the outside world for a while. Let them adjust to the daylight viewing condition for a few minutes.
  2. Glance at the monitor, and the white square for a few second (it has to be short, because eyes will readjust quickly).
  3. If the square seems yellowish, you need higher color temperature, or if it has a blueish cast, the temperature needs to be lowered.
  4. Keep glancing, looking out the window, and adjusting the white temperature, until the square looks pure white

Take your time with the steps described above. It is essential to get it right.

Monitor Profiling

Start lprof. You will be presented by a fairly large window with multiple tabs on the right.

  1. Click on the Monitor Profiler tab. Then click on the large Enter monitor values >> button.
  2. White point should be set to 6500K (daylight).
  3. Primaries should be set to either SMPTE RP145-1994, or EBU Tech.3213-E or P22, or whatever appropriate values for your monitor. If you come across correct values for your monitor, enter those by selecting User Defined from the drop-down. If in doubt, you may use P22 for all monitors with Trinitron CRTs (in this case, Trinitron is not related to Sony Trinitron mointors and TVs), and SMPTE RP145-1994 for other CRTs.
  4. Click the Set Gamma and Black Point button.
  5. You will now see a full-screen view of two charts with some controls at the bottom.
  6. Uncheck the Link channels check-box and adjust individual Red, Green, and Blue gamma by either moving the slider left or right, or by entering and changing values in the three boxes to the left. The goal is to make the chart on the left (the smaller square one) flat. When you are satisfied with how it looks, check the Link channels check-box and adjust the gamma again.
  7. When you are done, click OK. Click OK again.

When you are finished entering monitor values, you might want to enter some information about the monitor. This is not mandatory, but it is always nice to know what profile is for what.

  1. Click Profile identification button.
  2. Fill in the data.
  3. Click OK to finish.

After you are all done, click on the '...' button next to Output Profile File box. Enter the name of your profile: somemonitor.icc. Click Create Profile button, and you are done.

Additional Resources

Argyll CMS

The Argyll Color Management System is a complete suite of command-line profile creation and loading tools listed under argyllcms in the Arch User Repository (AUR).

ThinkPad

See color profiles for IBM/Lenovo ThinkPad notebook monitor profile (generic) support.

Loading ICC Profiles

Make sure you use only one ICC loader - either xcalib, dispwin, dispcalGUI-apply-profiles or others, otherwise you easily end up with uncontrolled environment. (The most recently run loader set the calibration, and the earlier loaded calibration is overwritten.)

Before using a particular ICC loader, you should understand that some tools set only the calibration curves (e.g. xcalib), other tools set only the display profile to X.org _ICC_PROFILE atom (e.g. xicc) and other tools do both tasks at once (e.g. dispwin, dispcalGUI-apply-profiles).

xcalib

  • xcalib is a lightweight monitor calibration loader which can load an ICC monitor profile to be shared across desktop applications. xcalib is part of the Arch User Repository (AUR).

Xinitrc Example

Load profile P221W-sRGB.icc in /usr/share/color/icc on display host:0 when X server starts

#!/bin/bash

/usr/bin/xcalib -d :0 /usr/share/color/icc/P221W-sRGB.icc

JWM <StartupCommand> Example

Load profile P221W-Native.icc in /usr/local/share/color/icc on display host:0 when JWM starts

 <StartupCommand>xcalib -d :0 /usr/local/share/color/icc/P221W-Native.icc</StartupCommand>

dispwin

Xinitrc Example

Load profile 906w-6500K.icc in /home/arch/.color/icc on display 0 when X server starts

#!/bin/bash

/usr/bin/dispwin -d0 /home/arch/.color/icc/906w-6500K.icc

JWM <StartupCommand> Example

Load Argyll calibration file 906w-7000K.cal in /usr/local/share/color/icc on display 1 when JWM starts

 <StartupCommand>dispwin -d1 /usr/local/share/color/icc/906w-7000K.cal</StartupCommand>

Additional Resources