VImage.h   VImage.h 
skipping to change at line 63 skipping to change at line 63
struct _VipsImage; struct _VipsImage;
/* Needed by Vargv, see below. /* Needed by Vargv, see below.
*/ */
struct im__function; struct im__function;
typedef void *im__object; typedef void *im__object;
} }
VIPS_NAMESPACE_START VIPS_NAMESPACE_START
/* vips_init() and vips_shutdown as namespaced C++ functions.
*/
bool init( const char *argv0 = "nothing" );
void shutdown( void );
/* A VIPS callback, our name for im_callback_fn. /* A VIPS callback, our name for im_callback_fn.
*/ */
typedef int (*VCallback)( void *, void * ); typedef int (*VCallback)( void *, void * );
/* VIPS image class. /* VIPS image class.
* *
* Slightly tricky: we have two sorts of sharing. Several VImage can share one * Slightly tricky: we have two sorts of sharing. Several VImage can share one
* refblock (while results are being returned from functions, for example), * refblock (while results are being returned from functions, for example),
* and several other refblocks can have IMAGEs which depend upon this IMAGE * and several other refblocks can have IMAGEs which depend upon this IMAGE
* for their result. * for their result.
 End of changes. 1 change blocks. 
0 lines changed or deleted 5 lines changed or added


 almostdeprecated.h   almostdeprecated.h 
skipping to change at line 80 skipping to change at line 80
gboolean im_isuint( IMAGE *im ); gboolean im_isuint( IMAGE *im );
gboolean im_isint( IMAGE *im ); gboolean im_isint( IMAGE *im );
gboolean im_isfloat( IMAGE *im ); gboolean im_isfloat( IMAGE *im );
gboolean im_isscalar( IMAGE *im ); gboolean im_isscalar( IMAGE *im );
gboolean im_iscomplex( IMAGE *im ); gboolean im_iscomplex( IMAGE *im );
int im_c2ps( IMAGE *in, IMAGE *out ); int im_c2ps( IMAGE *in, IMAGE *out );
int im_clip( IMAGE *in, IMAGE *out ); int im_clip( IMAGE *in, IMAGE *out );
#define MASK_IDEAL_HIGHPASS VIPS_MASK_IDEAL_HIGHPASS #define MASK_IDEAL_HIGHPASS IM_MASK_IDEAL_HIGHPASS
#define MASK_IDEAL_LOWPASS VIPS_MASK_IDEAL_LOWPASS #define MASK_IDEAL_LOWPASS IM_MASK_IDEAL_LOWPASS
#define MASK_BUTTERWORTH_HIGHPASS VIPS_MASK_BUTTERWORTH_HIGHPASS #define MASK_BUTTERWORTH_HIGHPASS IM_MASK_BUTTERWORTH_HIGHPASS
#define MASK_BUTTERWORTH_LOWPASS VIPS_MASK_BUTTERWORTH_LOWPASS #define MASK_BUTTERWORTH_LOWPASS IM_MASK_BUTTERWORTH_LOWPASS
#define MASK_GAUSS_HIGHPASS VIPS_MASK_GAUSS_HIGHPASS #define MASK_GAUSS_HIGHPASS IM_MASK_GAUSS_HIGHPASS
#define MASK_GAUSS_LOWPASS VIPS_MASK_GAUSS_LOWPASS #define MASK_GAUSS_LOWPASS IM_MASK_GAUSS_LOWPASS
#define MASK_IDEAL_RINGPASS VIPS_MASK_IDEAL_RINGPASS #define MASK_IDEAL_RINGPASS IM_MASK_IDEAL_RINGPASS
#define MASK_IDEAL_RINGREJECT VIPS_MASK_IDEAL_RINGREJECT #define MASK_IDEAL_RINGREJECT IM_MASK_IDEAL_RINGREJECT
#define MASK_BUTTERWORTH_RINGPASS VIPS_MASK_BUTTERWORTH_RINGPASS #define MASK_BUTTERWORTH_RINGPASS IM_MASK_BUTTERWORTH_RINGPASS
#define MASK_BUTTERWORTH_RINGREJECT VIPS_MASK_BUTTERWORTH_RINGREJECT #define MASK_BUTTERWORTH_RINGREJECT IM_MASK_BUTTERWORTH_RINGREJECT
#define MASK_GAUSS_RINGPASS VIPS_MASK_GAUSS_RINGPASS #define MASK_GAUSS_RINGPASS IM_MASK_GAUSS_RINGPASS
#define MASK_GAUSS_RINGREJECT VIPS_MASK_GAUSS_RINGREJECT #define MASK_GAUSS_RINGREJECT IM_MASK_GAUSS_RINGREJECT
#define MASK_IDEAL_BANDPASS VIPS_MASK_IDEAL_BANDPASS #define MASK_IDEAL_BANDPASS IM_MASK_IDEAL_BANDPASS
#define MASK_IDEAL_BANDREJECT VIPS_MASK_IDEAL_BANDREJECT #define MASK_IDEAL_BANDREJECT IM_MASK_IDEAL_BANDREJECT
#define MASK_BUTTERWORTH_BANDPASS VIPS_MASK_BUTTERWORTH_BANDPASS #define MASK_BUTTERWORTH_BANDPASS IM_MASK_BUTTERWORTH_BANDPASS
#define MASK_BUTTERWORTH_BANDREJECT VIPS_MASK_BUTTERWORTH_BANDREJECT #define MASK_BUTTERWORTH_BANDREJECT IM_MASK_BUTTERWORTH_BANDREJECT
#define MASK_GAUSS_BANDPASS VIPS_MASK_GAUSS_BANDPASS #define MASK_GAUSS_BANDPASS IM_MASK_GAUSS_BANDPASS
#define MASK_GAUSS_BANDREJECT VIPS_MASK_GAUSS_BANDREJECT #define MASK_GAUSS_BANDREJECT IM_MASK_GAUSS_BANDREJECT
#define MASK_FRACTAL_FLT VIPS_MASK_FRACTAL_FLT #define MASK_FRACTAL_FLT IM_MASK_FRACTAL_FLT
#define MaskType VipsMaskType #define MaskType ImMaskType
/* Copy and swap types. /* Copy and swap types.
*/ */
typedef enum { typedef enum {
IM_ARCH_NATIVE, IM_ARCH_NATIVE,
IM_ARCH_BYTE_SWAPPED, IM_ARCH_BYTE_SWAPPED,
IM_ARCH_LSB_FIRST, IM_ARCH_LSB_FIRST,
IM_ARCH_MSB_FIRST IM_ARCH_MSB_FIRST
} im_arch_type; } im_arch_type;
 End of changes. 3 change blocks. 
22 lines changed or deleted 22 lines changed or added


 colour.h   colour.h 
