openexr read outputs scRGB

This commit is contained in:
John Cupitt 2016-09-17 10:08:13 +01:00
parent 3b3d4f401f
commit c88fa5ac73

View File

@ -12,6 +12,8 @@
* - gtkdoc
* 12/12/11
* - redo as a set of fns ready for wrapping in a new-style class
* 17/9/16
* - tag output as scRGB
*/
/*
@ -22,6 +24,7 @@
- attributes
- more of OpenEXR's pixel formats
- more than just RGBA channels
- turn alpha to vips 0 - 255 from exr 0 - 1
the openexr C API is very limited ... it seems RGBA half pixels is
all you can do
@ -30,6 +33,8 @@
there's no API to read the "chromaticities" attribute :-(
best redo with the C++ API now we support C++ operations
*/
/*
@ -202,15 +207,14 @@ read_header( Read *read, VipsImage *out )
{
/*
FIXME ... not really sRGB. I think EXR is actually linear (no
gamma). We ought to read the chromaticities from the header, put
through a 3x3 matrix and output as XYZ
FIXME ... not really scRGB, you should get the chromaticities
from the header and transform
*/
vips_image_init_fields( out,
read->window.width, read->window.height, 4,
VIPS_FORMAT_FLOAT,
VIPS_CODING_NONE, VIPS_INTERPRETATION_sRGB, 1.0, 1.0 );
VIPS_CODING_NONE, VIPS_INTERPRETATION_scRGB, 1.0, 1.0 );
if( read->tiles )
vips_image_pipelinev( out, VIPS_DEMAND_STYLE_SMALLTILE, NULL );
else