add source_space to vips_colourspace()
you can now specify the source colourspace, if you want
This commit is contained in:
parent
4167bdf0e6
commit
874511470f
@ -1,6 +1,7 @@
|
|||||||
21/1/14 started 7.39.0
|
21/1/14 started 7.39.0
|
||||||
- auto-decode for (almost) all operations
|
- auto-decode for (almost) all operations
|
||||||
- background render thread cleans up and quits neatly
|
- background render thread cleans up and quits neatly
|
||||||
|
- colourspace has a source_space option
|
||||||
|
|
||||||
22/1/14 started 7.38.2
|
22/1/14 started 7.38.2
|
||||||
- auto RAD decode for affine
|
- auto RAD decode for affine
|
||||||
|
3
TODO
3
TODO
@ -1,5 +1,4 @@
|
|||||||
|
- can we deprecate classes? eg. VipsFormat and VipsWrap7 should be hidden
|
||||||
- vips_colourspace() needs an option from_space param,?
|
|
||||||
|
|
||||||
- check_uncoded() left to do:
|
- check_uncoded() left to do:
|
||||||
|
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
* - add RGB16 as a source
|
* - add RGB16 as a source
|
||||||
* 19/1/14
|
* 19/1/14
|
||||||
* - auto-decode RAD images
|
* - auto-decode RAD images
|
||||||
|
* 3/2/14
|
||||||
|
* - add "source_space", overrides source space guess
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -388,6 +390,7 @@ typedef struct _VipsColourspace {
|
|||||||
VipsImage *in;
|
VipsImage *in;
|
||||||
VipsImage *out;
|
VipsImage *out;
|
||||||
VipsInterpretation space;
|
VipsInterpretation space;
|
||||||
|
VipsInterpretation source_space;
|
||||||
} VipsColourspace;
|
} VipsColourspace;
|
||||||
|
|
||||||
typedef VipsOperationClass VipsColourspaceClass;
|
typedef VipsOperationClass VipsColourspaceClass;
|
||||||
@ -408,7 +411,6 @@ vips_colourspace_build( VipsObject *object )
|
|||||||
|
|
||||||
VipsInterpretation interpretation;
|
VipsInterpretation interpretation;
|
||||||
|
|
||||||
|
|
||||||
/* Verify that all input args have been set.
|
/* Verify that all input args have been set.
|
||||||
*/
|
*/
|
||||||
if( VIPS_OBJECT_CLASS( vips_colourspace_parent_class )->
|
if( VIPS_OBJECT_CLASS( vips_colourspace_parent_class )->
|
||||||
@ -426,6 +428,9 @@ vips_colourspace_build( VipsObject *object )
|
|||||||
x = t[0];
|
x = t[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( vips_object_argument_isset( object, "source_space" ) )
|
||||||
|
interpretation = colourspace->source_space;
|
||||||
|
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 and RGB16 as sRGB. If you want some other treatment,
|
||||||
@ -506,11 +511,20 @@ vips_colourspace_class_init( VipsColourspaceClass *class )
|
|||||||
VIPS_ARGUMENT_REQUIRED_INPUT,
|
VIPS_ARGUMENT_REQUIRED_INPUT,
|
||||||
G_STRUCT_OFFSET( VipsColourspace, space ),
|
G_STRUCT_OFFSET( VipsColourspace, space ),
|
||||||
VIPS_TYPE_INTERPRETATION, VIPS_INTERPRETATION_sRGB );
|
VIPS_TYPE_INTERPRETATION, VIPS_INTERPRETATION_sRGB );
|
||||||
|
|
||||||
|
VIPS_ARG_ENUM( class, "source-space", 6,
|
||||||
|
_( "Source space" ),
|
||||||
|
_( "Source colour space" ),
|
||||||
|
VIPS_ARGUMENT_OPTIONAL_INPUT,
|
||||||
|
G_STRUCT_OFFSET( VipsColourspace, source_space ),
|
||||||
|
VIPS_TYPE_INTERPRETATION, VIPS_INTERPRETATION_sRGB );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
vips_colourspace_init( VipsColourspace *colourspace )
|
vips_colourspace_init( VipsColourspace *colourspace )
|
||||||
{
|
{
|
||||||
|
colourspace->source_space = VIPS_INTERPRETATION_sRGB;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -519,7 +533,12 @@ vips_colourspace_init( VipsColourspace *colourspace )
|
|||||||
* @out: output image
|
* @out: output image
|
||||||
* @space: convert to this colour space
|
* @space: convert to this colour space
|
||||||
*
|
*
|
||||||
* This operation looks at the interpretation field of @in and runs
|
* Optional arguments:
|
||||||
|
*
|
||||||
|
* @source_space: input colour space
|
||||||
|
*
|
||||||
|
* This operation looks at the interpretation field of @in (or uses
|
||||||
|
* @source_space, if set) and runs
|
||||||
* a set of colourspace conversion functions to move it to @space.
|
* a set of colourspace conversion functions to move it to @space.
|
||||||
*
|
*
|
||||||
* For example, given an image tagged as #VIPS_INTERPRETATION_YXY, running
|
* For example, given an image tagged as #VIPS_INTERPRETATION_YXY, running
|
||||||
|
Loading…
Reference in New Issue
Block a user