[cairo] 16-bit, HDR and colour

Kai-Uwe Behrmann ku.b at gmx.de
Wed Oct 3 05:27:40 PDT 2007

I'd like to render image content using cairo and do final colour 
conversions outside. How is this possible with cairo?

What I still was searching for, is a API in Cairo to set and get the image 
data types.
A buffer containing image data holds in most cases 16-bit ints per channel 
data for my use. Sometimes I'd need 16 and 32-bit floats. The idea is to 
render in cairo and then export a flattened buffer for further processing.
Colour space can be everything from sRGB over XYZ to Lab or YCbCr, with 
gamma, log or linear. Or should I convert to gamme 1.0 in advance?

The process would be like the following:

o create/load image
o create layers in cairo (image surfaces?)
o convert layers into rendering colour space using the surface buffers
o scale, rotate and position each layer
o cairo render
o convert surface buffer to display colours, possibly degrading bit depth
o show the buffer (X, Quartz, FLTK, PDF ...)

Does all surfaces support higher bit depths or only a few?

Should I use glitz for speed? I saw many gtk examples, but I did not get 
an idea how glitz brings a image to appear on a display region.

kind regards
Kai-Uwe Behrmann
developing for colour management 
www.behrmann.name + www.oyranos.org + www.cinepaint.org

More information about the cairo mailing list