oops, don't treat RGB16 as sRGB in colourspace

we still had code to treat RGB16 inputs as sRGB even though we now have
a special set of RGB16 paths

vips copy 16bitRGB.tif x.jpg

now works
This commit is contained in:
John Cupitt 2014-05-08 14:13:40 +01:00
parent ff71a69827
commit f6f7d4eeed
2 changed files with 10 additions and 15 deletions

9
TODO
View File

@ -1,10 +1,9 @@
- try:
- try vips colourspace 16bit.tif 8bit.tif sRGB
vips vips
heh fix
to convert a RGB16 image to a sRGB one ... you get RGB in 8bit.tif, but it's
still 16-bit
- can we use postbuild elsewhere? look at use of "preclose" / "written", etc. - can we use postbuild elsewhere? look at use of "preclose" / "written", etc.

View File

@ -10,6 +10,8 @@
* - auto-decode RAD images * - auto-decode RAD images
* 3/2/14 * 3/2/14
* - add "source_space", overrides source space guess * - add "source_space", overrides source space guess
* 8/5/14
* - oops, don't treat RGB16 to sRGB
*/ */
/* /*
@ -366,14 +368,11 @@ vips_colourspace_issupported( const VipsImage *image )
VipsInterpretation interpretation; VipsInterpretation interpretation;
int i; int i;
/* Treat RGB and RGB16 as sRGB. If you want some other treatment, /* Treat RGB as sRGB. If you want some other treatment,
* you'll need to use the icc funcs. * you'll need to use the icc funcs.
*
* sRGB2XYZ can handle 8 and 16-bit images.
*/ */
interpretation = vips_image_guess_interpretation( image ); interpretation = vips_image_guess_interpretation( image );
if( interpretation == VIPS_INTERPRETATION_RGB || if( interpretation == VIPS_INTERPRETATION_RGB )
interpretation == VIPS_INTERPRETATION_RGB16 )
interpretation = VIPS_INTERPRETATION_sRGB; interpretation = VIPS_INTERPRETATION_sRGB;
for( i = 0; i < VIPS_NUMBER( vips_colour_routes ); i++ ) for( i = 0; i < VIPS_NUMBER( vips_colour_routes ); i++ )
@ -433,13 +432,10 @@ vips_colourspace_build( VipsObject *object )
else else
interpretation = vips_image_guess_interpretation( x ); interpretation = vips_image_guess_interpretation( x );
/* Treat RGB and RGB16 as sRGB. If you want some other treatment, /* Treat RGB as sRGB. If you want some other treatment,
* you'll need to use the icc funcs. * you'll need to use the icc funcs.
*
* sRGB2XYZ can handle 8 and 16-bit images.
*/ */
if( interpretation == VIPS_INTERPRETATION_RGB || if( interpretation == VIPS_INTERPRETATION_RGB )
interpretation == VIPS_INTERPRETATION_RGB16 )
interpretation = VIPS_INTERPRETATION_sRGB; interpretation = VIPS_INTERPRETATION_sRGB;
/* No conversion necessary. /* No conversion necessary.