[Openicc] Linux colormanagement recommendations

Jan-Peter Homann homann at colormanagement.de
Thu Dec 11 22:37:06 EST 2003


As an colormanagement consultant with focus on MacOS X, Adobe 
applications and proofing solutions, i´m still learning about LINUX.

I will try to make a first concept how I would wish color management 
implementation under LINUX.


GTK+/Gnome versus QT/KDE based applications
--------------------------------------
Both GTK+ and QT give programmers basic routines for displaying 
primitives like bitmaps, vector-elements and text on the monitor.
Both GTK+ and QT don´t support any form of color management with 
ICC-profiles.
If an programmer makes his own solution for using colormanagement in a 
QT based environment like the Scribus project, a GTK+ project like GIMP 
can not use the QT based solutions.
If color management is applied to GTK+ and QT based applications, they 
will use littleCMS.
So it make sense to place littleCMS in an OS-layer under GTK+ or QT, 
that both worlds can use color management.
In a next step there should be some recommendations, how the littleCMS 
can be used from QT and GTK+ based applications. For QT we have now with 
Scribus a reference implementation. For GTK+, I don´t know if there is 
something comparable.

Systemwide colorsettings and profile locations
----------------------------------------------
In color management, it is necessary to understand the difference 
between profiles for working colorspaces and device colorspaces.
Working colorspaces are describing a standard colorspace for the 
exchange of all kind documents. The most used working colorspace is sRGB 
  for RGB documents, or printing standard like SWOP for CMYK documents.

Device colorspaces are describing input and output devices like scanner, 
monitor or printer/paper combination.

A simple sRGB based colormanagement workflow defines, that all RGB-data 
is sRGB. In this case all input applications like scanning softwares are 
converting the data form scan-RGBto sRGB. For displaying at the monitor, 
the RGB-data is converted from sRGB to monitor RGB.
This transformtion should be done on the level of GTK+ or QT, that not 
every programmer itself has to implement colormanagement by himself.
At the output side, GIMP Print or a similar programm is converting the 
RGB from sRGB to the printer-colorspace.

Implementing the sRGB to monitor-RGB conversion in GTK+ and QT would be 
the biggest step to integrate colormanagement systemwide.
There should be a central location for profiles both for working 
colorspaces and device colorspaces.

The central colorsetting for this simple workflow would be called 
"sRGB-workflow".

If this work has been done, the next step would be the possibility to 
change the Profile for the workingspace to another profile like AdobeRGB 
, ROMM-RGB or ECI-RGB which are useful for digital imaging, because sRGB 
has in the field of cyan and blueish greens and for dark saturated 
colors a smaller gamut then a lot of printer spaces.

The central colorsetting would be called AdobeRGB-workflow.
An ideal scanning application or print application would automacticly 
change the profile for the working space, if this has been done in the 
central colorsettings.
During scanning or printing, the user should be able to see, what 
workingspace is actual used (sRGB, AdobeRGB etc...)

The need for colortransformations of files and documents
--------------------------------------------------------
There are several cases were color transformations of files or documents 
are needed. Typical is a RGB to CMYK conversion, when RGB files or 
documents are prepared for printing. Another Transformation is one 
between different RGB working spaces,
Such conversions should be implemented on systemlevel and not direct in 
the application.
So, if a programmer needs to convert TIFF, JEPG, SVG, PostScript or PDF 
from sRGB to CMYK or from AdobeRGB to sRGB, he just calls the 
system-routine.



Implementing a Softproof on Systemlevel
--------------------------------------
If an application based on GTK+ or QT is able to display sRGB-Data via 
ICC to monitor-RGB, it is just a function of the littleCMS to simulate a 
transformtion at the monitor.
In this case a user would work in sRGB and could simulate the 
colortransformtion to CMYK or another RGB-workingspace at the monitor.

This feature called "softproof" should be part of the central color 
settings.

For GIMP this would be first step to CMYK without the need to rewrite 
the whole application.


Integrating the CMYK colorspace at systemlevel
-----------------------------------------------
If there are modules for GTK+ and QT for matching different RGB- working 
spaces via ICC to the monitor-RGB, it is not a big step to match CMYK 
via ICC to the monitor.
So integrating CMYK as an alternate colorspace to RGB for primitives in 
GTK+ and QT should not be a big step.
Also a CMYK color selector should be available at systemlevel.

The colorsetting for the CMYK workingspace should be available on the 
same place where the RGB-workingspace is choosed.


Scribus / QT as reference implementation
------------------------------------------
As I actual understand, Scribus has already implented most of this 
features for QT based applications. So the next step would be to make 
some kind of libraries or modules for QT based applications, that other 
programmers can use this fuctionality for their own applications.

I would suggest 4 libraries or modules:
1) match RGB-data from sRGB or other profile to the monitor-RGB, use 
softproof of a colortransformation if you want
2) colortransform different fileformats via colormanagement
3) Display CMYK objects via ICC at the monitor
4) Define and manipulate CMYK objects

The littleCMS, the place for profiles and the central colorsettings for 
such libraries/modules should be implemented on a systemlevel, that both 
QT and GTK+ appplications can use it.

If some GTK+ programmers want to implement color management, they can 
use Scribus / QT as a blueprint


I hope some of my ideas are helpful.

:-) Jan-Peter


-- 

colormanagement.de ---------- fon/fax +49 30 611 075 18
Jan-Peter Homann ------------- mobile +49 171 54 70 358
Kastanienallee 71 ------- http://www.colormanagement.de
10435 Berlin --------- mailto:homann at colormanagement.de






More information about the openicc mailing list