[Development] Color Profile support on Qt

Boudewijn Rempt boud at valdyas.org
Tue Jul 17 11:18:26 CEST 2012


On Tuesday 17 July 2012 Jul, you wrote:
> What we presently have in a local branch is:
> 
> 1) Grabbing embedded color profiles from PNG and JPEG images (eventually support for more formats will come)

That would be excellent.

> 2) Non-Automatic conversion of color profiles at load. This is done through the constructor, where when loading an image you specify weather you preserve the color profile or you convert to Screen. The default behavior keeps the loaded image unchanged.

Hm... I would prefer to be able to specify a working space here -- not just the screen target. That makes it possible to use a linear rgb profile to convert to real linear rgb and actually be able to do stuff with the pixels.

> 
> What we don't have:
> 1) Exporting images with embedded color profiles
> 2) Modifying a color profile (access only to high level data such as description and colorspace)
> 
> The API looks as follows:
> 
> enum QColorSpace {RGB, CMYK, Invalid}
> 
> QColorProfile
> -------------
> QString description()
> QColorSpace colorspace()

For my applications, I would also want to be able to get the original profile data out of QColorProfile, btw. 
Especially when using the QScreen api.


> QImage
> -------------
> QColorProfile colorProfile()
> void setColorProfile(colorProfile)
> void convertToColorProfile(colorProfile)
> 
> QScreen
> -------------
> QColorProfile colorProfile()
> 
> Windows and Mac OS X have built in support for  color profile conversion. For linux X11 supports color profiles after loading several modules, otherwise uses sRGB. This is where the Oyranos project comes in.

On X11, you can use the X11 atom to check what the user has set -- that works for both oyranos and colord managed desktops.

> All the color profile conversion takes place using the littleCMS library which seems to be sort of standard for that job. Oyranos is also using it.

yes, lcms2 is pretty much the standard. And it's small and excellent.

> 
> ________________________________________
> From: development-bounces+alexandros.dermenakis=nokia.com at qt-project.org [development-bounces+alexandros.dermenakis=nokia.com at qt-project.org] on behalf of ext Boudewijn Rempt [boud at valdyas.org]
> Sent: Monday, July 16, 2012 9:15 PM
> To: development at qt-project.org
> Subject: Re: [Development] Color Profile support on Qt
> 
> On Monday 16 July 2012 Jul, Olivier Goffart wrote:
> > All QPainter operations (at least in the raster engine) assume a linear color
> > space. That means that the color conversion need to hapen last, right before
> > being shown to the screen. After all kind of blending operations or anything
> > done with QPainter.  (That means it could even been done in the platform
> > plugin)
> 
> Are you really sure about that? It's extremely unlikely that one encounters a linear light rgb png file in the wild, for instance, most assume sRGB. Unmanaged RGB isn't automatically linear, either -- it most likely is just a mess.
> 
> --
> Boudewijn Rempt
> http://www.valdyas.org, http://www.krita.org, http://www.boudewijnrempt.nl
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
> 


-- 
Boudewijn Rempt
http://www.valdyas.org, http://www.krita.org, http://www.boudewijnrempt.nl



More information about the Development mailing list