strip ICC profile on conversion in xyz2srgb
if we use the vips xys->srgb path (ie. not the lcms one) we must remove any ICC profile left over from import, otherwise we may have srgb pixels with a non-srgb profile
This commit is contained in:
parent
a818c64f09
commit
3b6bcef700
@ -1,5 +1,6 @@
|
|||||||
28/6/13 started 7.34.1
|
28/6/13 started 7.34.1
|
||||||
- fix morphological operators on non-uchar images
|
- fix morphological operators on non-uchar images
|
||||||
|
- remove any ICC profile when we use vips to go to srgb
|
||||||
|
|
||||||
7/6/13 started 7.34.0
|
7/6/13 started 7.34.0
|
||||||
- version bump
|
- version bump
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
*
|
*
|
||||||
* 11/12/12
|
* 11/12/12
|
||||||
* - from Yxy2XYZ.c
|
* - from Yxy2XYZ.c
|
||||||
|
* 1/7/13
|
||||||
|
* - remove any ICC profile
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -48,6 +50,21 @@ typedef VipsColourSpaceClass VipsXYZ2scRGBClass;
|
|||||||
|
|
||||||
G_DEFINE_TYPE( VipsXYZ2scRGB, vips_XYZ2scRGB, VIPS_TYPE_COLOUR_SPACE );
|
G_DEFINE_TYPE( VipsXYZ2scRGB, vips_XYZ2scRGB, VIPS_TYPE_COLOUR_SPACE );
|
||||||
|
|
||||||
|
static int
|
||||||
|
vips_XYZ2scRGB_build( VipsObject *object )
|
||||||
|
{
|
||||||
|
if( VIPS_OBJECT_CLASS( vips_XYZ2scRGB_parent_class )->build( object ) )
|
||||||
|
return( -1 );
|
||||||
|
|
||||||
|
/* We've converted to sRGB without a profile. We must remove any ICC
|
||||||
|
* profile left over from import or there will be a mismatch between
|
||||||
|
* pixel values and the attached profile.
|
||||||
|
*/
|
||||||
|
vips_image_remove( VIPS_COLOUR( object )->out, VIPS_META_ICC_NAME );
|
||||||
|
|
||||||
|
return( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
vips_XYZ2scRGB_line( VipsColour *colour, VipsPel *out, VipsPel **in, int width )
|
vips_XYZ2scRGB_line( VipsColour *colour, VipsPel *out, VipsPel **in, int width )
|
||||||
{
|
{
|
||||||
@ -83,6 +100,7 @@ vips_XYZ2scRGB_class_init( VipsXYZ2scRGBClass *class )
|
|||||||
|
|
||||||
object_class->nickname = "XYZ2scRGB";
|
object_class->nickname = "XYZ2scRGB";
|
||||||
object_class->description = _( "transform XYZ to scRGB" );
|
object_class->description = _( "transform XYZ to scRGB" );
|
||||||
|
object_class->build = vips_XYZ2scRGB_build;
|
||||||
|
|
||||||
colour_class->process_line = vips_XYZ2scRGB_line;
|
colour_class->process_line = vips_XYZ2scRGB_line;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user