(CMS) for other operating systems: to achieve the best possible color reproduction throughout an imaging workflow from its source (camera, video, scanner, etc.), through imaging software (CinePaint
, Digikam
, GIMP
, Krita
, Scribus
, etc.), and finally onto an output medium (monitor
, video projector
, printer
, etc.). In particular, color management attempts to support WYSIWYG
(What You See Is What You Get) on-screen previewing (soft-proofing) ability for color work such as retouching prior to printing. Note that in practice, best is determined according to some algorithm and may not correspond well to what a human eye would consider best.
Linux color management relies on the use of accurate International Color Consortium
(ICC) profiles describing the behavior of devices such as digital cameras, monitors or printers, and color-managed
applications
that are aware of these profiles. These applications perform gamut
conversions between device profiles and color space
s. Gamut conversions, based on accurate device profiles, are the essence of color management.
Historically, color management was not an initial design consideration of the X11 display system on which much of Linux graphics support rests, and thus color managed workflows have been somewhat more challenging to implement on Linux than under OS's such as Microsoft Windows
or Mac OS X
. This situation is now being progressively remedied, however it must be admitted that color management under Linux, while functional, has not yet acquired mature status. Although it is now possible to obtain a very consistent color management workflow under Linux, certain problems still remain:
- The absence of a central user control panel for color settings.
- Many hardware devices for color calibration lack drivers and proper supporting software on Linux.
- Some necessary software such as LUT loaders can seldom be found in the package repositories of even the major Linux distributions.
Since ICC color profiles are written to an open specification, they are compatible across OS's. Hence, a profile produced on a specific OS should work on any other OS given the availability of the necessary software to read it and perform the gamut conversions. This 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. Additionally, certain hardware, such as most printers and certain monitors, can be calibrated under another OS and then used in a fully color-managed workflow on Linux.
Requirements for a color-managed workflow
- Accurate device profiles obtained with source or output characterization software.
- Correctly loaded video card LUTs (or monitor profiles that do not require LUT adjustments).
- ICCInternational Color ConsortiumThe International Color Consortium was formed in 1993 by eight industry vendors in order to create a universal color management system that would function transparently across all operating systems and software packages....
-aware (color-managed) applications that are configured to use a correct monitor profile in their gamut conversions.
Software for input and output profiling
Two most popular Linux tools for device profiling are:- Argyll Color Management System (Argyll CMS) is a command line only collection of tools. Argyll CMS covers a wide range of needs from source or output characterization to monitor LUT loading and more. Argyll CMS is available as a package in UbuntuUbuntu (operating system)Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...
, DebianDebianDebian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...
testing, openSUSEOpenSUSEopenSUSE is a general purpose operating system built on top of the Linux kernel, developed by the community-supported openSUSE Project and sponsored by SUSE...
(Build Service) and FedoraFedora (operating system)Fedora is a RPM-based, general purpose collection of software, including an operating system based on the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat...
and as a generic x86 Linux binary installation from the web site, along with source code under the GPL. There is also one GUI which eases the calibration of LCD and CRT monitors with Argyll, called dispcalGUI. - LPROF (or LCMS Profiler) is a GUI tool that is able to produce profiles for cameras, scanners and monitors. LPROF was originally designed simply to demonstrate LittleCMSLittleCMSLittleCMS or LCMS is an open source color management system, released as a software library for use in other programs which will allow the use of International Color Consortium profiles. It is licenced under the MIT License Agreement....
(LCMS) capabilities, but in 2005, LPROF development has been resumed by a new team. It is the only GUI-based profiling tool under Linux today, and it is available as a package from several Linux distributions.
As with any other OS platform, calibration and profiling requires:
- to acquire through a source device (scanner, camera…) a color patch target that the profiling software will compare to the manufacturer-provided color values of the target.
- or for output (monitor, printer), reading with a specific device (spectrophotometer, colorimeterColorimeterFor articles on Colorimeter see:* Colorimeter * Tristimulus colorimeter...
or spectrocolorimeter) the value of color patches and comparing the measured color values against the values originally sent for output.
To produce a profile for a source device is usually simple with Argyll CMS or LPROF, provided the device is supported under Linux. Producing a profile for an output device can be more involved as not many spectrophotometers or colorimeters are currently supported under Linux.
General considerations
One of the critical pieces in any color managed workflow is the monitor. Because, at one step or another, handling and making color adaptation through imaging software is required for most images, the capability for the monitor to deliver colors as accurately as possible is important.Monitor calibration
on a computer
is done preferably with a colorimeter and software that supports it. In most cases, a monitor profile created by the calibration software (whether it relies on a hardware device or on user input) includes both an accurate description of monitor output and instructions to the video card to change the colors it displays. Video card lookup table (LUT) adjustments are usually required to help the display reach the white point
and gamma
desired by the user.
Monitor calibration is, in that respect, different from calibration of other devices. A monitor profile created by calibration software (as opposed to the profiles supplied by monitor manufacturers) usually includes instructions to the video card that are stored in a special "vcgt" tag of the profile.
Video card LUT adjustments need to be loaded for a monitor to match the description in the profile. Mac OS X
and Microsoft Windows 7 load LUT adjustments automatically, while Linux
and older versions of Microsoft Windows
require standalone LUT loaders. Although such loaders perform just as good a job when adjusting video card output as the operating system
would, their existence tends to confuse many people with regards to the function these loaders perform.
Device profiles
ICCprofiles are cross-platform
and can thus be created on other operating systems and used under Linux. Monitor profiles, however, require some additional attention. Since a monitor profile depends both on the monitor itself and on the video card, a monitor profile should only be used with the same monitor and video card with which it was created. The monitor settings should not be adjusted after creating the profile. In addition, since most calibration software use LUT adjustments during calibration, the corresponding LUTs must be loaded every time the X server
is started (e.g. with every graphical login).
For users of certain colorimeters such as Spyder 2 or Xrite DTP-94 and Xrite DTP-92 that come in Monaco OPTIX and ColorEyes bundles, there is an option for calibrating their monitors on Linux. For native Linux monitor calibration, they would need to install Argyll Color Management System. Argyll CMS is a set of command-line utilities. Its dispcal module will let you natively
calibrate a monitor under Linux.
To avoid using command-line utilities, or if a colorimeter is unsupported by Argyll CMS, a profile created under Windows or Mac OS X can be used under Linux. Alternately, soon-to-be-released (at time of writing) versions of LPROF include a graphical monitor profiler with colorimeter support. Monica is a small fltk-based utility to create and load simple RGB-Gamma Monitorprofiles using xgamma. Normally the profile has to be created on the same machine with the same monitor settings.
Display-channel lookup tables
There are two approaches to loading display channel LUTs:-
Create a profile that does not modify video card LUTs and thus does not require LUTs be loaded later on. Ideally, this approach would rely on DDC
Display Data ChannelThe Display Data Channel or DDC is a collection of digital communication protocols between a computer display and a graphics adapter that enables the display to communicate its supported display modes to the adapter and to enable the computer host to adjust monitor parameters, such as brightness...
-capable monitors—the internal monitor settings of which are set via calibration software. Unfortunately, monitors capable of making these adjustments through DDCDisplay Data ChannelThe Display Data Channel or DDC is a collection of digital communication protocols between a computer display and a graphics adapter that enables the display to communicate its supported display modes to the adapter and to enable the computer host to adjust monitor parameters, such as brightness...
are not common and are generally expensive. Moreover, there is presently no calibration software on Linux that can interact with a DDCDisplay Data ChannelThe Display Data Channel or DDC is a collection of digital communication protocols between a computer display and a graphics adapter that enables the display to communicate its supported display modes to the adapter and to enable the computer host to adjust monitor parameters, such as brightness...
monitor.For mainstream monitors, a couple of options exist. BasICColor software, which works with most colorimeters on the market, allows one to adjust display output via the monitor interface
Interface (computer science)In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...
, and then to choose a "Profile, do not calibrate" option. By doing this, one can create a profile that does not require video cardVideo cardA video card, Graphics Card, or Graphics adapter is an expansion card which generates output images to a display. Most video cards offer various functions such as accelerated rendering of 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or the ability to connect multiple monitors...
LUT adjustments.For EyeOne devices, EyeOne Match allows the user to calibrate to "Native" gamma and white point targets, which results in the LUT adjustment curves displayed after the calibration as a simple, linear
LinearIn mathematics, a linear map or function f is a function which satisfies the following two properties:* Additivity : f = f + f...
1:1 mapping (a straight line from corner to corner). Both BasICColor and EyeOne Match do not presently run under Linux but they are capable of creating a profile that does not require LUT adjustments. - Use an LUT loader to actually load the LUT adjustments contained within the profile prepared during calibration. According to the documentation, these loaders do not modify the video card LUT by itself, but achieve the same type of adjustment by modifying the X server gamma ramp. Loaders are available for Linux distributionLinux distributionA Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...
s that use X.orgX.OrgX.Org refers to several things related to the X Window System:* X.Org, the organisation in charge of X standards from 1999 * The X.Org Foundation, a community-based foundation which took over X stewardship in 2004...
or XFree86XFree86XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and is now available for many other operating systems and platforms. It is free and open source software under the XFree86 License version 1.1. It is developed by the...
—the two most popular X servers on Linux. Other X servers are not guaranteed to work with the currently available loaders. There are two LUT loaders available for Linux:- Xcalib is one such loader, and although it is a command-line utility, it is quite easy to use.
- dispwin is a part of Argyll CMS.
- If, for any reason, the LUT cannot be loaded, it is still recommended to go through the initial stages of calibration where a user is asked by calibration software to make some manual adjustments to the monitor, as this will often improve display linearity and also provide information on its colour temperature. This is especially recommended for CRT monitors.
Color-managed applications
In ICC-aware applications, it is important to make sure the correct profiles are assigned to devices, mainly to the monitor and the printer. Linux applications are currently unable to automatically detect display profiles, so the profiles must be applied manually in each program.Although there is no designated place to store device profiles on Linux,
/usr/share/color/icc/
has become a de factostandard, used by several applications.
Most applications running under WINE
have not been fully tested for color accuracy. While 8-bpp programs can have some color resolution difficulties due to depth conversion errors, colors in higher-depth applications should be accurate, as long as those programs perform their gamut conversions based on the same monitor profile as that used for loading the LUT. The corresponding LUT adjustments do need to be loaded though.
A list of Linux color-managed applications
- GIMPGIMPGIMP is a free software raster graphics editor. It is primarily employed as an image retouching and editing tool and is freely available in versions tailored for most popular operating systems including Microsoft Windows, Apple Mac OS X, and Linux.In addition to detailed image retouching and...
, the GNUGNUGNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
Image Manipulation Program (CMS is available in the 2.3 development version and later versions) - Firefox (since version 3, turned on by default since v3.5), a Web browser
- CinePaintCinePaintCinePaint is an open source computer program for painting and retouching bitmap frames of films. It is a fork of version 1.0.4 of the GNU Image Manipulation Program...
, a 16-bit-capable image editor - KritaKritaKrita is the digital painting and illustration software included based on the KDE Platform and Calligra Suite libraries. Designed as a digital painting and illustration suite, Krita is free software and distributed under GNU General Public License...
and Karbon14Karbon14Karbon14 is a vector graphics editor. It is a component of Calligra Suite, an integrated graphic art and office suite by KDE...
, an image editor and vector graphics editorVector graphics editorA vector graphics editor is a computer program that allows users to compose and edit vector graphics images interactively on a computer and save them in one of many popular vector graphics formats, such as EPS, PDF, WMF, SVG, or VML....
, respectively (parts of KOfficeKOfficeCalligra Suite is a graphic art and office suite by KDE created from KOffice in 2010. It is available for desktop PCs, tablet computers, and smartphones...
) - ScribusScribusScribus is a desktop publishing application, released under the GNU General Public License as free software. It is based on the free Qt toolkit, therefore native versions are available for Linux, Unix-like operating systems, Mac OS X, Microsoft Windows, and OS/2...
, page layoutPage layoutPage layout is the part of graphic design that deals in the arrangement and style treatment of elements on a page.- History and development :...
software (using Little CMS) - digiKamDigiKamdigiKam is an image organizer and editor using KDE Platform. It runs on most known desktop environments and window managers if the required libraries are installed. It supports all major image file formats, and can organize collections of photographs in directory-based albums, or dynamic albums by...
, a digital photo managementDigital asset managementDigital asset management consists of management tasks and decisions surrounding the ingestion, annotation, cataloguing, storage, retrieval and distribution of digital assets...
program for KDEKDEKDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...
(using Little CMS) - F-SpotF-SpotF-Spot is an image organizer, designed to provide personal photo management for the GNOME desktop environment. The name is a play on the words F-Stop and G-Spot.-Features:...
, a digital photo managementDigital asset managementDigital asset management consists of management tasks and decisions surrounding the ingestion, annotation, cataloguing, storage, retrieval and distribution of digital assets...
program for GNOMEGNOMEGNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software... - Bibble ProBibble (software)Bibble is a digital imaging program for multiple platforms by Bibble Labs, designed to assist photographers in post-production work and efficient optimization of images created in the Raw image format.- Bibble 5 :...
, a RAWRAW image formatA camera raw image file contains minimally processed data from the image sensor of either a digital camera, image scanner, or motion picture film scanner. Raw files are so named because they are not yet processed and therefore are not ready to be printed or edited with a bitmap graphics editor...
digital image converter - Pixel Studio Pro, an image editor (supports 8bit/16bit RGB, CMYK, Lab, 32bit HDR, and RAW files)
- LightZoneLightZoneLightZone is a digital photo editor software application from Light Crafts. Its main purpose is to handle the workflow when handling images in various RAW formats. It's comparable to Adobe Systems's Photoshop Lightroom.- History :...
, an image editor and RAW processor - UFRawUFRawUFRaw is an application which can read and manipulate photographs in raw image formats, as created by many digital cameras. UFRaw is available both as a stand-alone utility, as a GIMP and CinePaint plugin, and in F-Spot via the DevelopInUFRaw extension...
, a RAW converter and GIMPGIMPGIMP is a free software raster graphics editor. It is primarily employed as an image retouching and editing tool and is freely available in versions tailored for most popular operating systems including Microsoft Windows, Apple Mac OS X, and Linux.In addition to detailed image retouching and...
plugin - RawTherapee, a RAW converter (supports 8-bit/16-bit RGB)
- PhotoPrint, a utility designed to assist in the process of printing digital photographs (prints with GutenPrint)
- GQviewGQViewGQview is a free software image viewer created by John Ellis using the GTK+ toolkit, designed to run on the X Window System. For MS Windows, an unofficial port is also available....
, an image viewer and photo organizer - Geeqie, an image viewer and photo organizer
- XSane, scanning frontend for Scanner Access Now EasyScanner Access Now EasyScanner Access Now Easy is an application programming interface that provides standardized access to any raster image scanner hardware ....
(CMS support since XSane-0.992/0.993) - LPROF, ICCv2-compliant Hardware Color Profiler for cameras, scanners and monitors
- xcalib - xcalib is a tiny monitor calibration loader for XFree86 (or X.Org) and MS-Windows
- InkscapeInkscapeInkscape is a free software vector graphics editor, licensed under the GNU General Public License. Its goal is to implement full support for the Scalable Vector Graphics 1.1 standard....
, a user-friendly, standards-compliant vector graphics editorVector graphics editorA vector graphics editor is a computer program that allows users to compose and edit vector graphics images interactively on a computer and save them in one of many popular vector graphics formats, such as EPS, PDF, WMF, SVG, or VML....
that uses SVG as its native file format (CMS is available as of version 0.46) - PhatchPhatchPhatch is a raster graphics editor used to batch process digital graphics and photographs. Phatch can be used on the desktop as a GUI program or on the server as a console program.- Operation :...
PHoto bATCH processor and exif renamer, which supports RGB(A), CMYK, YCbCr, I (32-bit integer pixels) and F (32-bit floating point pixels). It has a lot of features: scaling, cropping, rotating, shadows, rounded corners, reflection, perspective, ... - PixInsight, an image processing software platform specialized in astrophotography and other technical imaging fields.
External links
Argyll developer's point of view on how to use their software. A bit too technical Coordinated open source color management effort. Has a list of applications whose developers are taking part in the project- ICC Profiles In X Specification An overview of using monitor- and printer profiles in Scribus Home of ICC Examin and Oyranos. Also maintains a feed of latest news in Linux color management The most comprehensive list of general color management links; "not related to Linux" implementation
- Little CMS, a small-footprint, speed-optimized, free softwareFree softwareFree software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
color management engine - Color Management in Fedora
- GNOME Color Manager