skipping to change at line 96 skipping to change at line 96
#define VIPS_C_Z0 (118.2300) #define VIPS_C_Z0 (118.2300)
#define VIPS_E_X0 (100.0) #define VIPS_E_X0 (100.0)
#define VIPS_E_Y0 (100.0) #define VIPS_E_Y0 (100.0)
#define VIPS_E_Z0 (100.0) #define VIPS_E_Z0 (100.0)
#define VIPS_D3250_X0 (105.6590) #define VIPS_D3250_X0 (105.6590)
#define VIPS_D3250_Y0 (100.0) #define VIPS_D3250_Y0 (100.0)
#define VIPS_D3250_Z0 (45.8501) #define VIPS_D3250_Z0 (45.8501)
/**
* VipsIntent:
* @VIPS_INTENT_PERCEPTUAL: perceptual rendering intent
* @VIPS_INTENT_RELATIVE: relative colorimetric rendering intent
* @VIPS_INTENT_SATURATION: saturation rendering intent
* @VIPS_INTENT_ABSOLUTE: absolute colorimetric rendering intent
*
* The rendering intent. #VIPS_INTENT_ABSOLUTE is best for
* scientific work, #VIPS_INTENT_RELATIVE is usually best for
* accurate communication with other imaging libraries.
*/
typedef enum { typedef enum {
VIPS_INTENT_PERCEPTUAL = 0, VIPS_INTENT_PERCEPTUAL = 0,
VIPS_INTENT_RELATIVE, VIPS_INTENT_RELATIVE,
VIPS_INTENT_SATURATION, VIPS_INTENT_SATURATION,
VIPS_INTENT_ABSOLUTE VIPS_INTENT_ABSOLUTE
} VipsIntent; } VipsIntent;
typedef enum {
VIPS_PCS_LAB,
VIPS_PCS_XYZ,
VIPS_PCS_LAST
} VipsPCS;
gboolean vips_colourspace_issupported( const VipsImage *image ); gboolean vips_colourspace_issupported( const VipsImage *image );
int vips_colourspace( VipsImage *in, VipsImage **out, int vips_colourspace( VipsImage *in, VipsImage **out,
VipsInterpretation space, ... ) VipsInterpretation space, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_LabQ2sRGB( VipsImage *in, VipsImage **out, ... ) int vips_LabQ2sRGB( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rad2float( VipsImage *in, VipsImage **out, ... ) int vips_rad2float( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_float2rad( VipsImage *in, VipsImage **out, ... ) int vips_float2rad( VipsImage *in, VipsImage **out, ... )
 End of changes. 2 change blocks. 
11 lines changed or deleted 6 lines changed or added


 conversion.h   conversion.h 
skipping to change at line 72 skipping to change at line 72
} VipsAlign; } VipsAlign;
typedef enum { typedef enum {
VIPS_ANGLE_0, VIPS_ANGLE_0,
VIPS_ANGLE_90, VIPS_ANGLE_90,
VIPS_ANGLE_180, VIPS_ANGLE_180,
VIPS_ANGLE_270, VIPS_ANGLE_270,
VIPS_ANGLE_LAST VIPS_ANGLE_LAST
} VipsAngle; } VipsAngle;
typedef enum {
VIPS_ANGLE45_0,
VIPS_ANGLE45_45,
VIPS_ANGLE45_90,
VIPS_ANGLE45_135,
VIPS_ANGLE45_180,
VIPS_ANGLE45_225,
VIPS_ANGLE45_270,
VIPS_ANGLE45_315,
VIPS_ANGLE45_LAST
} VipsAngle45;
int vips_copy( VipsImage *in, VipsImage **out, ... ) int vips_copy( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_tilecache( VipsImage *in, VipsImage **out, ... ) int vips_tilecache( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_linecache( VipsImage *in, VipsImage **out, ... ) int vips_linecache( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_sequential( VipsImage *in, VipsImage **out, ... ) int vips_sequential( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_cache( VipsImage *in, VipsImage **out, ... ) int vips_cache( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
skipping to change at line 99 skipping to change at line 111
__attribute__((sentinel)); __attribute__((sentinel));
int vips_insert( VipsImage *main, VipsImage *sub, VipsImage **out, int vips_insert( VipsImage *main, VipsImage *sub, VipsImage **out,
int x, int y, ... ) int x, int y, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_join( VipsImage *main, VipsImage *sub, VipsImage **out, int vips_join( VipsImage *main, VipsImage *sub, VipsImage **out,
VipsDirection direction, ... ) VipsDirection direction, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_extract_area( VipsImage *input, VipsImage **output, int vips_extract_area( VipsImage *input, VipsImage **output,
int left, int top, int width, int height, ... ) int left, int top, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_crop( VipsImage *input, VipsImage **output,
int left, int top, int width, int height, ... )
__attribute__((sentinel));
int vips_extract_band( VipsImage *input, VipsImage **output, int band, ... ) int vips_extract_band( VipsImage *input, VipsImage **output, int band, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_replicate( VipsImage *in, VipsImage **out, int across, int down, . .. ) int vips_replicate( VipsImage *in, VipsImage **out, int across, int down, . .. )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_grid( VipsImage *in, VipsImage **out, int vips_grid( VipsImage *in, VipsImage **out,
int tile_height, int across, int down, ... ) int tile_height, int across, int down, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_wrap( VipsImage *in, VipsImage **out, ... ) int vips_wrap( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rot( VipsImage *in, VipsImage **out, VipsAngle angle, ... ) int vips_rot( VipsImage *in, VipsImage **out, VipsAngle angle, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rot45( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_zoom( VipsImage *in, VipsImage **out, int xfac, int yfac, ... ) int vips_zoom( VipsImage *in, VipsImage **out, int xfac, int yfac, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_subsample( VipsImage *in, VipsImage **out, int xfac, int yfac, ... ) int vips_subsample( VipsImage *in, VipsImage **out, int xfac, int yfac, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_cast( VipsImage *in, VipsImage **out, VipsBandFormat format, ... ) int vips_cast( VipsImage *in, VipsImage **out, VipsBandFormat format, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_cast_uchar( VipsImage *in, VipsImage **out, ... ) int vips_cast_uchar( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_cast_char( VipsImage *in, VipsImage **out, ... ) int vips_cast_char( VipsImage *in, VipsImage **out, ... )
skipping to change at line 146 skipping to change at line 163
__attribute__((sentinel)); __attribute__((sentinel));
int vips_scale( VipsImage *in, VipsImage **out, ... ) int vips_scale( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_msb( VipsImage *in, VipsImage **out, ... ) int vips_msb( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandjoin( VipsImage **in, VipsImage **out, int n, ... ) int vips_bandjoin( VipsImage **in, VipsImage **out, int n, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandjoin2( VipsImage *in1, VipsImage *in2, VipsImage **out, ... ) int vips_bandjoin2( VipsImage *in1, VipsImage *in2, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandmean( VipsImage *in, VipsImage **out, ... ) int vips_bandrank( VipsImage **in, VipsImage **out, int n, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandbool( VipsImage *in, VipsImage **out, int vips_bandbool( VipsImage *in, VipsImage **out,
VipsOperationBoolean operation, ... ) VipsOperationBoolean operation, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandand( VipsImage *in, VipsImage **out, ... ) int vips_bandand( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandor( VipsImage *in, VipsImage **out, ... ) int vips_bandor( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandeor( VipsImage *in, VipsImage **out, ... ) int vips_bandeor( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandmean( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_recomb( VipsImage *in, VipsImage **out, VipsImage *m, ... ) int vips_recomb( VipsImage *in, VipsImage **out, VipsImage *m, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_ifthenelse( VipsImage *cond, VipsImage *in1, VipsImage *in2, int vips_ifthenelse( VipsImage *cond, VipsImage *in1, VipsImage *in2,
VipsImage **out, ... ) VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_flatten( VipsImage *in, VipsImage **out, ... ) int vips_flatten( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_falsecolour( VipsImage *in, VipsImage **out, ... ) int vips_falsecolour( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_gammacorrect( VipsImage *in, VipsImage **out, ... ) int vips_gamma( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int im_insertset( VipsImage *main, VipsImage *sub, VipsImage *out, int n, i nt *x, int *y ); int im_insertset( VipsImage *main, VipsImage *sub, VipsImage *out, int n, i nt *x, int *y );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_CONVERSION_H*/ #endif /*VIPS_CONVERSION_H*/
 End of changes. 6 change blocks. 
2 lines changed or deleted 21 lines changed or added


 convolution.h   convolution.h 
skipping to change at line 44 skipping to change at line 44
#ifndef IM_CONVOLUTION_H #ifndef IM_CONVOLUTION_H
#define IM_CONVOLUTION_H #define IM_CONVOLUTION_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
typedef enum { typedef enum {
VIPS_PRECISION_INTEGER, VIPS_PRECISION_INTEGER,
VIPS_PRECISION_FLOAT, VIPS_PRECISION_FLOAT,
VIPS_PRECISION_APPROXIMATE VIPS_PRECISION_APPROXIMATE,
VIPS_PRECISION_LAST
} VipsPrecision; } VipsPrecision;
typedef enum {
VIPS_COMBINE_MAX,
VIPS_COMBINE_SUM,
VIPS_COMBINE_LAST
} VipsCombine;
int vips_conv( VipsImage *in, VipsImage **out, VipsImage *mask, ... ) int vips_conv( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_compass( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
__attribute__((sentinel));
int vips_convsep( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
__attribute__((sentinel));
void vips_convolution_operation_init( void ); int vips_sharpen( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int im_aconvsep( VipsImage *in, VipsImage *out, int vips_gaussblur( VipsImage *in, VipsImage **out, int radius, ... )
DOUBLEMASK *mask, int n_layers ); __attribute__((sentinel));
int im_aconv( VipsImage *in, VipsImage *out,
DOUBLEMASK *mask, int n_layers, int cluster );
int im_conv( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_conv_f( VipsImage *in, VipsImage *out, DOUBLEMASK *mask );
int im_convsep( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_convsep_f( VipsImage *in, VipsImage *out, DOUBLEMASK *mask );
int im_compass( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_gradient( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_lindetect( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_sharpen( VipsImage *in, VipsImage *out,
int mask_size,
double x1, double y2, double y3,
double m1, double m2 );
int im_grad_x( VipsImage *in, VipsImage *out );
int im_grad_y( VipsImage *in, VipsImage *out );
int im_fastcor( VipsImage *in, VipsImage *ref, VipsImage *out );
int im_spcor( VipsImage *in, VipsImage *ref, VipsImage *out );
int im_gradcor( VipsImage *in, VipsImage *ref, VipsImage *out );
int im_contrast_surface( VipsImage *in, VipsImage *out,
int half_win_size, int spacing );
int im_addgnoise( VipsImage *in, VipsImage *out, double sigma );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_CONVOLUTION_H*/ #endif /*IM_CONVOLUTION_H*/
 End of changes. 4 change blocks. 
31 lines changed or deleted 16 lines changed or added


 create.h   create.h 
skipping to change at line 41 skipping to change at line 41
*/ */
#ifndef VIPS_CREATE_H #ifndef VIPS_CREATE_H
#define VIPS_CREATE_H #define VIPS_CREATE_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
void vips_create_operation_init( void );
int vips_black( VipsImage **out, int width, int height, ... ) int vips_black( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_xyz( VipsImage **out, int width, int height, ... ) int vips_xyz( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_grey( VipsImage **out, int width, int height, ... ) int vips_grey( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_gaussmat( VipsImage **out, double sigma, double min_ampl, ... )
__attribute__((sentinel));
int vips_logmat( VipsImage **out, double sigma, double min_ampl, ... )
__attribute__((sentinel));
int vips_text( VipsImage **out, const char *text, ... ) int vips_text( VipsImage **out, const char *text, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_gaussnoise( VipsImage **out, int width, int height, ... ) int vips_gaussnoise( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_eye( VipsImage **out, int width, int height, ... ) int vips_eye( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_sines( VipsImage **out, int width, int height, ... ) int vips_sines( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
skipping to change at line 72 skipping to change at line 74
int vips_identity( VipsImage **out, ... ) int vips_identity( VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_buildlut( VipsImage *in, VipsImage **out, ... ) int vips_buildlut( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_invertlut( VipsImage *in, VipsImage **out, ... ) int vips_invertlut( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_tonelut( VipsImage **out, ... ) int vips_tonelut( VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_ideal( VipsImage **out, int width, int height,
double frequency_cutoff, ... )
__attribute__((sentinel));
int vips_mask_ideal_ring( VipsImage **out, int width, int height,
double frequency_cutoff, double ringwidth, ... )
__attribute__((sentinel));
int vips_mask_ideal_band( VipsImage **out, int width, int height,
double frequency_cutoff_x, double frequency_cutoff_y, double r, ...
)
__attribute__((sentinel));
int vips_mask_butterworth( VipsImage **out, int width, int height,
double order,
double frequency_cutoff, double amplitude_cutoff, ... )
__attribute__((sentinel));
int vips_mask_butterworth_ring( VipsImage **out, int width, int height,
double order,
double frequency_cutoff, double amplitude_cutoff,
double ringwidth, ... )
__attribute__((sentinel));
int vips_mask_butterworth_band( VipsImage **out, int width, int height,
double order,
double frequency_cutoff_x, double frequency_cutoff_y, double r,
double amplitude_cutoff, ... )
__attribute__((sentinel));
int vips_mask_gaussian( VipsImage **out, int width, int height,
double frequency_cutoff, double amplitude_cutoff, ... )
__attribute__((sentinel));
int vips_mask_gaussian_ring( VipsImage **out, int width, int height,
double frequency_cutoff, double amplitude_cutoff,
double ringwidth, ... )
__attribute__((sentinel));
int vips_mask_gaussian_band( VipsImage **out, int width, int height,
double frequency_cutoff_x, double frequency_cutoff_y, double r,
double amplitude_cutoff, ... )
__attribute__((sentinel));
int vips_mask_fractal( VipsImage **out, int width, int height,
double fractal_dimension, ... )
__attribute__((sentinel));
int vips_fractsurf( VipsImage **out,
int width, int height, double fractal_dimension, ... )
__attribute__((sentinel));
int im_benchmarkn( VipsImage *in, VipsImage *out, int n ); int im_benchmarkn( VipsImage *in, VipsImage *out, int n );
int im_benchmark2( VipsImage *in, double *out ); int im_benchmark2( VipsImage *in, double *out );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_CREATE_H*/ #endif /*VIPS_CREATE_H*/
 End of changes. 3 change blocks. 
2 lines changed or deleted 47 lines changed or added


 enumtypes.h   enumtypes.h 
skipping to change at line 50 skipping to change at line 50
#define VIPS_TYPE_OPERATION_COMPLEXGET (vips_operation_complexget_get_type( )) #define VIPS_TYPE_OPERATION_COMPLEXGET (vips_operation_complexget_get_type( ))
/* enumerations from "../../../libvips/include/vips/conversion.h" */ /* enumerations from "../../../libvips/include/vips/conversion.h" */
GType vips_extend_get_type (void) G_GNUC_CONST; GType vips_extend_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_EXTEND (vips_extend_get_type()) #define VIPS_TYPE_EXTEND (vips_extend_get_type())
GType vips_direction_get_type (void) G_GNUC_CONST; GType vips_direction_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_DIRECTION (vips_direction_get_type()) #define VIPS_TYPE_DIRECTION (vips_direction_get_type())
GType vips_align_get_type (void) G_GNUC_CONST; GType vips_align_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_ALIGN (vips_align_get_type()) #define VIPS_TYPE_ALIGN (vips_align_get_type())
GType vips_angle_get_type (void) G_GNUC_CONST; GType vips_angle_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_ANGLE (vips_angle_get_type()) #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())
/* enumerations from "../../../libvips/include/vips/util.h" */ /* enumerations from "../../../libvips/include/vips/util.h" */
GType vips_token_get_type (void) G_GNUC_CONST; GType vips_token_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_TOKEN (vips_token_get_type()) #define VIPS_TYPE_TOKEN (vips_token_get_type())
/* enumerations from "../../../libvips/include/vips/image.h" */ /* enumerations from "../../../libvips/include/vips/image.h" */
GType vips_demand_style_get_type (void) G_GNUC_CONST; GType vips_demand_style_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_DEMAND_STYLE (vips_demand_style_get_type()) #define VIPS_TYPE_DEMAND_STYLE (vips_demand_style_get_type())
GType vips_image_type_get_type (void) G_GNUC_CONST; GType vips_image_type_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_IMAGE_TYPE (vips_image_type_get_type()) #define VIPS_TYPE_IMAGE_TYPE (vips_image_type_get_type())
GType vips_interpretation_get_type (void) G_GNUC_CONST; GType vips_interpretation_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_INTERPRETATION (vips_interpretation_get_type()) #define VIPS_TYPE_INTERPRETATION (vips_interpretation_get_type())
GType vips_band_format_get_type (void) G_GNUC_CONST; GType vips_band_format_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_BAND_FORMAT (vips_band_format_get_type()) #define VIPS_TYPE_BAND_FORMAT (vips_band_format_get_type())
GType vips_coding_get_type (void) G_GNUC_CONST; GType vips_coding_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_CODING (vips_coding_get_type()) #define VIPS_TYPE_CODING (vips_coding_get_type())
GType vips_access_get_type (void) G_GNUC_CONST; GType vips_access_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_ACCESS (vips_access_get_type()) #define VIPS_TYPE_ACCESS (vips_access_get_type())
/* enumerations from "../../../libvips/include/vips/colour.h" */ /* enumerations from "../../../libvips/include/vips/colour.h" */
GType vips_intent_get_type (void) G_GNUC_CONST; GType vips_intent_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_INTENT (vips_intent_get_type()) #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" */ /* enumerations from "../../../libvips/include/vips/operation.h" */
GType vips_operation_flags_get_type (void) G_GNUC_CONST; GType vips_operation_flags_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_FLAGS (vips_operation_flags_get_type()) #define VIPS_TYPE_OPERATION_FLAGS (vips_operation_flags_get_type())
/* enumerations from "../../../libvips/include/vips/convolution.h" */ /* enumerations from "../../../libvips/include/vips/convolution.h" */
GType vips_precision_get_type (void) G_GNUC_CONST; GType vips_precision_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_PRECISION (vips_precision_get_type()) #define VIPS_TYPE_PRECISION (vips_precision_get_type())
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/object.h" */ /* enumerations from "../../../libvips/include/vips/object.h" */
GType vips_argument_flags_get_type (void) G_GNUC_CONST; GType vips_argument_flags_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_ARGUMENT_FLAGS (vips_argument_flags_get_type()) #define VIPS_TYPE_ARGUMENT_FLAGS (vips_argument_flags_get_type())
G_END_DECLS G_END_DECLS
#endif /*VIPS_ENUM_TYPES_H*/ #endif /*VIPS_ENUM_TYPES_H*/
/* Generated data ends here */ /* Generated data ends here */
 End of changes. 3 change blocks. 
0 lines changed or deleted 10 lines changed or added


 error.h   error.h 
skipping to change at line 86 skipping to change at line 86
int vips_check_uint( const char *domain, VipsImage *im ); int vips_check_uint( const char *domain, VipsImage *im );
int vips_check_uintorf( const char *domain, VipsImage *im ); int vips_check_uintorf( const char *domain, VipsImage *im );
int vips_check_noncomplex( const char *domain, VipsImage *im ); int vips_check_noncomplex( const char *domain, VipsImage *im );
int vips_check_complex( const char *domain, VipsImage *im ); int vips_check_complex( const char *domain, VipsImage *im );
int vips_check_format( const char *domain, VipsImage *im, VipsBandFormat fm t ); int vips_check_format( const char *domain, VipsImage *im, VipsBandFormat fm t );
int vips_check_u8or16( const char *domain, VipsImage *im ); int vips_check_u8or16( const char *domain, VipsImage *im );
int vips_check_8or16( const char *domain, VipsImage *im ); int vips_check_8or16( const char *domain, VipsImage *im );
int vips_check_u8or16orf( const char *domain, VipsImage *im ); int vips_check_u8or16orf( const char *domain, VipsImage *im );
int vips_check_format_same( const char *domain, VipsImage *im1, VipsImage * im2 ); int vips_check_format_same( const char *domain, VipsImage *im1, VipsImage * im2 );
int vips_check_size_same( const char *domain, VipsImage *im1, VipsImage *im 2 ); int vips_check_size_same( const char *domain, VipsImage *im1, VipsImage *im 2 );
int vips_check_oddsquare( const char *domain, VipsImage *im );
int vips_check_vector_length( const char *domain, int n, int len ); int vips_check_vector_length( const char *domain, int n, int len );
int vips_check_vector( const char *domain, int n, VipsImage *im ); int vips_check_vector( const char *domain, int n, VipsImage *im );
int vips_check_hist( const char *domain, VipsImage *im ); int vips_check_hist( const char *domain, VipsImage *im );
int vips_check_matrix( const char *domain, VipsImage *im, VipsImage **out ) ; int vips_check_matrix( const char *domain, VipsImage *im, VipsImage **out ) ;
int vips_check_separable( const char *domain, VipsImage *im );
int vips_check_imask( const char *domain, INTMASK *mask ); int vips_check_imask( const char *domain, INTMASK *mask );
int vips_check_dmask( const char *domain, DOUBLEMASK *mask ); int vips_check_dmask( const char *domain, DOUBLEMASK *mask );
int vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask ); int vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_ERROR_H*/ #endif /*VIPS_ERROR_H*/
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 foreign.h   foreign.h 
skipping to change at line 89 skipping to change at line 89
GType vips_foreign_get_type( void ); GType vips_foreign_get_type( void );
/* Map over and find formats. This uses type introspection to loop over /* Map over and find formats. This uses type introspection to loop over
* subclasses of VipsForeign. * subclasses of VipsForeign.
*/ */
void *vips_foreign_map( const char *base, void *vips_foreign_map( const char *base,
VipsSListMap2Fn fn, void *a, void *b ); VipsSListMap2Fn fn, void *a, void *b );
/* Image file load properties. /* Image file load properties.
*
* Keep in sync with the deprecated VipsFormatFlags, we need to be able to
* cast between them.
*/ */
typedef enum /*< flags >*/ { typedef enum /*< flags >*/ {
VIPS_FOREIGN_NONE = 0, /* No flags set */ VIPS_FOREIGN_NONE = 0, /* No flags set */
VIPS_FOREIGN_PARTIAL = 1, /* Lazy read OK (eg. tiled tiff) */ VIPS_FOREIGN_PARTIAL = 1, /* Lazy read OK (eg. tiled tiff) */
VIPS_FOREIGN_SEQUENTIAL = 2, /* Top-to-bottom lazy read OK */ VIPS_FOREIGN_BIGENDIAN = 2, /* Most-significant byte first */
VIPS_FOREIGN_BIGENDIAN = 4, /* Most-significant byte first */ VIPS_FOREIGN_SEQUENTIAL = 4, /* Top-to-bottom lazy read OK */
VIPS_FOREIGN_ALL = 7 /* All flags set */ VIPS_FOREIGN_ALL = 7 /* All flags set */
} VipsForeignFlags; } VipsForeignFlags;
#define VIPS_TYPE_FOREIGN_LOAD (vips_foreign_load_get_type()) #define VIPS_TYPE_FOREIGN_LOAD (vips_foreign_load_get_type())
#define VIPS_FOREIGN_LOAD( obj ) \ #define VIPS_FOREIGN_LOAD( obj ) \
(G_TYPE_CHECK_INSTANCE_CAST( (obj), \ (G_TYPE_CHECK_INSTANCE_CAST( (obj), \
VIPS_TYPE_FOREIGN_LOAD, VipsForeignLoad )) VIPS_TYPE_FOREIGN_LOAD, VipsForeignLoad ))
#define VIPS_FOREIGN_LOAD_CLASS( klass ) \ #define VIPS_FOREIGN_LOAD_CLASS( klass ) \
(G_TYPE_CHECK_CLASS_CAST( (klass), \ (G_TYPE_CHECK_CLASS_CAST( (klass), \
VIPS_TYPE_FOREIGN_LOAD, VipsForeignLoadClass)) VIPS_TYPE_FOREIGN_LOAD, VipsForeignLoadClass))
skipping to change at line 249 skipping to change at line 252
VIPS_SAVEABLE_RGB, VIPS_SAVEABLE_RGB,
VIPS_SAVEABLE_RGBA, VIPS_SAVEABLE_RGBA,
VIPS_SAVEABLE_RGB_CMYK, VIPS_SAVEABLE_RGB_CMYK,
VIPS_SAVEABLE_ANY, VIPS_SAVEABLE_ANY,
VIPS_SAVEABLE_LAST VIPS_SAVEABLE_LAST
} VipsSaveable; } VipsSaveable;
typedef struct _VipsForeignSave { typedef struct _VipsForeignSave {
VipsForeign parent_object; VipsForeign parent_object;
/* Dont't attach metadata.
*/
gboolean strip;
/*< public >*/ /*< public >*/
/* The image we are to save, as supplied by our caller. /* The image we are to save, as supplied by our caller.
*/ */
VipsImage *in; VipsImage *in;
/* @in converted to a saveable format (eg. 8-bit RGB) according to t he /* @in converted to a saveable format (eg. 8-bit RGB) according to t he
* instructions you give in the class fields below. * instructions you give in the class fields below.
* *
* This is the image you should actually write to the output. * This is the image you should actually write to the output.
skipping to change at line 424 skipping to change at line 431
int vips_csvload( const char *filename, VipsImage **out, ... ) int vips_csvload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_csvsave( VipsImage *in, const char *filename, ... ) int vips_csvsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_matrixload( const char *filename, VipsImage **out, ... ) int vips_matrixload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_matrixsave( VipsImage *in, const char *filename, ... ) int vips_matrixsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_matrixprint( VipsImage *in, ... )
__attribute__((sentinel));
int vips_magickload( const char *filename, VipsImage **out, ... ) int vips_magickload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_pngload( const char *filename, VipsImage **out, ... ) int vips_pngload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_pngload_buffer( void *buf, size_t len, VipsImage **out, ... ) int vips_pngload_buffer( void *buf, size_t len, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_pngsave( VipsImage *in, const char *filename, ... ) int vips_pngsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
 End of changes. 4 change blocks. 
2 lines changed or deleted 11 lines changed or added


 generate.h   generate.h 
skipping to change at line 76 skipping to change at line 76
void *vips_start_many( VipsImage *out, void *a, void *b ); void *vips_start_many( VipsImage *out, void *a, void *b );
int vips_stop_many( void *seq, void *a, void *b ); int vips_stop_many( void *seq, void *a, void *b );
VipsImage **vips_allocate_input_array( VipsImage *out, ... ) VipsImage **vips_allocate_input_array( VipsImage *out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_image_generate( VipsImage *im, int vips_image_generate( VipsImage *im,
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn , VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn ,
void *a, void *b void *a, void *b
); );
void vips_demand_hint_array( VipsImage *image, int vips_image_pipeline_array( VipsImage *image,
VipsDemandStyle hint, VipsImage **in ); VipsDemandStyle hint, VipsImage **in );
void vips_demand_hint( VipsImage *image, VipsDemandStyle hint, ... ) int vips_image_pipelinev( VipsImage *image, VipsDemandStyle hint, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_GENERATE_H*/ #endif /*VIPS_GENERATE_H*/
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 header.h   header.h 
skipping to change at line 121 skipping to change at line 121
double vips_image_get_scale( const VipsImage *array ); double vips_image_get_scale( const VipsImage *array );
double vips_image_get_offset( const VipsImage *array ); double vips_image_get_offset( const VipsImage *array );
void *vips_image_get_data( VipsImage *image ); void *vips_image_get_data( VipsImage *image );
void vips_image_init_fields( VipsImage *image, void vips_image_init_fields( VipsImage *image,
int xsize, int ysize, int bands, int xsize, int ysize, int bands,
VipsBandFormat format, VipsCoding coding, VipsBandFormat format, VipsCoding coding,
VipsInterpretation interpretation, VipsInterpretation interpretation,
double xres, double yres ); double xres, double yres );
int vips_image_copy_fields_array( VipsImage *out, VipsImage *in[] );
int vips_image_copy_fieldsv( VipsImage *out, VipsImage *in1, ... )
__attribute__((sentinel));
int vips_image_copy_fields( VipsImage *out, VipsImage *in );
void vips_image_set( VipsImage *image, const char *field, GValue *value ); void vips_image_set( VipsImage *image, const char *field, GValue *value );
int vips_image_get( const VipsImage *image, int vips_image_get( const VipsImage *image,
const char *field, GValue *value_copy ); const char *field, GValue *value_copy );
int vips_image_get_as_string( const VipsImage *image, int vips_image_get_as_string( const VipsImage *image,
const char *field, char **out ); const char *field, char **out );
GType vips_image_get_typeof( const VipsImage *image, const char *field ); GType vips_image_get_typeof( const VipsImage *image, const char *field );
gboolean vips_image_remove( VipsImage *image, const char *field ); gboolean vips_image_remove( VipsImage *image, const char *field );
typedef void *(*VipsImageMapFn)( VipsImage *image, typedef void *(*VipsImageMapFn)( VipsImage *image,
const char *field, GValue *value, void *a ); const char *field, GValue *value, void *a );
void *vips_image_map( VipsImage *image, VipsImageMapFn fn, void *a ); void *vips_image_map( VipsImage *image, VipsImageMapFn fn, void *a );
 End of changes. 1 change blocks. 
5 lines changed or deleted 0 lines changed or added


 image.h   image.h 
skipping to change at line 238 skipping to change at line 238
/* Extra user-defined fields ... see vips_image_get() etc. /* Extra user-defined fields ... see vips_image_get() etc.
*/ */
GHashTable *meta; /* GhashTable of GValue */ GHashTable *meta; /* GhashTable of GValue */
GSList *meta_traverse; /* traverse order for Meta */ GSList *meta_traverse; /* traverse order for Meta */
/* Part of mmap() read ... the sizeof() the header we skip from the /* Part of mmap() read ... the sizeof() the header we skip from the
* file start. Usually VIPS_SIZEOF_HEADER, but can be something else * file start. Usually VIPS_SIZEOF_HEADER, but can be something else
* for binary file read. * for binary file read.
* *
* gint64 so that we can guarantee to work even on systems with * guint64 so that we can guarantee to work even on systems with
* strange ideas about large files. * strange ideas about large files.
*/ */
guint64 sizeof_header; gint64 sizeof_header;
/* If this is a large disc image, don't map the whole thing, instead /* If this is a large disc image, don't map the whole thing, instead
* have a set of windows shared between the regions active on the * have a set of windows shared between the regions active on the
* image. List of VipsWindow. * image. List of VipsWindow.
*/ */
GSList *windows; GSList *windows;
/* Upstream/downstream relationships, built from args to /* Upstream/downstream relationships, built from args to
* vips_demand_hint(). * vips_demand_hint().
* *
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 mask.h   mask.h 
/* mask.h /* mask.h
* *
* 20/9/09 * 20/9/09
* - from proto.h * - from proto.h
*/ */
/* All deprecated.
*/
/* /*
This file is part of VIPS. This file is part of VIPS.
VIPS is free software; you can redistribute it and/or modify VIPS is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as publishe d by it under the terms of the GNU Lesser General Public License as publishe d by
the Free Software Foundation; either version 2 of the License, or the Free Software Foundation; either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
skipping to change at line 59 skipping to change at line 62
typedef struct im__DOUBLEMASK { typedef struct im__DOUBLEMASK {
int xsize; int xsize;
int ysize; int ysize;
double scale; double scale;
double offset; double offset;
double *coeff; double *coeff;
char *filename; char *filename;
} DOUBLEMASK; } DOUBLEMASK;
#define VIPS_MASK( M, X, Y ) ((M)->coeff[(X) + (Y) * (M)->xsize]) #define IM_MASK( M, X, Y ) ((M)->coeff[(X) + (Y) * (M)->xsize])
INTMASK *im_create_imask( const char *filename, int xsize, int ysize ); INTMASK *im_create_imask( const char *filename, int xsize, int ysize );
INTMASK *im_create_imaskv( const char *filename, int xsize, int ysize, ... ); INTMASK *im_create_imaskv( const char *filename, int xsize, int ysize, ... );
DOUBLEMASK *im_create_dmask( const char *filename, int xsize, int ysize ); DOUBLEMASK *im_create_dmask( const char *filename, int xsize, int ysize );
DOUBLEMASK *im_create_dmaskv( const char *filename, int xsize, int ysize, . .. ); DOUBLEMASK *im_create_dmaskv( const char *filename, int xsize, int ysize, . .. );
INTMASK *im_read_imask( const char *filename ); INTMASK *im_read_imask( const char *filename );
DOUBLEMASK *im_read_dmask( const char *filename ); DOUBLEMASK *im_read_dmask( const char *filename );
void im_print_imask( INTMASK *in ); void im_print_imask( INTMASK *in );
 End of changes. 2 change blocks. 
1 lines changed or deleted 4 lines changed or added


 morphology.h   morphology.h 
skipping to change at line 34 skipping to change at line 34
02110-1301 USA 02110-1301 USA
*/ */
/* /*
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
*/ */
#ifndef IM_MORPHOLOGY_H #ifndef VIPS_MORPHOLOGY_H
#define IM_MORPHOLOGY_H #define VIPS_MORPHOLOGY_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
int im_dilate( VipsImage *in, VipsImage *out, INTMASK *mask ); typedef enum {
int im_erode( VipsImage *in, VipsImage *out, INTMASK *mask ); VIPS_OPERATION_MORPHOLOGY_ERODE,
VIPS_OPERATION_MORPHOLOGY_DILATE,
VIPS_OPERATION_MORPHOLOGY_LAST
} VipsOperationMorphology;
int vips_morph( VipsImage *in, VipsImage **out, VipsImage *mask,
VipsOperationMorphology morph, ... )
__attribute__((sentinel));
int vips_rank( VipsImage *in, VipsImage **out,
int width, int height, int index, ... )
__attribute__((sentinel));
int vips_countlines( VipsImage *in, double *nolines,
VipsDirection direction, ... )
__attribute__((sentinel));
int vips_median( VipsImage *in, VipsImage **out, int size, ... )
__attribute__((sentinel));
int im_rank( VipsImage *in, VipsImage *out, int width, int height, int inde
x );
int im_rank_image( VipsImage **in, VipsImage *out, int n, int index );
int im_maxvalue( VipsImage **in, VipsImage *out, int n );
int im_cntlines( VipsImage *im, double *nolines, int flag );
int im_zerox( VipsImage *in, VipsImage *out, int sign );
int im_label_regions( VipsImage *test, VipsImage *mask, int *segments ); int im_label_regions( VipsImage *test, VipsImage *mask, int *segments );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_MORPHOLOGY_H*/ #endif /*VIPS_MORPHOLOGY_H*/
 End of changes. 4 change blocks. 
11 lines changed or deleted 19 lines changed or added


 operation.h   operation.h 
skipping to change at line 77 skipping to change at line 77
/* When we added this operation to cache .. used to find LRU for /* When we added this operation to cache .. used to find LRU for
* flush. * flush.
*/ */
int time; int time;
/* Keep the hash here. /* Keep the hash here.
*/ */
guint hash; guint hash;
gboolean found_hash; gboolean found_hash;
/* Pixels calculated ... handy for measuring over-calculation.
*/
int pixels;
} VipsOperation; } VipsOperation;
typedef struct _VipsOperationClass { typedef struct _VipsOperationClass {
VipsObjectClass parent_class; VipsObjectClass parent_class;
/* Print the usage message. /* Print the usage message.
*/ */
void (*usage)( struct _VipsOperationClass *, VipsBuf * ); void (*usage)( struct _VipsOperationClass *, VipsBuf * );
/* Return a set of operation flags. /* Return a set of operation flags.
 End of changes. 1 change blocks. 
0 lines changed or deleted 4 lines changed or added


 private.h   private.h 
skipping to change at line 59 skipping to change at line 59
/* Private to iofuncs: add at least this many bytes above and below the win dow. /* Private to iofuncs: add at least this many bytes above and below the win dow.
* There's no point mapping just a few KB of a small image. * There's no point mapping just a few KB of a small image.
*/ */
#define VIPS__WINDOW_MARGIN_BYTES (1024 * 1024 * 10) #define VIPS__WINDOW_MARGIN_BYTES (1024 * 1024 * 10)
/* sizeof() a VIPS header on disc. /* sizeof() a VIPS header on disc.
*/ */
#define VIPS_SIZEOF_HEADER (64) #define VIPS_SIZEOF_HEADER (64)
/* Startup plus ABI check.
*/
int vips__init( const char *argv0 );
size_t vips__get_sizeof_vipsobject( void );
/* What we track for each mmap window. Have a list of these on an openin /* What we track for each mmap window. Have a list of these on an openin
* VipsImage. * VipsImage.
*/ */
typedef struct { typedef struct {
int ref_count; /* # of regions referencing us */ int ref_count; /* # of regions referencing us */
struct _VipsImage *im; /* VipsImage we are attached to */ struct _VipsImage *im; /* VipsImage we are attached to */
int top; /* Area of image we have mapped, in pixels * / int top; /* Area of image we have mapped, in pixels * /
int height; int height;
VipsPel *data; /* First pixel of line 'top' */ VipsPel *data; /* First pixel of line 'top' */
skipping to change at line 80 skipping to change at line 85
void *baseaddr; /* Base of window */ void *baseaddr; /* Base of window */
size_t length; /* Size of window */ size_t length; /* Size of window */
} VipsWindow; } VipsWindow;
/* window manager. /* window manager.
*/ */
VipsWindow *vips_window_ref( struct _VipsImage *im, int top, int height ); VipsWindow *vips_window_ref( struct _VipsImage *im, int top, int height );
int vips_window_unref( VipsWindow *window ); int vips_window_unref( VipsWindow *window );
void vips_window_print( VipsWindow *window ); void vips_window_print( VipsWindow *window );
/* Per-thread buffer cache. Held in a GPrivate. /* Per-thread buffer state. Held in a GPrivate.
*/ */
typedef struct { typedef struct {
GHashTable *hash; /* Hash to VipsBufferCacheList* */ GHashTable *hash; /* VipsImage -> VipsBufferCache* */
GThread *thread; /* Just for sanity checking */ GThread *thread; /* Just for sanity checking */
} VipsBufferCache; } VipsBufferThread;
/* Per-image buffer cache. Hash to this from VipsBufferCache. /* Per-image buffer cache. Hash to this from VipsBufferCache.
* We can't store the GSList directly in the hash table, as GHashTable lack s an * We can't store the GSList directly in the hash table, as GHashTable lack s an
* update operation and we'd need to _remove() and _insert() on every list * update operation and we'd need to _remove() and _insert() on every list
* operation. * operation.
*/ */
typedef struct _VipsBufferCacheList { typedef struct _VipsBufferCache {
GSList *buffers; /* GSList of VipsBuffer* */ GSList *buffers; /* GSList of VipsBuffer* */
GThread *thread; /* Just for sanity checking */ GThread *thread; /* Just for sanity checking */
struct _VipsImage *im; struct _VipsImage *im;
VipsBufferCache *cache; VipsBufferThread *buffer_thread;
} VipsBufferCacheList; GSList *reserve; /* VipsBuffer kept in reserve */
int n_reserve; /* Number in reserve */
} VipsBufferCache;
/* What we track for each pixel buffer. /* What we track for each pixel buffer. These can move between caches and
* between threads, but not between images.
*/ */
typedef struct _VipsBuffer { typedef struct _VipsBuffer {
int ref_count; /* # of regions referencing us */ int ref_count; /* # of regions referencing us */
struct _VipsImage *im; /* VipsImage we are attached to */ struct _VipsImage *im; /* VipsImage we are attached to */
VipsRect area; /* Area this pixel buffer covers */ VipsRect area; /* Area this pixel buffer covers */
gboolean done; /* Calculated and in cache */ gboolean done; /* Calculated and in cache */
VipsBufferCache *cache; VipsBufferCache *cache; /* The cache this buffer is published on */
VipsPel *buf; /* Private malloc() area */ VipsPel *buf; /* Private malloc() area */
size_t bsize; /* Size of private malloc() */ size_t bsize; /* Size of private malloc() */
} VipsBuffer; } VipsBuffer;
void vips_buffer_dump_all( void );
void vips_buffer_done( VipsBuffer *buffer ); void vips_buffer_done( VipsBuffer *buffer );
void vips_buffer_undone( VipsBuffer *buffer ); void vips_buffer_undone( VipsBuffer *buffer );
void vips_buffer_unref( VipsBuffer *buffer ); void vips_buffer_unref( VipsBuffer *buffer );
VipsBuffer *vips_buffer_new( struct _VipsImage *im, VipsRect *area ); VipsBuffer *vips_buffer_new( struct _VipsImage *im, VipsRect *area );
VipsBuffer *vips_buffer_ref( struct _VipsImage *im, VipsRect *area ); VipsBuffer *vips_buffer_ref( struct _VipsImage *im, VipsRect *area );
VipsBuffer *vips_buffer_unref_ref( VipsBuffer *buffer, VipsBuffer *vips_buffer_unref_ref( VipsBuffer *buffer,
struct _VipsImage *im, VipsRect *area ); struct _VipsImage *im, VipsRect *area );
void vips_buffer_print( VipsBuffer *buffer ); void vips_buffer_print( VipsBuffer *buffer );
/* Sections of region.h that are private to VIPS. /* Sections of region.h that are private to VIPS.
skipping to change at line 152 skipping to change at line 161
#define VIPS__THINSTRIP_HEIGHT (1) #define VIPS__THINSTRIP_HEIGHT (1)
#define VIPS__FATSTRIP_HEIGHT (16) #define VIPS__FATSTRIP_HEIGHT (16)
/* Functions on regions. /* Functions on regions.
*/ */
struct _VipsRegion; struct _VipsRegion;
void vips__region_take_ownership( struct _VipsRegion *reg ); void vips__region_take_ownership( struct _VipsRegion *reg );
void vips__region_check_ownership( struct _VipsRegion *reg ); void vips__region_check_ownership( struct _VipsRegion *reg );
void vips__region_no_ownership( struct _VipsRegion *reg ); void vips__region_no_ownership( struct _VipsRegion *reg );
int vips__region_start( struct _VipsRegion *reg );
void vips__region_stop( struct _VipsRegion *reg );
typedef int (*VipsRegionFillFn)( struct _VipsRegion *, void * ); typedef int (*VipsRegionFillFn)( struct _VipsRegion *, void * );
int vips_region_fill( struct _VipsRegion *reg, int vips_region_fill( struct _VipsRegion *reg,
VipsRect *r, VipsRegionFillFn fn, void *a ); VipsRect *r, VipsRegionFillFn fn, void *a );
int vips__image_wio_output( struct _VipsImage *image ); int vips__image_wio_output( struct _VipsImage *image );
int vips__image_pio_output( struct _VipsImage *image ); int vips__image_pio_output( struct _VipsImage *image );
VipsArgumentInstance *vips__argument_get_instance( VipsArgumentInstance *vips__argument_get_instance(
VipsArgumentClass *argument_class, VipsArgumentClass *argument_class,
VipsObject *object); VipsObject *object);
VipsArgument *vips__argument_table_lookup( VipsArgumentTable *table, VipsArgument *vips__argument_table_lookup( VipsArgumentTable *table,
GParamSpec *pspec); GParamSpec *pspec);
void vips__demand_hint_array( struct _VipsImage *image,
int hint, struct _VipsImage **in );
int vips__image_copy_fields_array( struct _VipsImage *out,
struct _VipsImage *in[] );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_PRIVATE_H*/ #endif /*VIPS_PRIVATE_H*/
 End of changes. 11 change blocks. 
11 lines changed or deleted 22 lines changed or added


 region.h   region.h 
skipping to change at line 123 skipping to change at line 123
void vips_region_paint_pel( VipsRegion *reg, VipsRect *r, VipsPel *ink ); void vips_region_paint_pel( VipsRegion *reg, VipsRect *r, VipsPel *ink );
void vips_region_black( VipsRegion *reg ); void vips_region_black( VipsRegion *reg );
void vips_region_copy( VipsRegion *reg, VipsRegion *dest, void vips_region_copy( VipsRegion *reg, VipsRegion *dest,
VipsRect *r, int x, int y ); VipsRect *r, int x, int y );
int vips_region_prepare( VipsRegion *reg, VipsRect *r ); int vips_region_prepare( VipsRegion *reg, VipsRect *r );
int vips_region_prepare_to( VipsRegion *reg, int vips_region_prepare_to( VipsRegion *reg,
VipsRegion *dest, VipsRect *r, int x, int y ); VipsRegion *dest, VipsRect *r, int x, int y );
int vips_region_prepare_many( VipsRegion **reg, VipsRect *r ); int vips_region_prepare_many( VipsRegion **reg, VipsRect *r );
void vips_region_dump_all( void );
/* Macros on VipsRegion. /* Macros on VipsRegion.
* VIPS_REGION_LSKIP() add to move down line * VIPS_REGION_LSKIP() add to move down line
* VIPS_REGION_N_ELEMENTS() number of elements across region * VIPS_REGION_N_ELEMENTS() number of elements across region
* VIPS_REGION_SIZEOF_LINE() sizeof width of region * VIPS_REGION_SIZEOF_LINE() sizeof width of region
* VIPS_REGION_ADDR() address of pixel in region * VIPS_REGION_ADDR() address of pixel in region
*/ */
#define VIPS_REGION_LSKIP( R ) \ #define VIPS_REGION_LSKIP( R ) \
((size_t)((R)->bpl)) ((size_t)((R)->bpl))
#define VIPS_REGION_N_ELEMENTS( R ) \ #define VIPS_REGION_N_ELEMENTS( R ) \
((size_t)((R)->valid.width * (R)->im->Bands)) ((size_t)((R)->valid.width * (R)->im->Bands))
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 version.h   version.h 
/* Macros for the header version. /* Macros for the header version.
*/ */
#ifndef VIPS_VERSION_H #ifndef VIPS_VERSION_H
#define VIPS_VERSION_H #define VIPS_VERSION_H
#define VIPS_VERSION "7.36.5" #define VIPS_VERSION "7.38.0"
#define VIPS_VERSION_STRING "7.36.5-Mon Jan 20 17:15:17 MSK 2014" #define VIPS_VERSION_STRING "7.38.0-Mon Jan 20 16:59:43 MSK 2014"
#define VIPS_MAJOR_VERSION (7) #define VIPS_MAJOR_VERSION (7)
#define VIPS_MINOR_VERSION (36) #define VIPS_MINOR_VERSION (38)
#define VIPS_MICRO_VERSION (5) #define VIPS_MICRO_VERSION (0)
/* Not really anything to do with versions, but this is a handy place to pu t /* Not really anything to do with versions, but this is a handy place to pu t
* it. * it.
*/ */
#define VIPS_EXEEXT "" #define VIPS_EXEEXT ""
#endif /*VIPS_VERSION_H*/ #endif /*VIPS_VERSION_H*/
 End of changes. 2 change blocks. 
4 lines changed or deleted 4 lines changed or added


 vips.h   vips.h 
skipping to change at line 104 skipping to change at line 104
# define __attribute__(x) /*NOTHING*/ # define __attribute__(x) /*NOTHING*/
# endif # endif
#endif /*SWIG*/ #endif /*SWIG*/
#include <vips/basic.h> #include <vips/basic.h>
#include <vips/buf.h> #include <vips/buf.h>
#include <vips/util.h> #include <vips/util.h>
#include <vips/object.h> #include <vips/object.h>
#include <vips/type.h> #include <vips/type.h>
#include <vips/gate.h>
#include <vips/version.h> #include <vips/version.h>
#include <vips/rect.h> #include <vips/rect.h>
#include <vips/private.h> #include <vips/private.h>
#include <vips/mask.h> #include <vips/mask.h>
#include <vips/image.h> #include <vips/image.h>
#include <vips/memory.h> #include <vips/memory.h>
#include <vips/error.h> #include <vips/error.h>
skipping to change at line 133 skipping to change at line 134
#include <vips/enumtypes.h> #include <vips/enumtypes.h>
#include <vips/arithmetic.h> #include <vips/arithmetic.h>
#include <vips/relational.h> #include <vips/relational.h>
#include <vips/conversion.h> #include <vips/conversion.h>
#include <vips/convolution.h> #include <vips/convolution.h>
#include <vips/morphology.h> #include <vips/morphology.h>
#include <vips/mosaicing.h> #include <vips/mosaicing.h>
#include <vips/histogram.h> #include <vips/histogram.h>
#include <vips/freq_filt.h> #include <vips/freqfilt.h>
#include <vips/resample.h> #include <vips/resample.h>
#include <vips/colour.h> #include <vips/colour.h>
#include <vips/inplace.h> #include <vips/inplace.h>
#include <vips/create.h> #include <vips/create.h>
#include <vips/video.h> #include <vips/video.h>
#include <vips/cimg_funcs.h> #include <vips/cimg_funcs.h>
#ifndef VIPS_DISABLE_VIPS7COMPAT #ifndef VIPS_DISABLE_VIPS7COMPAT
#include <vips/vips7compat.h> #include <vips/vips7compat.h>
#endif /*VIPS_DISABLE_VIPS7COMPAT*/ #endif /*VIPS_DISABLE_VIPS7COMPAT*/
#ifdef VIPS_ENABLE_DEPRECATED #ifdef VIPS_ENABLE_DEPRECATED
#include <vips/deprecated.h> #include <vips/deprecated.h>
#endif /*VIPS_ENABLE_DEPRECATED*/ #endif /*VIPS_ENABLE_DEPRECATED*/
#include <vips/almostdeprecated.h> #include <vips/almostdeprecated.h>
#include <vips/dispatch.h> #include <vips/dispatch.h>
/* We can't use _ here since this will be compiled by our clients and they
may
* not have _().
*/
#define vips_init( ARGV0 ) \
(sizeof( VipsObject ) != vips__get_sizeof_vipsobject() ? ( \
vips_info( "vips_init", "ABI mismatch" ), \
vips_info( "vips_init", \
"library has sizeof(VipsObject) == %zd", \
vips__get_sizeof_vipsobject() ), \
vips_info( "vips_init", \
"application has sizeof(VipsObject) == %zd", \
sizeof( VipsObject ) ), \
vips_error( "vips_init", "ABI mismatch" ), \
-1 ) : \
vips__init( ARGV0 ))
const char *vips_get_argv0( void ); const char *vips_get_argv0( void );
int vips_init( const char *argv0 );
void vips_check_init( void ); void vips_check_init( void );
void vips_shutdown( void ); void vips_shutdown( void );
void vips_thread_shutdown( void );
GOptionGroup *vips_get_option_group( void ); GOptionGroup *vips_get_option_group( void );
const char *vips_version_string( void ); const char *vips_version_string( void );
int vips_version( int flag ); int vips_version( int flag );
const char *vips_guess_prefix( const char *argv0, const char *env_name ); const char *vips_guess_prefix( const char *argv0, const char *env_name );
const char *vips_guess_libdir( const char *argv0, const char *env_name ); const char *vips_guess_libdir( const char *argv0, const char *env_name );
#ifdef __cplusplus #ifdef __cplusplus
} }
 End of changes. 5 change blocks. 
2 lines changed or deleted 20 lines changed or added


 vips7compat.h   vips7compat.h 
skipping to change at line 211 skipping to change at line 211
#define error_exit vips_error_exit #define error_exit vips_error_exit
#define im_get_argv0 vips_get_argv0 #define im_get_argv0 vips_get_argv0
#define im_version_string vips_version_string #define im_version_string vips_version_string
#define im_version vips_version #define im_version vips_version
#define im_get_option_group vips_get_option_group #define im_get_option_group vips_get_option_group
#define im_guess_prefix vips_guess_prefix #define im_guess_prefix vips_guess_prefix
#define im_guess_libdir vips_guess_libdir #define im_guess_libdir vips_guess_libdir
#define im__global_lock vips__global_lock #define im__global_lock vips__global_lock
#define im_cp_desc vips_image_copy_fields int im_cp_desc(IMAGE *out, IMAGE *in );
#define im_cp_descv vips_image_copy_fieldsv int im_cp_descv (IMAGE * im, ...);
#define im_cp_desc_array vips_image_copy_fields_array #define im_cp_desc_array(I, A) vips__image_copy_fields_array(I, A)
int im_demand_hint (IMAGE * im, VipsDemandStyle hint, ...);
#define im_demand_hint_array( A, B, C ) (vips__demand_hint_array( A, B, C )
, 0)
#define im_image vips_image_new_from_memory #define im_image vips_image_new_from_memory
#define im_binfile vips_image_new_from_file_raw #define im_binfile vips_image_new_from_file_raw
#define im__open_temp vips_image_new_temp_file #define im__open_temp vips_image_new_temp_file
#define im__test_kill( I ) (vips_image_get_kill( I )) #define im__test_kill( I ) (vips_image_get_kill( I ))
#define im__start_eval( I ) (vips_image_preeval( I ), vips_image_get_kill( I )) #define im__start_eval( I ) (vips_image_preeval( I ), vips_image_get_kill( I ))
#define im__handle_eval( I, W, H ) \ #define im__handle_eval( I, W, H ) \
(vips_image_eval( I, W, H ), vips_image_get_kill( I )) (vips_image_eval( I, W, H ), vips_image_get_kill( I ))
#define im__end_eval vips_image_posteval #define im__end_eval vips_image_posteval
#define im_invalidate vips_image_invalidate_all #define im_invalidate vips_image_invalidate_all
#define im_isfile vips_image_isfile #define im_isfile vips_image_isfile
skipping to change at line 329 skipping to change at line 332
#define im_rect_marginadjust vips_rect_marginadjust #define im_rect_marginadjust vips_rect_marginadjust
#define im_rect_includespoint vips_rect_includespoint #define im_rect_includespoint vips_rect_includespoint
#define im_rect_includesrect vips_rect_includesrect #define im_rect_includesrect vips_rect_includesrect
#define im_rect_intersectrect vips_rect_intersectrect #define im_rect_intersectrect vips_rect_intersectrect
#define im_rect_isempty vips_rect_isempty #define im_rect_isempty vips_rect_isempty
#define im_rect_unionrect vips_rect_unionrect #define im_rect_unionrect vips_rect_unionrect
#define im_rect_equalsrect vips_rect_equalsrect #define im_rect_equalsrect vips_rect_equalsrect
#define im_rect_dup vips_rect_dup #define im_rect_dup vips_rect_dup
#define im_rect_normalise vips_rect_normalise #define im_rect_normalise vips_rect_normalise
int im_demand_hint (IMAGE * im, VipsDemandStyle hint, ...);
#define im_demand_hint_array( A, B, C ) (vips_demand_hint_array( A, B, C ),
0)
#define im_start_one vips_start_one #define im_start_one vips_start_one
#define im_stop_one vips_stop_one #define im_stop_one vips_stop_one
#define im_start_many vips_start_many #define im_start_many vips_start_many
#define im_stop_many vips_stop_many #define im_stop_many vips_stop_many
#define im_allocate_input_array vips_allocate_input_array #define im_allocate_input_array vips_allocate_input_array
#define im_start_fn VipsStartFn #define im_start_fn VipsStartFn
typedef int (*im_generate_fn)( VipsRegion *out, void *seq, void *a, void *b ); typedef int (*im_generate_fn)( VipsRegion *out, void *seq, void *a, void *b );
#define im_stop_fn VipsStopFn #define im_stop_fn VipsStopFn
int im_generate( VipsImage *im, int im_generate( VipsImage *im,
im_start_fn start, im_generate_fn generate, im_stop_fn stop, im_start_fn start, im_generate_fn generate, im_stop_fn stop,
skipping to change at line 590 skipping to change at line 590
#define IM_MINOR_VERSION VIPS_MINOR_VERSION #define IM_MINOR_VERSION VIPS_MINOR_VERSION
#define IM_MICRO_VERSION VIPS_MICRO_VERSION #define IM_MICRO_VERSION VIPS_MICRO_VERSION
#define IM_EXEEXT VIPS_EXEEXT #define IM_EXEEXT VIPS_EXEEXT
#define IM_SIZEOF_HEADER VIPS_SIZEOF_HEADER #define IM_SIZEOF_HEADER VIPS_SIZEOF_HEADER
#define im_concurrency_set vips_concurrency_set #define im_concurrency_set vips_concurrency_set
#define im_concurrency_get vips_concurrency_get #define im_concurrency_get vips_concurrency_get
int im_init_world( const char *argv0 );
int im_add( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_add( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_subtract( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_subtract( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_multiply( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_multiply( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_divide( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_divide( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_min( VipsImage *in, double *out ); int im_min( VipsImage *in, double *out );
int im_minpos( VipsImage *in, int *xpos, int *ypos, double *out ); int im_minpos( VipsImage *in, int *xpos, int *ypos, double *out );
int im_max( VipsImage *in, double *out ); int im_max( VipsImage *in, double *out );
int im_maxpos( VipsImage *in, int *xpos, int *ypos, double *out ); int im_maxpos( VipsImage *in, int *xpos, int *ypos, double *out );
int im_avg( VipsImage *in, double *out ); int im_avg( VipsImage *in, double *out );
int im_deviate( VipsImage *in, double *out ); int im_deviate( VipsImage *in, double *out );
skipping to change at line 715 skipping to change at line 717
int im_extract_band( VipsImage *in, VipsImage *out, int band ); int im_extract_band( VipsImage *in, VipsImage *out, int band );
int im_extract_bands( VipsImage *in, VipsImage *out, int band, int nbands ) ; int im_extract_bands( VipsImage *in, VipsImage *out, int band, int nbands ) ;
int im_extract_areabands( VipsImage *in, VipsImage *out, int im_extract_areabands( VipsImage *in, VipsImage *out,
int left, int top, int width, int height, int band, int nbands ); int left, int top, int width, int height, int band, int nbands );
int im_replicate( VipsImage *in, VipsImage *out, int across, int down ); int im_replicate( VipsImage *in, VipsImage *out, int across, int down );
int im_wrap( VipsImage *in, VipsImage *out, int x, int y ); int im_wrap( VipsImage *in, VipsImage *out, int x, int y );
int im_rotquad( VipsImage *in, VipsImage *out ); int im_rotquad( VipsImage *in, VipsImage *out );
int im_clip2fmt( VipsImage *in, VipsImage *out, VipsBandFormat fmt ); int im_clip2fmt( VipsImage *in, VipsImage *out, VipsBandFormat fmt );
int im_bandjoin( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_bandjoin( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_gbandjoin( VipsImage **in, VipsImage *out, int n ); int im_gbandjoin( VipsImage **in, VipsImage *out, int n );
int im_rank_image( VipsImage **in, VipsImage *out, int n, int index );
int im_maxvalue( VipsImage **in, VipsImage *out, int n );
int im_grid( VipsImage *in, VipsImage *out, int tile_height, int across, in t down ); int im_grid( VipsImage *in, VipsImage *out, int tile_height, int across, in t down );
int im_scale( VipsImage *in, VipsImage *out ); int im_scale( VipsImage *in, VipsImage *out );
int im_scaleps( VipsImage *in, VipsImage *out ); int im_scaleps( VipsImage *in, VipsImage *out );
int im_msb( VipsImage *in, VipsImage *out ); int im_msb( VipsImage *in, VipsImage *out );
int im_msb_band( VipsImage *in, VipsImage *out, int band ); int im_msb_band( VipsImage *in, VipsImage *out, int band );
int im_zoom( VipsImage *in, VipsImage *out, int xfac, int yfac ); int im_zoom( VipsImage *in, VipsImage *out, int xfac, int yfac );
int im_subsample( VipsImage *in, VipsImage *out, int xshrink, int yshrink ) ; int im_subsample( VipsImage *in, VipsImage *out, int xshrink, int yshrink ) ;
int im_gaussnoise( VipsImage *out, int x, int y, double mean, double sigma ); int im_gaussnoise( VipsImage *out, int x, int y, double mean, double sigma );
int im_text( VipsImage *out, const char *text, const char *font, int im_text( VipsImage *out, const char *text, const char *font,
skipping to change at line 772 skipping to change at line 776
int im_rot90( VipsImage *in, VipsImage *out ); int im_rot90( VipsImage *in, VipsImage *out );
int im_rot180( VipsImage *in, VipsImage *out ); int im_rot180( VipsImage *in, VipsImage *out );
int im_rot270( VipsImage *in, VipsImage *out ); int im_rot270( VipsImage *in, VipsImage *out );
int im_ifthenelse( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out ); int im_ifthenelse( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out );
int im_blend( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out ); int im_blend( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out );
DOUBLEMASK *im_vips2mask( VipsImage *in, const char *filename ); DOUBLEMASK *im_vips2mask( VipsImage *in, const char *filename );
INTMASK *im_vips2imask( IMAGE *in, const char *filename ); INTMASK *im_vips2imask( IMAGE *in, const char *filename );
int im_mask2vips( DOUBLEMASK *in, VipsImage *out ); int im_mask2vips( DOUBLEMASK *in, VipsImage *out );
int im_imask2vips( INTMASK *in, VipsImage *out );
int im_bandmean( VipsImage *in, VipsImage *out ); int im_bandmean( VipsImage *in, VipsImage *out );
int im_recomb( VipsImage *in, VipsImage *out, DOUBLEMASK *recomb ); int im_recomb( VipsImage *in, VipsImage *out, DOUBLEMASK *recomb );
int im_argb2rgba( VipsImage *in, VipsImage *out ); int im_argb2rgba( VipsImage *in, VipsImage *out );
int im_falsecolour( VipsImage *in, VipsImage *out ); int im_falsecolour( VipsImage *in, VipsImage *out );
int im_gammacorrect( VipsImage *in, VipsImage *out, double exponent ); int im_gammacorrect( VipsImage *in, VipsImage *out, double exponent );
int im_shrink( VipsImage *in, VipsImage *out, double xshrink, double yshrin k ); int im_shrink( VipsImage *in, VipsImage *out, double xshrink, double yshrin k );
skipping to change at line 898 skipping to change at line 903
/* Not really correct, but who uses these. /* Not really correct, but who uses these.
*/ */
#define im_lhisteq_raw im_lhisteq #define im_lhisteq_raw im_lhisteq
#define im_stdif_raw im_stdif #define im_stdif_raw im_stdif
/* ruby-vips uses this /* ruby-vips uses this
*/ */
#define vips_class_map_concrete_all vips_class_map_all #define vips_class_map_concrete_all vips_class_map_all
int im_dilate( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_erode( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_aconv( VipsImage *in, VipsImage *out,
DOUBLEMASK *mask, int n_layers, int cluster );
int im_conv( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_conv_f( VipsImage *in, VipsImage *out, DOUBLEMASK *mask );
int im_aconvsep( VipsImage *in, VipsImage *out,
DOUBLEMASK *mask, int n_layers );
int im_convsep( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_convsep_f( VipsImage *in, VipsImage *out, DOUBLEMASK *mask );
int im_compass( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_gradient( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_lindetect( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_addgnoise( VipsImage *in, VipsImage *out, double sigma );
int im_contrast_surface_raw( IMAGE *in, IMAGE *out,
int half_win_size, int spacing );
int im_contrast_surface( VipsImage *in, VipsImage *out,
int half_win_size, int spacing );
int im_grad_x( VipsImage *in, VipsImage *out );
int im_grad_y( VipsImage *in, VipsImage *out );
int im_fastcor( VipsImage *in, VipsImage *ref, VipsImage *out );
int im_spcor( VipsImage *in, VipsImage *ref, VipsImage *out );
int im_gradcor( VipsImage *in, VipsImage *ref, VipsImage *out );
int im_sharpen( VipsImage *in, VipsImage *out,
int mask_size,
double x1, double y2, double y3,
double m1, double m2 );
typedef enum {
IM_MASK_IDEAL_HIGHPASS = 0,
IM_MASK_IDEAL_LOWPASS = 1,
IM_MASK_BUTTERWORTH_HIGHPASS = 2,
IM_MASK_BUTTERWORTH_LOWPASS = 3,
IM_MASK_GAUSS_HIGHPASS = 4,
IM_MASK_GAUSS_LOWPASS = 5,
IM_MASK_IDEAL_RINGPASS = 6,
IM_MASK_IDEAL_RINGREJECT = 7,
IM_MASK_BUTTERWORTH_RINGPASS = 8,
IM_MASK_BUTTERWORTH_RINGREJECT = 9,
IM_MASK_GAUSS_RINGPASS = 10,
IM_MASK_GAUSS_RINGREJECT = 11,
IM_MASK_IDEAL_BANDPASS = 12,
IM_MASK_IDEAL_BANDREJECT = 13,
IM_MASK_BUTTERWORTH_BANDPASS = 14,
IM_MASK_BUTTERWORTH_BANDREJECT = 15,
IM_MASK_GAUSS_BANDPASS = 16,
IM_MASK_GAUSS_BANDREJECT = 17,
IM_MASK_FRACTAL_FLT = 18
} ImMaskType;
int im_flt_image_freq( VipsImage *in, VipsImage *out, ImMaskType flag, ...
);
int im_create_fmask( VipsImage *out,
int xsize, int ysize, ImMaskType flag, ... );
int im_fwfft( VipsImage *in, VipsImage *out );
int im_invfft( VipsImage *in, VipsImage *out );
int im_invfftr( VipsImage *in, VipsImage *out );
int im_freqflt( VipsImage *in, VipsImage *mask, VipsImage *out );
int im_disp_ps( VipsImage *in, VipsImage *out );
int im_fractsurf( VipsImage *out, int size, double frd );
int im_phasecor_fft( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_cntlines( VipsImage *im, double *nolines, int flag );
int im_rank( VipsImage *in, VipsImage *out, int width, int height, int inde
x );
int im_zerox( VipsImage *in, VipsImage *out, int sign );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_VIPS7COMPAT_H*/ #endif /*VIPS_VIPS7COMPAT_H*/
 End of changes. 6 change blocks. 
7 lines changed or deleted 93 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/