[Openicc] XICC specification draft

Boudewijn Rempt boud at valdyas.org
Sat Jun 25 17:54:15 EST 2005

On Friday 24 June 2005 22:32, Craig Bradney wrote:
> On Friday 24 June 2005 22:00, Hubert Figuiere wrote:
> > Sven Neumann wrote:
> > > But
> > > I am sure we will come up with some code that deals with all of this
> > > and push it into GTK+ as gdk_screen_get_icc_profile().
> >
> > That would be a great as it would allow non X11 platform to implement it
> > and have color correction.
> Does anyone know if Qt supports the required X11 calls? From some small
> investigation by Craig Ringer and I, it doesnt look like it. So, for
> Scribus, we will be using pure X11 then it seems. Hmm.

I've already (with the help of Lubos Lunak) implemented this for krita as 

#ifdef QT_WS_X11

#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <lcms.h>


static KisProfileSP KisProfile::getScreenProfile (int screen)
#ifdef QT_WS_X11

	Display *dpy;
	Atom icc_atom, type;
	int format;
	long nitems;
	long bytes_after;
	unsigned char *str;
	int result;

	cmsHPROFILE *profile = NULL;

	static Atom icc_atom = XInternAtom( qt_xdisplay(), "_ICC_PROFILE", False );

	if  ( XGetWindowProperty ( qt_xdisplay(), qt_xrootwin( screen ), icc_atom, 0, 
INT_MAX, False, XA_CARDINAL, &type, &format, &nitems, &bytes_after, (unsigned 
char **)&str)) {
		if( nitems )
			profile = cmsOpenProfileFromMem(str, nitems);
		XFree (str);
		return new KisProfile(profile);
	} else {
		kdDebug() << "No profile, not correcting" << endl;
		return NULL;
	return NULL;

The one thing I haven't done is setting krita up to receive notification of 
changes in the display profile, and I haven't decided whether I want Krita to 
use this by default and enable the user to override using the app settings, 
or whether I will disable the display profile setting in Krita's settings if 
the atom is set.

Boudewijn Rempt 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/openicc/attachments/20050625/d58ad67e/attachment.pgp

More information about the openicc mailing list