From Fedora Project Wiki

Revision as of 09:46, 12 February 2010 by Rhughes (talk | contribs) (add some test cases)


Color Management

Summary

GNOME Color Manager is a session framework that makes it easy to manage, install and generate color profiles in the GNOME desktop.

Owner

  • email: richard@hughsie.com

Current status

  • Targeted release: Fedora 42
  • Last updated: 2010-02-12
  • Percentage of completion: 92%


Detailed Description

This project has the following features:

  • Setting output gamma tables (with local brightness and adjustments) to any Xrandr output (falling back to the per-screen methods for drivers that do not yet support Xrandr 1.3) to make all windows look the 'correct' color.
  • Setting of settings at session start, and when monitors are hotplugged.
  • Easy install of vendor supplied ICC or ICM files, just by double clicking on the file.
  • Easy display calibration using an external calibration device, and scanner calibration using inexpensive color targets. For calibration, the ArgyllCMS package is required.
  • Integration X11 by setting the per-screen and per-output _ICC_PROFILE atom, which makes applications such as the GIMP use a color managed output.
  • Easy to use DBus interface for applications to query what ICC profiles should be used for a specific device or device type. This is session activated and is only started when it is needed, and quits after a small period of idleness.

Benefit to Fedora

Fedora, and Linux in general is severely lacking when it comes to using color management in key applications by default. OSX and Windows 7 clearly show by making color management easy for the end user, it can be integrated into their working pattern to great affect. By providing a way to manage and assign profiles in Fedora we can make it easy for creative people to see the same color they just scanned, and also then see the same color when the document is printed. Only by making this stuff easy to use we'll actually get people to achieve this.

Scope

  • Mainly isolated package
  • Minor changes in gnome-settings-daemon that are already upstream
  • Minor addition in shared-mime-info that are already upstream
  • Minor code changes in gtk+ that are already upstream

How To Test

Need to test:

Assigning profiles to display devices

Prerequisites: ICC profile for your monitor

  • rm -rf ~/.config/gnome-color-manager
  • rm -rf ~/.color
  • Ensure you have no color calibration devices plugged in
  • Open System->Preferences->Color Profiles
    1. Ensure UI appears and is finished loading in under 5 seconds
    2. Ensure all display devices appear
    3. Ensure all local scanner devices appear
    4. Ensure all printers configured with CUPS appear
    5. Ensure all locally attached cameras appear
  • Click on the _main_ desplay device
    1. Ensure all manufacturer, model and serial numbers appear (if they are wrong, the monitor is sending incorrect EDID data)
    2. Ensure 'None' is selected in the UI
    3. Ensure that 'Create profile for device' is greyed out
  • Click on 'Bluish Test'
    1. Ensure monitor goes bluish
  • Click on 'ADOBEGAMMA-Test'
    1. Ensure monitor goes pinkish
  • Close the window, and type xcalib -c into the console (monitor will go back to normal)
  • Type gcm-apply into a console
    1. Ensure monitor goes pink again
  • Open System->Preferences->Color Profiles
  • Drag and drop your monitor ICC file onto the dialog
    1. Ensure you can now select it in the monitor drop down
    2. Ensure it's visible in the Profiles tab.
    3. Ensure the new profile has some sane description text and the graphs look reasonable
    4. Ensure the UI text is easy to understand, and the tooltips make sense
    5. Ensure that toggling 'Apply display correction' sets (and unsets) your display profile

Deleting devices

Prerequisites: Removable device that can be color corrected

  • Plug in a webcam, scanner, second monitor, or some other removable device that appears in the device list
  • Assign it a profile
  • Remove the device
    1. Ensure the device is marked Disconnected and can be deleted
    2. Ensure the 'Create profile for device' button in greyed out

Changing defaults

  • Change the UI in the Defaults tab.
    1. Ensure the output of gcm-inspect --dump reflects the UI
    2. Ensure the UI does not 'block' for more than a second or so whilst the settings are applied

Creating display profiles

Prerequisites: Hardware calibration device (such as a Pantone Huey)

  • Remove calibration device, and click on the main display device
  • sudo rpm -e argyllcms
    1. Ensure 'Create profile for device' button in greyed out
  • Plug in color calibration device
    1. Ensure 'Create profile for device' button is sensitive
  • Click on the 'Create profile for device' button
  • Follow the prompts, and wait for the calibration result
    1. Ensure argyllcms is automatically installed
    2. Ensure that the new profile is set as the device default

Creating display profiles

Prerequisites: Color target (IT8 or similar)

  • sudo rpm -e argyllcms shared-color-targets
  • Click on a scanner or camera device
    1. Ensure 'Create profile for device' button is sensitive
  • Click on the 'Create profile for device' button
  • Follow the prompts, and wait for the calibration result
    1. Ensure argyllcms is automatically installed
    2. Ensure shared-color-targets is automatically installed
    3. Ensure that the new profile is set as the device default

Watching for changes

Prerequisites: more than one custom ICC file available

  • Open the ~/.color/icc direcory in you file broswer
  • Rename a file, delete it, or add new icc files
    1. Observe that the Color Profiles updates the ICC profiles installed at that time

User Experience

From a user experience point of view, they'll just be:

  • A new icon in preferences "Color Profiles"
  • The user can double click ICC and ICM profile to preview and install
  • The user can just insert color calibration hardware and calibrate with two clicks
  • More color-aware applications are automatically set up for color management

Dependencies

  • small patch to comps/kickstart bringing in the package by default
  • shared-color-profiles-0.1.1 (needs upstream release)

Optional dependencies (installed by PackageKit at run-time if required)

  • argyllcms
  • shared-color-targets

Contingency Plan

  • Remove the package from comps, and continue like we always have with no color manager.

Documentation

For more information, please see http://projects.gnome.org/gnome-color-manager/ and http://live.gnome.org/GnomeColorManager

Release Notes

  • Fedora now ships GNOME Color Manager by default, which allows end users to better manager their color workflow.

Comments and Discussion