General Concept

  • full featured color management (CM) system
  • relies on the cross platform ICC ISO standard
  • implements cross desktop OpenICC standards
  • toolkit independent
  • library with object oriented C API
    • supports Linux, BSD, osX, started win32
    • provide abstraction from platform specific conventions
    • interfacing native OS specific CMS’es
  • includes a set of command line tools
  • modular design
    • lightweight and portable core written in C with few dependencies
    • most dependencies reside in runtime switchable modules
    • installation can be customised (e.g. skipping X11 module for pure print servers)
  • easy high level interaction for CM configuration, device setup and colour conversion
  • front ends on top of Oyranos like KolorManager and Synnefo enable even nonexpert users to configure their devices
  • new BSD License


  • default editing/blending profile selection
  • assumed profiles for untagged colour data
  • rendering intent selection
  • behaviour for non matching or missed profiles
  • complete CM settings like in advanced graphics applications
    • CinePaint CM settings map to settings in Oyranos
    • ICC Examin uses Oyranos settings
    • settings are optional, apps decide what they want to support
    • hybrid approach possible like
      explicitly syncing internal settings with Oyranos
    • users can share CM options across supporting applications
      e.g. enabling proofing and selection of a proof profile.
      That can reduce repeating settings in each application.
  • clear concept of user owned and system owned settings
    • user versus system rights are much more naturally handled
    • administrators can provide useful machine specific defaults
    • human readable DB
  • policy / grouping for easy switching, export, import of default settings
    • country specific defaults
    • company specific defaults or
    • task specific defaults

Profile Handling

  • profile lookup
    • including support of platform specifics
  • profile installation
  • profile parsing
  • minor corrections like profile ID assignment
  • profile caching
  • partial profile writing (but no profiling like ArgyllCMS)
  • 2D profile graphing


  • colour conversion API
    • optional
    • apps can offload CM decision to Oyranos on demand
    • still fine controlled settings possible
    • supports proofing, effect profiles
    • arbitrary channel count
    • n-channel ICC profile conversions and viewing with lcms
    • various bit depths and floating point precission with lcms2
    • profile and transform caching for fast access
  • backend API for plugable CMMs (lcms, lcms2, GPU based are possible)
    • stand alone modules, without external requirements
    • these CMM’s are selectable through the colour conversion API
  • DAC based imaging for extension to HDR imaging and spectral imaging
    • state of the art, like in Gegl, Blender or other node based engines
    • 2D capable API
    • useful for adding tonemapping
  • CPU based multi monitor colour correction
    • needs the above imaging DAC, the monitor module and a CMM
    • works independent of window managers
    • used in some widgets in ICC Examin
  • traceable colour correction for easy debugging through users
    • unexpected results happen always, this is a way to track processing
    • convenient for end users
    • speeds up error search by using simple tools
    • no gdb needed
  • named colour support
    • used in ICC Examin
    • would be useful in KDE colour selectors
    • high precision colorimetry with native channels easily possible

Device Profile Assignment

  • automatic device profile selection
    • based on parsed hardware and ICC meta data
    • automatic profile selection according to a given device
  • Taxi support for remote distributed ICC profiles
    • online DB for ICC device profiles
    • dispcalGUI can upload to Taxi DB
    • selection and download of profiles from remote DB by Oyranos
    • spec is shared through OpenICC for more users
  • powerful backend API for device property modules
    • for device identification and
    • most complete tracking of colour related settings in drivers
    • abstracted from apps, which do not need to care about specifics
  • multi monitor support includes
    • XRandR like intel and nvidia/nouveau
    • ati drivers need more testing
    • on-the-fly fallback ICC profile generation from EDID
  • supports cameraRAW/LibRaw combo
    • allows to select a custom ICC profile for a given camera
    • on-the-fly fallback ICC profile generation from libraw/dcraw camera matrices
  • robust printer configuration concepts
    • planned support of per queue profiles in KM
    • libCmpx can be used to embed a device profile inside a PDF
      supports the PDF/X-3 specification

Toolkit Support

  • first prototype for window based colour correction inside a widget
    • used in ICC Examin (FLTK)
    • but needs more integration work and port to Qt/Gtk
    • support of libXcm (region and window based window communication)

Colour Data

  • freely licensed OpenICC default profile packages, including common Rgb, Cmyk and Lab/XYZ profiles are required
  • more special Gray and Lab profiles


Display Configuration Details

For Xorg colour management DDC information is detected through the X server. The Oyranos ICC profile is read or automatically generated from EDID and set to the X server by the first call into the Oyranos device ICC profile API, e.g. from the compiz colour server plugin or KolorServer. The embedded vcgt tag will be loaded by Xcalib into the video card if installed/supported. The compiz plugin or KolorServer+KWin can then instantly colour correct the desktop. Inkscape and Scribus will use the configured monitor profiles by using the ICC Profile in X spec.