diff --git a/ChangeLog b/ChangeLog index 911e47b0..b38f75d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -32,7 +32,7 @@ - added vips_value_set_blob_free() - "--size Nx" to vipsthumbnail was broken, thanks jrochkind - fix build with gcc 7 -- add vips_nearest() ... fill pixels with nearest colour +- add vips_fill_nearest() ... fill pixels with nearest colour 29/8/17 started 8.5.9 - make --fail stop jpeg read on any libjpeg warning, thanks @mceachen diff --git a/libvips/include/vips/enumtypes.h b/libvips/include/vips/enumtypes.h index 463b2b64..339f3d22 100644 --- a/libvips/include/vips/enumtypes.h +++ b/libvips/include/vips/enumtypes.h @@ -5,55 +5,11 @@ #define VIPS_ENUM_TYPES_H G_BEGIN_DECLS - -/* enumerations from "../../../libvips/include/vips/arithmetic.h" */ -GType vips_operation_math_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_OPERATION_MATH (vips_operation_math_get_type()) -GType vips_operation_math2_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_OPERATION_MATH2 (vips_operation_math2_get_type()) -GType vips_operation_round_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_OPERATION_ROUND (vips_operation_round_get_type()) -GType vips_operation_relational_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_OPERATION_RELATIONAL (vips_operation_relational_get_type()) -GType vips_operation_boolean_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_OPERATION_BOOLEAN (vips_operation_boolean_get_type()) -GType vips_operation_complex_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_OPERATION_COMPLEX (vips_operation_complex_get_type()) -GType vips_operation_complex2_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_OPERATION_COMPLEX2 (vips_operation_complex2_get_type()) -GType vips_operation_complexget_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_OPERATION_COMPLEXGET (vips_operation_complexget_get_type()) -/* enumerations from "../../../libvips/include/vips/basic.h" */ -GType vips_precision_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_PRECISION (vips_precision_get_type()) -/* enumerations from "../../../libvips/include/vips/colour.h" */ -GType vips_intent_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_INTENT (vips_intent_get_type()) -GType vips_pcs_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_PCS (vips_pcs_get_type()) -/* enumerations from "../../../libvips/include/vips/conversion.h" */ -GType vips_extend_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_EXTEND (vips_extend_get_type()) -GType vips_compass_direction_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_COMPASS_DIRECTION (vips_compass_direction_get_type()) -GType vips_direction_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_DIRECTION (vips_direction_get_type()) -GType vips_align_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_ALIGN (vips_align_get_type()) -GType vips_angle_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_ANGLE (vips_angle_get_type()) -GType vips_angle45_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_ANGLE45 (vips_angle45_get_type()) -GType vips_interesting_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_INTERESTING (vips_interesting_get_type()) -GType vips_blend_mode_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_BLEND_MODE (vips_blend_mode_get_type()) -/* enumerations from "../../../libvips/include/vips/convolution.h" */ -GType vips_combine_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_COMBINE (vips_combine_get_type()) -/* enumerations from "../../../libvips/include/vips/draw.h" */ -GType vips_combine_mode_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_COMBINE_MODE (vips_combine_mode_get_type()) +/* enumerations from "../../../libvips/include/vips/resample.h" */ +GType vips_kernel_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_KERNEL (vips_kernel_get_type()) +GType vips_size_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_SIZE (vips_size_get_type()) /* enumerations from "../../../libvips/include/vips/foreign.h" */ GType vips_foreign_flags_get_type (void) G_GNUC_CONST; #define VIPS_TYPE_FOREIGN_FLAGS (vips_foreign_flags_get_type()) @@ -75,6 +31,43 @@ GType vips_foreign_dz_depth_get_type (void) G_GNUC_CONST; #define VIPS_TYPE_FOREIGN_DZ_DEPTH (vips_foreign_dz_depth_get_type()) GType vips_foreign_dz_container_get_type (void) G_GNUC_CONST; #define VIPS_TYPE_FOREIGN_DZ_CONTAINER (vips_foreign_dz_container_get_type()) +/* enumerations from "../../../libvips/include/vips/arithmetic.h" */ +GType vips_operation_math_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_OPERATION_MATH (vips_operation_math_get_type()) +GType vips_operation_math2_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_OPERATION_MATH2 (vips_operation_math2_get_type()) +GType vips_operation_round_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_OPERATION_ROUND (vips_operation_round_get_type()) +GType vips_operation_relational_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_OPERATION_RELATIONAL (vips_operation_relational_get_type()) +GType vips_operation_boolean_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_OPERATION_BOOLEAN (vips_operation_boolean_get_type()) +GType vips_operation_complex_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_OPERATION_COMPLEX (vips_operation_complex_get_type()) +GType vips_operation_complex2_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_OPERATION_COMPLEX2 (vips_operation_complex2_get_type()) +GType vips_operation_complexget_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_OPERATION_COMPLEXGET (vips_operation_complexget_get_type()) +/* enumerations from "../../../libvips/include/vips/conversion.h" */ +GType vips_extend_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_EXTEND (vips_extend_get_type()) +GType vips_compass_direction_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_COMPASS_DIRECTION (vips_compass_direction_get_type()) +GType vips_direction_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_DIRECTION (vips_direction_get_type()) +GType vips_align_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_ALIGN (vips_align_get_type()) +GType vips_angle_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_ANGLE (vips_angle_get_type()) +GType vips_angle45_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_ANGLE45 (vips_angle45_get_type()) +GType vips_interesting_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_INTERESTING (vips_interesting_get_type()) +GType vips_blend_mode_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_BLEND_MODE (vips_blend_mode_get_type()) +/* enumerations from "../../../libvips/include/vips/util.h" */ +GType vips_token_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_TOKEN (vips_token_get_type()) /* enumerations from "../../../libvips/include/vips/image.h" */ GType vips_demand_style_get_type (void) G_GNUC_CONST; #define VIPS_TYPE_DEMAND_STYLE (vips_demand_style_get_type()) @@ -88,23 +81,29 @@ GType vips_coding_get_type (void) G_GNUC_CONST; #define VIPS_TYPE_CODING (vips_coding_get_type()) GType vips_access_get_type (void) G_GNUC_CONST; #define VIPS_TYPE_ACCESS (vips_access_get_type()) -/* enumerations from "../../../libvips/include/vips/morphology.h" */ -GType vips_operation_morphology_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_OPERATION_MORPHOLOGY (vips_operation_morphology_get_type()) -/* enumerations from "../../../libvips/include/vips/object.h" */ -GType vips_argument_flags_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_ARGUMENT_FLAGS (vips_argument_flags_get_type()) +/* enumerations from "../../../libvips/include/vips/colour.h" */ +GType vips_intent_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_INTENT (vips_intent_get_type()) +GType vips_pcs_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_PCS (vips_pcs_get_type()) /* enumerations from "../../../libvips/include/vips/operation.h" */ GType vips_operation_flags_get_type (void) G_GNUC_CONST; #define VIPS_TYPE_OPERATION_FLAGS (vips_operation_flags_get_type()) -/* enumerations from "../../../libvips/include/vips/resample.h" */ -GType vips_kernel_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_KERNEL (vips_kernel_get_type()) -GType vips_size_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_SIZE (vips_size_get_type()) -/* enumerations from "../../../libvips/include/vips/util.h" */ -GType vips_token_get_type (void) G_GNUC_CONST; -#define VIPS_TYPE_TOKEN (vips_token_get_type()) +/* enumerations from "../../../libvips/include/vips/convolution.h" */ +GType vips_combine_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_COMBINE (vips_combine_get_type()) +/* enumerations from "../../../libvips/include/vips/morphology.h" */ +GType vips_operation_morphology_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_OPERATION_MORPHOLOGY (vips_operation_morphology_get_type()) +/* enumerations from "../../../libvips/include/vips/draw.h" */ +GType vips_combine_mode_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_COMBINE_MODE (vips_combine_mode_get_type()) +/* enumerations from "../../../libvips/include/vips/basic.h" */ +GType vips_precision_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_PRECISION (vips_precision_get_type()) +/* enumerations from "../../../libvips/include/vips/object.h" */ +GType vips_argument_flags_get_type (void) G_GNUC_CONST; +#define VIPS_TYPE_ARGUMENT_FLAGS (vips_argument_flags_get_type()) G_END_DECLS #endif /*VIPS_ENUM_TYPES_H*/ diff --git a/libvips/include/vips/morphology.h b/libvips/include/vips/morphology.h index c7012dc1..70b2d5ee 100644 --- a/libvips/include/vips/morphology.h +++ b/libvips/include/vips/morphology.h @@ -57,7 +57,7 @@ int vips_countlines( VipsImage *in, double *nolines, __attribute__((sentinel)); int vips_labelregions( VipsImage *in, VipsImage **mask, ... ) __attribute__((sentinel)); -int vips_nearest( VipsImage *in, VipsImage **out, ... ) +int vips_fill_nearest( VipsImage *in, VipsImage **out, ... ) __attribute__((sentinel)); #ifdef __cplusplus diff --git a/libvips/iofuncs/enumtypes.c b/libvips/iofuncs/enumtypes.c index 6e83c5fa..a10ddd90 100644 --- a/libvips/iofuncs/enumtypes.c +++ b/libvips/iofuncs/enumtypes.c @@ -4,450 +4,44 @@ /* auto-generated enums for vips introspection */ #include -/* enumerations from "../../libvips/include/vips/arithmetic.h" */ +/* enumerations from "../../libvips/include/vips/resample.h" */ GType -vips_operation_math_get_type( void ) +vips_kernel_get_type( void ) { static GType etype = 0; if( etype == 0 ) { static const GEnumValue values[] = { - {VIPS_OPERATION_MATH_SIN, "VIPS_OPERATION_MATH_SIN", "sin"}, - {VIPS_OPERATION_MATH_COS, "VIPS_OPERATION_MATH_COS", "cos"}, - {VIPS_OPERATION_MATH_TAN, "VIPS_OPERATION_MATH_TAN", "tan"}, - {VIPS_OPERATION_MATH_ASIN, "VIPS_OPERATION_MATH_ASIN", "asin"}, - {VIPS_OPERATION_MATH_ACOS, "VIPS_OPERATION_MATH_ACOS", "acos"}, - {VIPS_OPERATION_MATH_ATAN, "VIPS_OPERATION_MATH_ATAN", "atan"}, - {VIPS_OPERATION_MATH_LOG, "VIPS_OPERATION_MATH_LOG", "log"}, - {VIPS_OPERATION_MATH_LOG10, "VIPS_OPERATION_MATH_LOG10", "log10"}, - {VIPS_OPERATION_MATH_EXP, "VIPS_OPERATION_MATH_EXP", "exp"}, - {VIPS_OPERATION_MATH_EXP10, "VIPS_OPERATION_MATH_EXP10", "exp10"}, - {VIPS_OPERATION_MATH_LAST, "VIPS_OPERATION_MATH_LAST", "last"}, + {VIPS_KERNEL_NEAREST, "VIPS_KERNEL_NEAREST", "nearest"}, + {VIPS_KERNEL_LINEAR, "VIPS_KERNEL_LINEAR", "linear"}, + {VIPS_KERNEL_CUBIC, "VIPS_KERNEL_CUBIC", "cubic"}, + {VIPS_KERNEL_LANCZOS2, "VIPS_KERNEL_LANCZOS2", "lanczos2"}, + {VIPS_KERNEL_LANCZOS3, "VIPS_KERNEL_LANCZOS3", "lanczos3"}, + {VIPS_KERNEL_LAST, "VIPS_KERNEL_LAST", "last"}, {0, NULL, NULL} }; - etype = g_enum_register_static( "VipsOperationMath", values ); + etype = g_enum_register_static( "VipsKernel", values ); } return( etype ); } GType -vips_operation_math2_get_type( void ) +vips_size_get_type( void ) { static GType etype = 0; if( etype == 0 ) { static const GEnumValue values[] = { - {VIPS_OPERATION_MATH2_POW, "VIPS_OPERATION_MATH2_POW", "pow"}, - {VIPS_OPERATION_MATH2_WOP, "VIPS_OPERATION_MATH2_WOP", "wop"}, - {VIPS_OPERATION_MATH2_LAST, "VIPS_OPERATION_MATH2_LAST", "last"}, + {VIPS_SIZE_BOTH, "VIPS_SIZE_BOTH", "both"}, + {VIPS_SIZE_UP, "VIPS_SIZE_UP", "up"}, + {VIPS_SIZE_DOWN, "VIPS_SIZE_DOWN", "down"}, + {VIPS_SIZE_FORCE, "VIPS_SIZE_FORCE", "force"}, + {VIPS_SIZE_LAST, "VIPS_SIZE_LAST", "last"}, {0, NULL, NULL} }; - etype = g_enum_register_static( "VipsOperationMath2", values ); - } - - return( etype ); -} -GType -vips_operation_round_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_OPERATION_ROUND_RINT, "VIPS_OPERATION_ROUND_RINT", "rint"}, - {VIPS_OPERATION_ROUND_CEIL, "VIPS_OPERATION_ROUND_CEIL", "ceil"}, - {VIPS_OPERATION_ROUND_FLOOR, "VIPS_OPERATION_ROUND_FLOOR", "floor"}, - {VIPS_OPERATION_ROUND_LAST, "VIPS_OPERATION_ROUND_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsOperationRound", values ); - } - - return( etype ); -} -GType -vips_operation_relational_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_OPERATION_RELATIONAL_EQUAL, "VIPS_OPERATION_RELATIONAL_EQUAL", "equal"}, - {VIPS_OPERATION_RELATIONAL_NOTEQ, "VIPS_OPERATION_RELATIONAL_NOTEQ", "noteq"}, - {VIPS_OPERATION_RELATIONAL_LESS, "VIPS_OPERATION_RELATIONAL_LESS", "less"}, - {VIPS_OPERATION_RELATIONAL_LESSEQ, "VIPS_OPERATION_RELATIONAL_LESSEQ", "lesseq"}, - {VIPS_OPERATION_RELATIONAL_MORE, "VIPS_OPERATION_RELATIONAL_MORE", "more"}, - {VIPS_OPERATION_RELATIONAL_MOREEQ, "VIPS_OPERATION_RELATIONAL_MOREEQ", "moreeq"}, - {VIPS_OPERATION_RELATIONAL_LAST, "VIPS_OPERATION_RELATIONAL_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsOperationRelational", values ); - } - - return( etype ); -} -GType -vips_operation_boolean_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_OPERATION_BOOLEAN_AND, "VIPS_OPERATION_BOOLEAN_AND", "and"}, - {VIPS_OPERATION_BOOLEAN_OR, "VIPS_OPERATION_BOOLEAN_OR", "or"}, - {VIPS_OPERATION_BOOLEAN_EOR, "VIPS_OPERATION_BOOLEAN_EOR", "eor"}, - {VIPS_OPERATION_BOOLEAN_LSHIFT, "VIPS_OPERATION_BOOLEAN_LSHIFT", "lshift"}, - {VIPS_OPERATION_BOOLEAN_RSHIFT, "VIPS_OPERATION_BOOLEAN_RSHIFT", "rshift"}, - {VIPS_OPERATION_BOOLEAN_LAST, "VIPS_OPERATION_BOOLEAN_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsOperationBoolean", values ); - } - - return( etype ); -} -GType -vips_operation_complex_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_OPERATION_COMPLEX_POLAR, "VIPS_OPERATION_COMPLEX_POLAR", "polar"}, - {VIPS_OPERATION_COMPLEX_RECT, "VIPS_OPERATION_COMPLEX_RECT", "rect"}, - {VIPS_OPERATION_COMPLEX_CONJ, "VIPS_OPERATION_COMPLEX_CONJ", "conj"}, - {VIPS_OPERATION_COMPLEX_LAST, "VIPS_OPERATION_COMPLEX_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsOperationComplex", values ); - } - - return( etype ); -} -GType -vips_operation_complex2_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_OPERATION_COMPLEX2_CROSS_PHASE, "VIPS_OPERATION_COMPLEX2_CROSS_PHASE", "cross-phase"}, - {VIPS_OPERATION_COMPLEX2_LAST, "VIPS_OPERATION_COMPLEX2_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsOperationComplex2", values ); - } - - return( etype ); -} -GType -vips_operation_complexget_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_OPERATION_COMPLEXGET_REAL, "VIPS_OPERATION_COMPLEXGET_REAL", "real"}, - {VIPS_OPERATION_COMPLEXGET_IMAG, "VIPS_OPERATION_COMPLEXGET_IMAG", "imag"}, - {VIPS_OPERATION_COMPLEXGET_LAST, "VIPS_OPERATION_COMPLEXGET_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsOperationComplexget", values ); - } - - return( etype ); -} -/* enumerations from "../../libvips/include/vips/basic.h" */ -GType -vips_precision_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_PRECISION_INTEGER, "VIPS_PRECISION_INTEGER", "integer"}, - {VIPS_PRECISION_FLOAT, "VIPS_PRECISION_FLOAT", "float"}, - {VIPS_PRECISION_APPROXIMATE, "VIPS_PRECISION_APPROXIMATE", "approximate"}, - {VIPS_PRECISION_LAST, "VIPS_PRECISION_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsPrecision", values ); - } - - return( etype ); -} -/* enumerations from "../../libvips/include/vips/colour.h" */ -GType -vips_intent_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_INTENT_PERCEPTUAL, "VIPS_INTENT_PERCEPTUAL", "perceptual"}, - {VIPS_INTENT_RELATIVE, "VIPS_INTENT_RELATIVE", "relative"}, - {VIPS_INTENT_SATURATION, "VIPS_INTENT_SATURATION", "saturation"}, - {VIPS_INTENT_ABSOLUTE, "VIPS_INTENT_ABSOLUTE", "absolute"}, - {VIPS_INTENT_LAST, "VIPS_INTENT_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsIntent", values ); - } - - return( etype ); -} -GType -vips_pcs_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_PCS_LAB, "VIPS_PCS_LAB", "lab"}, - {VIPS_PCS_XYZ, "VIPS_PCS_XYZ", "xyz"}, - {VIPS_PCS_LAST, "VIPS_PCS_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsPCS", values ); - } - - return( etype ); -} -/* enumerations from "../../libvips/include/vips/conversion.h" */ -GType -vips_extend_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_EXTEND_BLACK, "VIPS_EXTEND_BLACK", "black"}, - {VIPS_EXTEND_COPY, "VIPS_EXTEND_COPY", "copy"}, - {VIPS_EXTEND_REPEAT, "VIPS_EXTEND_REPEAT", "repeat"}, - {VIPS_EXTEND_MIRROR, "VIPS_EXTEND_MIRROR", "mirror"}, - {VIPS_EXTEND_WHITE, "VIPS_EXTEND_WHITE", "white"}, - {VIPS_EXTEND_BACKGROUND, "VIPS_EXTEND_BACKGROUND", "background"}, - {VIPS_EXTEND_LAST, "VIPS_EXTEND_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsExtend", values ); - } - - return( etype ); -} -GType -vips_compass_direction_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_COMPASS_DIRECTION_CENTRE, "VIPS_COMPASS_DIRECTION_CENTRE", "centre"}, - {VIPS_COMPASS_DIRECTION_NORTH, "VIPS_COMPASS_DIRECTION_NORTH", "north"}, - {VIPS_COMPASS_DIRECTION_EAST, "VIPS_COMPASS_DIRECTION_EAST", "east"}, - {VIPS_COMPASS_DIRECTION_SOUTH, "VIPS_COMPASS_DIRECTION_SOUTH", "south"}, - {VIPS_COMPASS_DIRECTION_WEST, "VIPS_COMPASS_DIRECTION_WEST", "west"}, - {VIPS_COMPASS_DIRECTION_NORTH_EAST, "VIPS_COMPASS_DIRECTION_NORTH_EAST", "north-east"}, - {VIPS_COMPASS_DIRECTION_SOUTH_EAST, "VIPS_COMPASS_DIRECTION_SOUTH_EAST", "south-east"}, - {VIPS_COMPASS_DIRECTION_SOUTH_WEST, "VIPS_COMPASS_DIRECTION_SOUTH_WEST", "south-west"}, - {VIPS_COMPASS_DIRECTION_NORTH_WEST, "VIPS_COMPASS_DIRECTION_NORTH_WEST", "north-west"}, - {VIPS_COMPASS_DIRECTION_LAST, "VIPS_COMPASS_DIRECTION_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsCompassDirection", values ); - } - - return( etype ); -} -GType -vips_direction_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_DIRECTION_HORIZONTAL, "VIPS_DIRECTION_HORIZONTAL", "horizontal"}, - {VIPS_DIRECTION_VERTICAL, "VIPS_DIRECTION_VERTICAL", "vertical"}, - {VIPS_DIRECTION_LAST, "VIPS_DIRECTION_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsDirection", values ); - } - - return( etype ); -} -GType -vips_align_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_ALIGN_LOW, "VIPS_ALIGN_LOW", "low"}, - {VIPS_ALIGN_CENTRE, "VIPS_ALIGN_CENTRE", "centre"}, - {VIPS_ALIGN_HIGH, "VIPS_ALIGN_HIGH", "high"}, - {VIPS_ALIGN_LAST, "VIPS_ALIGN_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsAlign", values ); - } - - return( etype ); -} -GType -vips_angle_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_ANGLE_D0, "VIPS_ANGLE_D0", "d0"}, - {VIPS_ANGLE_D90, "VIPS_ANGLE_D90", "d90"}, - {VIPS_ANGLE_D180, "VIPS_ANGLE_D180", "d180"}, - {VIPS_ANGLE_D270, "VIPS_ANGLE_D270", "d270"}, - {VIPS_ANGLE_LAST, "VIPS_ANGLE_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsAngle", values ); - } - - return( etype ); -} -GType -vips_angle45_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_ANGLE45_D0, "VIPS_ANGLE45_D0", "d0"}, - {VIPS_ANGLE45_D45, "VIPS_ANGLE45_D45", "d45"}, - {VIPS_ANGLE45_D90, "VIPS_ANGLE45_D90", "d90"}, - {VIPS_ANGLE45_D135, "VIPS_ANGLE45_D135", "d135"}, - {VIPS_ANGLE45_D180, "VIPS_ANGLE45_D180", "d180"}, - {VIPS_ANGLE45_D225, "VIPS_ANGLE45_D225", "d225"}, - {VIPS_ANGLE45_D270, "VIPS_ANGLE45_D270", "d270"}, - {VIPS_ANGLE45_D315, "VIPS_ANGLE45_D315", "d315"}, - {VIPS_ANGLE45_LAST, "VIPS_ANGLE45_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsAngle45", values ); - } - - return( etype ); -} -GType -vips_interesting_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_INTERESTING_NONE, "VIPS_INTERESTING_NONE", "none"}, - {VIPS_INTERESTING_CENTRE, "VIPS_INTERESTING_CENTRE", "centre"}, - {VIPS_INTERESTING_ENTROPY, "VIPS_INTERESTING_ENTROPY", "entropy"}, - {VIPS_INTERESTING_ATTENTION, "VIPS_INTERESTING_ATTENTION", "attention"}, - {VIPS_INTERESTING_LAST, "VIPS_INTERESTING_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsInteresting", values ); - } - - return( etype ); -} -GType -vips_blend_mode_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_BLEND_MODE_CLEAR, "VIPS_BLEND_MODE_CLEAR", "clear"}, - {VIPS_BLEND_MODE_SOURCE, "VIPS_BLEND_MODE_SOURCE", "source"}, - {VIPS_BLEND_MODE_OVER, "VIPS_BLEND_MODE_OVER", "over"}, - {VIPS_BLEND_MODE_IN, "VIPS_BLEND_MODE_IN", "in"}, - {VIPS_BLEND_MODE_OUT, "VIPS_BLEND_MODE_OUT", "out"}, - {VIPS_BLEND_MODE_ATOP, "VIPS_BLEND_MODE_ATOP", "atop"}, - {VIPS_BLEND_MODE_DEST, "VIPS_BLEND_MODE_DEST", "dest"}, - {VIPS_BLEND_MODE_DEST_OVER, "VIPS_BLEND_MODE_DEST_OVER", "dest-over"}, - {VIPS_BLEND_MODE_DEST_IN, "VIPS_BLEND_MODE_DEST_IN", "dest-in"}, - {VIPS_BLEND_MODE_DEST_OUT, "VIPS_BLEND_MODE_DEST_OUT", "dest-out"}, - {VIPS_BLEND_MODE_DEST_ATOP, "VIPS_BLEND_MODE_DEST_ATOP", "dest-atop"}, - {VIPS_BLEND_MODE_XOR, "VIPS_BLEND_MODE_XOR", "xor"}, - {VIPS_BLEND_MODE_ADD, "VIPS_BLEND_MODE_ADD", "add"}, - {VIPS_BLEND_MODE_SATURATE, "VIPS_BLEND_MODE_SATURATE", "saturate"}, - {VIPS_BLEND_MODE_MULTIPLY, "VIPS_BLEND_MODE_MULTIPLY", "multiply"}, - {VIPS_BLEND_MODE_SCREEN, "VIPS_BLEND_MODE_SCREEN", "screen"}, - {VIPS_BLEND_MODE_OVERLAY, "VIPS_BLEND_MODE_OVERLAY", "overlay"}, - {VIPS_BLEND_MODE_DARKEN, "VIPS_BLEND_MODE_DARKEN", "darken"}, - {VIPS_BLEND_MODE_LIGHTEN, "VIPS_BLEND_MODE_LIGHTEN", "lighten"}, - {VIPS_BLEND_MODE_COLOUR_DODGE, "VIPS_BLEND_MODE_COLOUR_DODGE", "colour-dodge"}, - {VIPS_BLEND_MODE_COLOUR_BURN, "VIPS_BLEND_MODE_COLOUR_BURN", "colour-burn"}, - {VIPS_BLEND_MODE_HARD_LIGHT, "VIPS_BLEND_MODE_HARD_LIGHT", "hard-light"}, - {VIPS_BLEND_MODE_SOFT_LIGHT, "VIPS_BLEND_MODE_SOFT_LIGHT", "soft-light"}, - {VIPS_BLEND_MODE_DIFFERENCE, "VIPS_BLEND_MODE_DIFFERENCE", "difference"}, - {VIPS_BLEND_MODE_EXCLUSION, "VIPS_BLEND_MODE_EXCLUSION", "exclusion"}, - {VIPS_BLEND_MODE_LAST, "VIPS_BLEND_MODE_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsBlendMode", values ); - } - - return( etype ); -} -/* enumerations from "../../libvips/include/vips/convolution.h" */ -GType -vips_combine_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_COMBINE_MAX, "VIPS_COMBINE_MAX", "max"}, - {VIPS_COMBINE_SUM, "VIPS_COMBINE_SUM", "sum"}, - {VIPS_COMBINE_LAST, "VIPS_COMBINE_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsCombine", values ); - } - - return( etype ); -} -/* enumerations from "../../libvips/include/vips/draw.h" */ -GType -vips_combine_mode_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_COMBINE_MODE_SET, "VIPS_COMBINE_MODE_SET", "set"}, - {VIPS_COMBINE_MODE_ADD, "VIPS_COMBINE_MODE_ADD", "add"}, - {VIPS_COMBINE_MODE_LAST, "VIPS_COMBINE_MODE_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsCombineMode", values ); + etype = g_enum_register_static( "VipsSize", values ); } return( etype ); @@ -653,6 +247,378 @@ vips_foreign_dz_container_get_type( void ) return( etype ); } +/* enumerations from "../../libvips/include/vips/conversion.h" */ +GType +vips_extend_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_EXTEND_BLACK, "VIPS_EXTEND_BLACK", "black"}, + {VIPS_EXTEND_COPY, "VIPS_EXTEND_COPY", "copy"}, + {VIPS_EXTEND_REPEAT, "VIPS_EXTEND_REPEAT", "repeat"}, + {VIPS_EXTEND_MIRROR, "VIPS_EXTEND_MIRROR", "mirror"}, + {VIPS_EXTEND_WHITE, "VIPS_EXTEND_WHITE", "white"}, + {VIPS_EXTEND_BACKGROUND, "VIPS_EXTEND_BACKGROUND", "background"}, + {VIPS_EXTEND_LAST, "VIPS_EXTEND_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsExtend", values ); + } + + return( etype ); +} +GType +vips_compass_direction_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_COMPASS_DIRECTION_CENTRE, "VIPS_COMPASS_DIRECTION_CENTRE", "centre"}, + {VIPS_COMPASS_DIRECTION_NORTH, "VIPS_COMPASS_DIRECTION_NORTH", "north"}, + {VIPS_COMPASS_DIRECTION_EAST, "VIPS_COMPASS_DIRECTION_EAST", "east"}, + {VIPS_COMPASS_DIRECTION_SOUTH, "VIPS_COMPASS_DIRECTION_SOUTH", "south"}, + {VIPS_COMPASS_DIRECTION_WEST, "VIPS_COMPASS_DIRECTION_WEST", "west"}, + {VIPS_COMPASS_DIRECTION_NORTH_EAST, "VIPS_COMPASS_DIRECTION_NORTH_EAST", "north-east"}, + {VIPS_COMPASS_DIRECTION_SOUTH_EAST, "VIPS_COMPASS_DIRECTION_SOUTH_EAST", "south-east"}, + {VIPS_COMPASS_DIRECTION_SOUTH_WEST, "VIPS_COMPASS_DIRECTION_SOUTH_WEST", "south-west"}, + {VIPS_COMPASS_DIRECTION_NORTH_WEST, "VIPS_COMPASS_DIRECTION_NORTH_WEST", "north-west"}, + {VIPS_COMPASS_DIRECTION_LAST, "VIPS_COMPASS_DIRECTION_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsCompassDirection", values ); + } + + return( etype ); +} +GType +vips_direction_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_DIRECTION_HORIZONTAL, "VIPS_DIRECTION_HORIZONTAL", "horizontal"}, + {VIPS_DIRECTION_VERTICAL, "VIPS_DIRECTION_VERTICAL", "vertical"}, + {VIPS_DIRECTION_LAST, "VIPS_DIRECTION_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsDirection", values ); + } + + return( etype ); +} +GType +vips_align_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_ALIGN_LOW, "VIPS_ALIGN_LOW", "low"}, + {VIPS_ALIGN_CENTRE, "VIPS_ALIGN_CENTRE", "centre"}, + {VIPS_ALIGN_HIGH, "VIPS_ALIGN_HIGH", "high"}, + {VIPS_ALIGN_LAST, "VIPS_ALIGN_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsAlign", values ); + } + + return( etype ); +} +GType +vips_angle_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_ANGLE_D0, "VIPS_ANGLE_D0", "d0"}, + {VIPS_ANGLE_D90, "VIPS_ANGLE_D90", "d90"}, + {VIPS_ANGLE_D180, "VIPS_ANGLE_D180", "d180"}, + {VIPS_ANGLE_D270, "VIPS_ANGLE_D270", "d270"}, + {VIPS_ANGLE_LAST, "VIPS_ANGLE_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsAngle", values ); + } + + return( etype ); +} +GType +vips_angle45_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_ANGLE45_D0, "VIPS_ANGLE45_D0", "d0"}, + {VIPS_ANGLE45_D45, "VIPS_ANGLE45_D45", "d45"}, + {VIPS_ANGLE45_D90, "VIPS_ANGLE45_D90", "d90"}, + {VIPS_ANGLE45_D135, "VIPS_ANGLE45_D135", "d135"}, + {VIPS_ANGLE45_D180, "VIPS_ANGLE45_D180", "d180"}, + {VIPS_ANGLE45_D225, "VIPS_ANGLE45_D225", "d225"}, + {VIPS_ANGLE45_D270, "VIPS_ANGLE45_D270", "d270"}, + {VIPS_ANGLE45_D315, "VIPS_ANGLE45_D315", "d315"}, + {VIPS_ANGLE45_LAST, "VIPS_ANGLE45_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsAngle45", values ); + } + + return( etype ); +} +GType +vips_interesting_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_INTERESTING_NONE, "VIPS_INTERESTING_NONE", "none"}, + {VIPS_INTERESTING_CENTRE, "VIPS_INTERESTING_CENTRE", "centre"}, + {VIPS_INTERESTING_ENTROPY, "VIPS_INTERESTING_ENTROPY", "entropy"}, + {VIPS_INTERESTING_ATTENTION, "VIPS_INTERESTING_ATTENTION", "attention"}, + {VIPS_INTERESTING_LAST, "VIPS_INTERESTING_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsInteresting", values ); + } + + return( etype ); +} +GType +vips_blend_mode_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_BLEND_MODE_CLEAR, "VIPS_BLEND_MODE_CLEAR", "clear"}, + {VIPS_BLEND_MODE_SOURCE, "VIPS_BLEND_MODE_SOURCE", "source"}, + {VIPS_BLEND_MODE_OVER, "VIPS_BLEND_MODE_OVER", "over"}, + {VIPS_BLEND_MODE_IN, "VIPS_BLEND_MODE_IN", "in"}, + {VIPS_BLEND_MODE_OUT, "VIPS_BLEND_MODE_OUT", "out"}, + {VIPS_BLEND_MODE_ATOP, "VIPS_BLEND_MODE_ATOP", "atop"}, + {VIPS_BLEND_MODE_DEST, "VIPS_BLEND_MODE_DEST", "dest"}, + {VIPS_BLEND_MODE_DEST_OVER, "VIPS_BLEND_MODE_DEST_OVER", "dest-over"}, + {VIPS_BLEND_MODE_DEST_IN, "VIPS_BLEND_MODE_DEST_IN", "dest-in"}, + {VIPS_BLEND_MODE_DEST_OUT, "VIPS_BLEND_MODE_DEST_OUT", "dest-out"}, + {VIPS_BLEND_MODE_DEST_ATOP, "VIPS_BLEND_MODE_DEST_ATOP", "dest-atop"}, + {VIPS_BLEND_MODE_XOR, "VIPS_BLEND_MODE_XOR", "xor"}, + {VIPS_BLEND_MODE_ADD, "VIPS_BLEND_MODE_ADD", "add"}, + {VIPS_BLEND_MODE_SATURATE, "VIPS_BLEND_MODE_SATURATE", "saturate"}, + {VIPS_BLEND_MODE_MULTIPLY, "VIPS_BLEND_MODE_MULTIPLY", "multiply"}, + {VIPS_BLEND_MODE_SCREEN, "VIPS_BLEND_MODE_SCREEN", "screen"}, + {VIPS_BLEND_MODE_OVERLAY, "VIPS_BLEND_MODE_OVERLAY", "overlay"}, + {VIPS_BLEND_MODE_DARKEN, "VIPS_BLEND_MODE_DARKEN", "darken"}, + {VIPS_BLEND_MODE_LIGHTEN, "VIPS_BLEND_MODE_LIGHTEN", "lighten"}, + {VIPS_BLEND_MODE_COLOUR_DODGE, "VIPS_BLEND_MODE_COLOUR_DODGE", "colour-dodge"}, + {VIPS_BLEND_MODE_COLOUR_BURN, "VIPS_BLEND_MODE_COLOUR_BURN", "colour-burn"}, + {VIPS_BLEND_MODE_HARD_LIGHT, "VIPS_BLEND_MODE_HARD_LIGHT", "hard-light"}, + {VIPS_BLEND_MODE_SOFT_LIGHT, "VIPS_BLEND_MODE_SOFT_LIGHT", "soft-light"}, + {VIPS_BLEND_MODE_DIFFERENCE, "VIPS_BLEND_MODE_DIFFERENCE", "difference"}, + {VIPS_BLEND_MODE_EXCLUSION, "VIPS_BLEND_MODE_EXCLUSION", "exclusion"}, + {VIPS_BLEND_MODE_LAST, "VIPS_BLEND_MODE_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsBlendMode", values ); + } + + return( etype ); +} +/* enumerations from "../../libvips/include/vips/arithmetic.h" */ +GType +vips_operation_math_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_OPERATION_MATH_SIN, "VIPS_OPERATION_MATH_SIN", "sin"}, + {VIPS_OPERATION_MATH_COS, "VIPS_OPERATION_MATH_COS", "cos"}, + {VIPS_OPERATION_MATH_TAN, "VIPS_OPERATION_MATH_TAN", "tan"}, + {VIPS_OPERATION_MATH_ASIN, "VIPS_OPERATION_MATH_ASIN", "asin"}, + {VIPS_OPERATION_MATH_ACOS, "VIPS_OPERATION_MATH_ACOS", "acos"}, + {VIPS_OPERATION_MATH_ATAN, "VIPS_OPERATION_MATH_ATAN", "atan"}, + {VIPS_OPERATION_MATH_LOG, "VIPS_OPERATION_MATH_LOG", "log"}, + {VIPS_OPERATION_MATH_LOG10, "VIPS_OPERATION_MATH_LOG10", "log10"}, + {VIPS_OPERATION_MATH_EXP, "VIPS_OPERATION_MATH_EXP", "exp"}, + {VIPS_OPERATION_MATH_EXP10, "VIPS_OPERATION_MATH_EXP10", "exp10"}, + {VIPS_OPERATION_MATH_LAST, "VIPS_OPERATION_MATH_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsOperationMath", values ); + } + + return( etype ); +} +GType +vips_operation_math2_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_OPERATION_MATH2_POW, "VIPS_OPERATION_MATH2_POW", "pow"}, + {VIPS_OPERATION_MATH2_WOP, "VIPS_OPERATION_MATH2_WOP", "wop"}, + {VIPS_OPERATION_MATH2_LAST, "VIPS_OPERATION_MATH2_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsOperationMath2", values ); + } + + return( etype ); +} +GType +vips_operation_round_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_OPERATION_ROUND_RINT, "VIPS_OPERATION_ROUND_RINT", "rint"}, + {VIPS_OPERATION_ROUND_CEIL, "VIPS_OPERATION_ROUND_CEIL", "ceil"}, + {VIPS_OPERATION_ROUND_FLOOR, "VIPS_OPERATION_ROUND_FLOOR", "floor"}, + {VIPS_OPERATION_ROUND_LAST, "VIPS_OPERATION_ROUND_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsOperationRound", values ); + } + + return( etype ); +} +GType +vips_operation_relational_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_OPERATION_RELATIONAL_EQUAL, "VIPS_OPERATION_RELATIONAL_EQUAL", "equal"}, + {VIPS_OPERATION_RELATIONAL_NOTEQ, "VIPS_OPERATION_RELATIONAL_NOTEQ", "noteq"}, + {VIPS_OPERATION_RELATIONAL_LESS, "VIPS_OPERATION_RELATIONAL_LESS", "less"}, + {VIPS_OPERATION_RELATIONAL_LESSEQ, "VIPS_OPERATION_RELATIONAL_LESSEQ", "lesseq"}, + {VIPS_OPERATION_RELATIONAL_MORE, "VIPS_OPERATION_RELATIONAL_MORE", "more"}, + {VIPS_OPERATION_RELATIONAL_MOREEQ, "VIPS_OPERATION_RELATIONAL_MOREEQ", "moreeq"}, + {VIPS_OPERATION_RELATIONAL_LAST, "VIPS_OPERATION_RELATIONAL_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsOperationRelational", values ); + } + + return( etype ); +} +GType +vips_operation_boolean_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_OPERATION_BOOLEAN_AND, "VIPS_OPERATION_BOOLEAN_AND", "and"}, + {VIPS_OPERATION_BOOLEAN_OR, "VIPS_OPERATION_BOOLEAN_OR", "or"}, + {VIPS_OPERATION_BOOLEAN_EOR, "VIPS_OPERATION_BOOLEAN_EOR", "eor"}, + {VIPS_OPERATION_BOOLEAN_LSHIFT, "VIPS_OPERATION_BOOLEAN_LSHIFT", "lshift"}, + {VIPS_OPERATION_BOOLEAN_RSHIFT, "VIPS_OPERATION_BOOLEAN_RSHIFT", "rshift"}, + {VIPS_OPERATION_BOOLEAN_LAST, "VIPS_OPERATION_BOOLEAN_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsOperationBoolean", values ); + } + + return( etype ); +} +GType +vips_operation_complex_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_OPERATION_COMPLEX_POLAR, "VIPS_OPERATION_COMPLEX_POLAR", "polar"}, + {VIPS_OPERATION_COMPLEX_RECT, "VIPS_OPERATION_COMPLEX_RECT", "rect"}, + {VIPS_OPERATION_COMPLEX_CONJ, "VIPS_OPERATION_COMPLEX_CONJ", "conj"}, + {VIPS_OPERATION_COMPLEX_LAST, "VIPS_OPERATION_COMPLEX_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsOperationComplex", values ); + } + + return( etype ); +} +GType +vips_operation_complex2_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_OPERATION_COMPLEX2_CROSS_PHASE, "VIPS_OPERATION_COMPLEX2_CROSS_PHASE", "cross-phase"}, + {VIPS_OPERATION_COMPLEX2_LAST, "VIPS_OPERATION_COMPLEX2_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsOperationComplex2", values ); + } + + return( etype ); +} +GType +vips_operation_complexget_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_OPERATION_COMPLEXGET_REAL, "VIPS_OPERATION_COMPLEXGET_REAL", "real"}, + {VIPS_OPERATION_COMPLEXGET_IMAG, "VIPS_OPERATION_COMPLEXGET_IMAG", "imag"}, + {VIPS_OPERATION_COMPLEXGET_LAST, "VIPS_OPERATION_COMPLEXGET_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsOperationComplexget", values ); + } + + return( etype ); +} +/* enumerations from "../../libvips/include/vips/util.h" */ +GType +vips_token_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_TOKEN_LEFT, "VIPS_TOKEN_LEFT", "left"}, + {VIPS_TOKEN_RIGHT, "VIPS_TOKEN_RIGHT", "right"}, + {VIPS_TOKEN_STRING, "VIPS_TOKEN_STRING", "string"}, + {VIPS_TOKEN_EQUALS, "VIPS_TOKEN_EQUALS", "equals"}, + {VIPS_TOKEN_COMMA, "VIPS_TOKEN_COMMA", "comma"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsToken", values ); + } + + return( etype ); +} /* enumerations from "../../libvips/include/vips/image.h" */ GType vips_demand_style_get_type( void ) @@ -800,6 +766,85 @@ vips_access_get_type( void ) return( etype ); } +/* enumerations from "../../libvips/include/vips/colour.h" */ +GType +vips_intent_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_INTENT_PERCEPTUAL, "VIPS_INTENT_PERCEPTUAL", "perceptual"}, + {VIPS_INTENT_RELATIVE, "VIPS_INTENT_RELATIVE", "relative"}, + {VIPS_INTENT_SATURATION, "VIPS_INTENT_SATURATION", "saturation"}, + {VIPS_INTENT_ABSOLUTE, "VIPS_INTENT_ABSOLUTE", "absolute"}, + {VIPS_INTENT_LAST, "VIPS_INTENT_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsIntent", values ); + } + + return( etype ); +} +GType +vips_pcs_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_PCS_LAB, "VIPS_PCS_LAB", "lab"}, + {VIPS_PCS_XYZ, "VIPS_PCS_XYZ", "xyz"}, + {VIPS_PCS_LAST, "VIPS_PCS_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsPCS", values ); + } + + return( etype ); +} +/* enumerations from "../../libvips/include/vips/operation.h" */ +GType +vips_operation_flags_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GFlagsValue values[] = { + {VIPS_OPERATION_NONE, "VIPS_OPERATION_NONE", "none"}, + {VIPS_OPERATION_SEQUENTIAL, "VIPS_OPERATION_SEQUENTIAL", "sequential"}, + {VIPS_OPERATION_SEQUENTIAL_UNBUFFERED, "VIPS_OPERATION_SEQUENTIAL_UNBUFFERED", "sequential-unbuffered"}, + {VIPS_OPERATION_NOCACHE, "VIPS_OPERATION_NOCACHE", "nocache"}, + {VIPS_OPERATION_DEPRECATED, "VIPS_OPERATION_DEPRECATED", "deprecated"}, + {0, NULL, NULL} + }; + + etype = g_flags_register_static( "VipsOperationFlags", values ); + } + + return( etype ); +} +/* enumerations from "../../libvips/include/vips/convolution.h" */ +GType +vips_combine_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_COMBINE_MAX, "VIPS_COMBINE_MAX", "max"}, + {VIPS_COMBINE_SUM, "VIPS_COMBINE_SUM", "sum"}, + {VIPS_COMBINE_LAST, "VIPS_COMBINE_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsCombine", values ); + } + + return( etype ); +} /* enumerations from "../../libvips/include/vips/morphology.h" */ GType vips_operation_morphology_get_type( void ) @@ -819,6 +864,45 @@ vips_operation_morphology_get_type( void ) return( etype ); } +/* enumerations from "../../libvips/include/vips/draw.h" */ +GType +vips_combine_mode_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_COMBINE_MODE_SET, "VIPS_COMBINE_MODE_SET", "set"}, + {VIPS_COMBINE_MODE_ADD, "VIPS_COMBINE_MODE_ADD", "add"}, + {VIPS_COMBINE_MODE_LAST, "VIPS_COMBINE_MODE_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsCombineMode", values ); + } + + return( etype ); +} +/* enumerations from "../../libvips/include/vips/basic.h" */ +GType +vips_precision_get_type( void ) +{ + static GType etype = 0; + + if( etype == 0 ) { + static const GEnumValue values[] = { + {VIPS_PRECISION_INTEGER, "VIPS_PRECISION_INTEGER", "integer"}, + {VIPS_PRECISION_FLOAT, "VIPS_PRECISION_FLOAT", "float"}, + {VIPS_PRECISION_APPROXIMATE, "VIPS_PRECISION_APPROXIMATE", "approximate"}, + {VIPS_PRECISION_LAST, "VIPS_PRECISION_LAST", "last"}, + {0, NULL, NULL} + }; + + etype = g_enum_register_static( "VipsPrecision", values ); + } + + return( etype ); +} /* enumerations from "../../libvips/include/vips/object.h" */ GType vips_argument_flags_get_type( void ) @@ -844,90 +928,6 @@ vips_argument_flags_get_type( void ) return( etype ); } -/* enumerations from "../../libvips/include/vips/operation.h" */ -GType -vips_operation_flags_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GFlagsValue values[] = { - {VIPS_OPERATION_NONE, "VIPS_OPERATION_NONE", "none"}, - {VIPS_OPERATION_SEQUENTIAL, "VIPS_OPERATION_SEQUENTIAL", "sequential"}, - {VIPS_OPERATION_SEQUENTIAL_UNBUFFERED, "VIPS_OPERATION_SEQUENTIAL_UNBUFFERED", "sequential-unbuffered"}, - {VIPS_OPERATION_NOCACHE, "VIPS_OPERATION_NOCACHE", "nocache"}, - {VIPS_OPERATION_DEPRECATED, "VIPS_OPERATION_DEPRECATED", "deprecated"}, - {0, NULL, NULL} - }; - - etype = g_flags_register_static( "VipsOperationFlags", values ); - } - - return( etype ); -} -/* enumerations from "../../libvips/include/vips/resample.h" */ -GType -vips_kernel_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_KERNEL_NEAREST, "VIPS_KERNEL_NEAREST", "nearest"}, - {VIPS_KERNEL_LINEAR, "VIPS_KERNEL_LINEAR", "linear"}, - {VIPS_KERNEL_CUBIC, "VIPS_KERNEL_CUBIC", "cubic"}, - {VIPS_KERNEL_LANCZOS2, "VIPS_KERNEL_LANCZOS2", "lanczos2"}, - {VIPS_KERNEL_LANCZOS3, "VIPS_KERNEL_LANCZOS3", "lanczos3"}, - {VIPS_KERNEL_LAST, "VIPS_KERNEL_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsKernel", values ); - } - - return( etype ); -} -GType -vips_size_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_SIZE_BOTH, "VIPS_SIZE_BOTH", "both"}, - {VIPS_SIZE_UP, "VIPS_SIZE_UP", "up"}, - {VIPS_SIZE_DOWN, "VIPS_SIZE_DOWN", "down"}, - {VIPS_SIZE_FORCE, "VIPS_SIZE_FORCE", "force"}, - {VIPS_SIZE_LAST, "VIPS_SIZE_LAST", "last"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsSize", values ); - } - - return( etype ); -} -/* enumerations from "../../libvips/include/vips/util.h" */ -GType -vips_token_get_type( void ) -{ - static GType etype = 0; - - if( etype == 0 ) { - static const GEnumValue values[] = { - {VIPS_TOKEN_LEFT, "VIPS_TOKEN_LEFT", "left"}, - {VIPS_TOKEN_RIGHT, "VIPS_TOKEN_RIGHT", "right"}, - {VIPS_TOKEN_STRING, "VIPS_TOKEN_STRING", "string"}, - {VIPS_TOKEN_EQUALS, "VIPS_TOKEN_EQUALS", "equals"}, - {VIPS_TOKEN_COMMA, "VIPS_TOKEN_COMMA", "comma"}, - {0, NULL, NULL} - }; - - etype = g_enum_register_static( "VipsToken", values ); - } - - return( etype ); -} /* Generated data ends here */ diff --git a/libvips/morphology/morphology.c b/libvips/morphology/morphology.c index 51d21554..fa055362 100644 --- a/libvips/morphology/morphology.c +++ b/libvips/morphology/morphology.c @@ -136,11 +136,11 @@ vips_morphology_operation_init( void ) extern int vips_rank_get_type( void ); extern int vips_countlines_get_type( void ); extern int vips_labelregions_get_type( void ); - extern int vips_nearest_get_type( void ); + extern int vips_fill_nearest_get_type( void ); vips_morph_get_type(); vips_rank_get_type(); vips_countlines_get_type(); vips_labelregions_get_type(); - vips_nearest_get_type(); + vips_fill_nearest_get_type(); } diff --git a/libvips/morphology/nearest.c b/libvips/morphology/nearest.c index f921c19b..e7c542c6 100644 --- a/libvips/morphology/nearest.c +++ b/libvips/morphology/nearest.c @@ -60,7 +60,7 @@ typedef struct _Seed { int octant_mask; } Seed; -typedef struct _VipsNearest { +typedef struct _VipsFillNearest { VipsMorphology parent_instance; VipsImage *out; @@ -74,41 +74,41 @@ typedef struct _VipsNearest { /* All our seed pixels. There can be a lot of these. */ GArray *seeds; -} VipsNearest; +} VipsFillNearest; -typedef VipsMorphologyClass VipsNearestClass; +typedef VipsMorphologyClass VipsFillNearestClass; -G_DEFINE_TYPE( VipsNearest, vips_nearest, VIPS_TYPE_MORPHOLOGY ); +G_DEFINE_TYPE( VipsFillNearest, vips_fill_nearest, VIPS_TYPE_MORPHOLOGY ); static void -vips_nearest_finalize( GObject *gobject ) +vips_fill_nearest_finalize( GObject *gobject ) { - VipsNearest *nearest = (VipsNearest *) gobject; + VipsFillNearest *nearest = (VipsFillNearest *) gobject; #ifdef DEBUG - printf( "vips_nearest_finalize: " ); + printf( "vips_fill_nearest_finalize: " ); vips_object_print_name( VIPS_OBJECT( gobject ) ); printf( "\n" ); #endif /*DEBUG*/ VIPS_FREEF( g_array_unref, nearest->seeds ); - G_OBJECT_CLASS( vips_nearest_parent_class )->finalize( gobject ); + G_OBJECT_CLASS( vips_fill_nearest_parent_class )->finalize( gobject ); } struct _Circle; -typedef void (*VipsNearestPixel)( struct _Circle *circle, +typedef void (*VipsFillNearestPixel)( struct _Circle *circle, int x, int y, int octant ); typedef struct _Circle { - VipsNearest *nearest; + VipsFillNearest *nearest; Seed *seed; int octant_mask; - VipsNearestPixel nearest_pixel; + VipsFillNearestPixel nearest_pixel; } Circle; static void -vips_nearest_pixel( Circle *circle, int x, int y, int octant ) +vips_fill_nearest_pixel( Circle *circle, int x, int y, int octant ) { float *p; float radius; @@ -145,7 +145,7 @@ vips_nearest_pixel( Circle *circle, int x, int y, int octant ) } static void -vips_nearest_pixel_clip( Circle *circle, int x, int y, int octant ) +vips_fill_nearest_pixel_clip( Circle *circle, int x, int y, int octant ) { if( (circle->seed->octant_mask & (1 << octant)) == 0 ) return; @@ -154,11 +154,11 @@ vips_nearest_pixel_clip( Circle *circle, int x, int y, int octant ) x < circle->nearest->width && y >= 0 && y < circle->nearest->height ) - vips_nearest_pixel( circle, x, y, octant ); + vips_fill_nearest_pixel( circle, x, y, octant ); } static void -vips_nearest_scanline( VipsImage *image, +vips_fill_nearest_scanline( VipsImage *image, int y, int x1, int x2, int quadrant, void *client ) { Circle *circle = (Circle *) client; @@ -184,7 +184,7 @@ vips_nearest_scanline( VipsImage *image, } static void -vips_nearest_grow_seed( VipsNearest *nearest, Seed *seed ) +vips_fill_nearest_grow_seed( VipsFillNearest *nearest, Seed *seed ) { Circle circle; @@ -196,12 +196,12 @@ vips_nearest_grow_seed( VipsNearest *nearest, Seed *seed ) seed->x + seed->r < nearest->width && seed->y - seed->r >= 0 && seed->y + seed->r < nearest->height ) - circle.nearest_pixel = vips_nearest_pixel; + circle.nearest_pixel = vips_fill_nearest_pixel; else - circle.nearest_pixel = vips_nearest_pixel_clip; + circle.nearest_pixel = vips_fill_nearest_pixel_clip; vips__draw_circle_direct( nearest->distance, - seed->x, seed->y, seed->r, vips_nearest_scanline, &circle ); + seed->x, seed->y, seed->r, vips_fill_nearest_scanline, &circle ); /* Update the action_mask for this seed. Next time, we can skip any * octants where we failed to act this time. @@ -212,16 +212,17 @@ vips_nearest_grow_seed( VipsNearest *nearest, Seed *seed ) } static int -vips_nearest_build( VipsObject *object ) +vips_fill_nearest_build( VipsObject *object ) { VipsMorphology *morphology = VIPS_MORPHOLOGY( object ); - VipsNearest *nearest = (VipsNearest *) object; + VipsFillNearest *nearest = (VipsFillNearest *) object; VipsImage **t = (VipsImage **) vips_object_local_array( object, 2 ); int ps; int x, y, i; - if( VIPS_OBJECT_CLASS( vips_nearest_parent_class )->build( object ) ) + if( VIPS_OBJECT_CLASS( vips_fill_nearest_parent_class )-> + build( object ) ) return( -1 ); if( vips_image_wio_input( morphology->in ) ) @@ -277,7 +278,7 @@ vips_nearest_build( VipsObject *object ) /* Grow all seeds by one pixel. */ for( i = 0; i < nearest->seeds->len; i++ ) - vips_nearest_grow_seed( nearest, + vips_fill_nearest_grow_seed( nearest, &g_array_index( nearest->seeds, Seed, i ) ); /* Remove dead seeds. @@ -297,49 +298,50 @@ vips_nearest_build( VipsObject *object ) } static void -vips_nearest_class_init( VipsNearestClass *class ) +vips_fill_nearest_class_init( VipsFillNearestClass *class ) { GObjectClass *gobject_class = G_OBJECT_CLASS( class ); VipsObjectClass *vobject_class = VIPS_OBJECT_CLASS( class ); - gobject_class->finalize = vips_nearest_finalize; + gobject_class->finalize = vips_fill_nearest_finalize; gobject_class->set_property = vips_object_set_property; gobject_class->get_property = vips_object_get_property; - vobject_class->nickname = "nearest"; - vobject_class->description = _( "find nearest pixel in an image" ); - vobject_class->build = vips_nearest_build; + vobject_class->nickname = "fill_nearest"; + vobject_class->description = + _( "fill image zeros with nearest non-zero pixel" ); + vobject_class->build = vips_fill_nearest_build; VIPS_ARG_IMAGE( class, "out", 2, _( "Out" ), - _( "Value of nearest image point" ), + _( "Value of nearest non-zero pixel" ), VIPS_ARGUMENT_REQUIRED_OUTPUT, - G_STRUCT_OFFSET( VipsNearest, out ) ); + G_STRUCT_OFFSET( VipsFillNearest, out ) ); VIPS_ARG_IMAGE( class, "distance", 3, _( "Distance" ), - _( "Distance to nearest image point" ), + _( "Distance to nearest non-zero pixel" ), VIPS_ARGUMENT_OPTIONAL_OUTPUT, - G_STRUCT_OFFSET( VipsNearest, distance ) ); + G_STRUCT_OFFSET( VipsFillNearest, distance ) ); } static void -vips_nearest_init( VipsNearest *nearest ) +vips_fill_nearest_init( VipsFillNearest *nearest ) { } /** - * vips_nearest: (method) + * vips_fill_nearest: (method) * @in: image to test - * @out: image with zero values filled with nearest pixel + * @out: image with zero pixels filled with the nearest non-zero pixel * @...: %NULL-terminated list of optional named arguments * * Optional arguments: * - * * @distance: output image of distance to nearest image pixel + * * @distance: output image of distance to nearest non-zero pixel * - * Flood outwards from every non-zero pixel in @in, setting pixels in @distance + * Fill outwards from every non-zero pixel in @in, setting pixels in @distance * and @value. * * At the position of zero pixels in @in, @distance contains the distance to @@ -354,13 +356,13 @@ vips_nearest_init( VipsNearest *nearest ) * Returns: 0 on success, -1 on error. */ int -vips_nearest( VipsImage *in, VipsImage **out, ... ) +vips_fill_nearest( VipsImage *in, VipsImage **out, ... ) { va_list ap; int result; va_start( ap, out ); - result = vips_call_split( "nearest", ap, in, out ); + result = vips_call_split( "fill_nearest", ap, in, out ); va_end( ap ); return( result ); diff --git a/po/en_GB.gmo b/po/en_GB.gmo index a024b1d6..2c329fa6 100644 Binary files a/po/en_GB.gmo and b/po/en_GB.gmo differ