VImage.h   VImage.h 
skipping to change at line 194 skipping to change at line 194
enum TCompression { enum TCompression {
NO_COMPRESSION = 0, NO_COMPRESSION = 0,
TCSF_COMPRESSION = 1, TCSF_COMPRESSION = 1,
JPEG_COMPRESSION = 2 JPEG_COMPRESSION = 2
}; };
/* Start of wrappers for iofuncs. /* Start of wrappers for iofuncs.
*/ */
// Plain constructors // Plain constructors
VImage( const char *name, const char *mode = "r" ) throw( VError ); VImage( const char *name, const char *mode = "rd" ) throw( VError );
VImage( void *data, int width, int height, VImage( void *data, int width, int height,
int bands, TBandFmt format ) throw( VError ); int bands, TBandFmt format ) throw( VError );
VImage( _VipsImage *image ); VImage( _VipsImage *image );
VImage() throw( VError ); VImage() throw( VError );
// Convert to a disc file, eg: // Convert to a disc file, eg:
// VImage fred = VImage::convert2disc( "im_jpeg2vips", // VImage fred = VImage::convert2disc( "im_jpeg2vips",
// "file.jpg", "temp.v" ); // "file.jpg", "temp.v" );
// Runs im_jpeg2vips to the temp file, then opens that and returns // Runs im_jpeg2vips to the temp file, then opens that and returns
// it. Useful for opening very large files without using a lot of RA M. // it. Useful for opening very large files without using a lot of RA M.
// Now superceeded by the format API, though that's not yet wrapped in // Now superseded by the format API, though that's not yet wrapped i n
// C++ // C++
// Also replaced by the new default "rd" mode
static VImage convert2disc( const char* convert, static VImage convert2disc( const char* convert,
const char* in, const char* disc ) throw( VError ); const char* in, const char* disc ) throw( VError );
// Copy constructor // Copy constructor
VImage( const VImage &a ); VImage( const VImage &a );
// Assignment - delete old ref // Assignment - delete old ref
VImage &operator=( const VImage &a ) throw( VError ); VImage &operator=( const VImage &a ) throw( VError );
// Destructor // Destructor
 End of changes. 3 change blocks. 
2 lines changed or deleted 3 lines changed or added


 almostdeprecated.h   almostdeprecated.h 
skipping to change at line 209 skipping to change at line 209
int im_thresh( IMAGE *in, IMAGE *out, double ); int im_thresh( IMAGE *in, IMAGE *out, double );
int im_print( const char *message ); int im_print( const char *message );
int im_convsub( IMAGE *in, IMAGE *out, INTMASK *mask, int xskip, int yskip ); int im_convsub( IMAGE *in, IMAGE *out, INTMASK *mask, int xskip, int yskip );
int im_bernd( const char *tiffname, int x, int y, int w, int h ); int im_bernd( const char *tiffname, int x, int y, int w, int h );
int im_resize_linear( IMAGE *, IMAGE *, int, int ); int im_resize_linear( IMAGE *, IMAGE *, int, int );
int im_line( IMAGE *, int, int, int, int, int );
int im_segment( IMAGE *test, IMAGE *mask, int *segments );
int im_convf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ); int im_convf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
int im_convsepf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ); int im_convsepf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
int im_conv_raw( IMAGE *in, IMAGE *out, INTMASK *mask ); int im_conv_raw( IMAGE *in, IMAGE *out, INTMASK *mask );
int im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ); int im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
int im_convsep_raw( IMAGE *in, IMAGE *out, INTMASK *mask ); int im_convsep_raw( IMAGE *in, IMAGE *out, INTMASK *mask );
int im_convsepf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ); int im_convsepf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
int im_fastcor_raw( IMAGE *in, IMAGE *ref, IMAGE *out ); int im_fastcor_raw( IMAGE *in, IMAGE *ref, IMAGE *out );
int im_spcor_raw( IMAGE *in, IMAGE *ref, IMAGE *out ); int im_spcor_raw( IMAGE *in, IMAGE *ref, IMAGE *out );
int im_gradcor_raw( IMAGE *in, IMAGE *ref, IMAGE *out ); int im_gradcor_raw( IMAGE *in, IMAGE *ref, IMAGE *out );
int im_contrast_surface_raw( IMAGE *in, IMAGE *out, int im_contrast_surface_raw( IMAGE *in, IMAGE *out,
int half_win_size, int spacing ); int half_win_size, int spacing );
int im_stdif_raw( IMAGE *in, IMAGE *out, int im_stdif_raw( IMAGE *in, IMAGE *out,
double a, double m0, double b, double s0, int xwin, int ywin ); double a, double m0, double b, double s0, int xwin, int ywin );
int im_lhisteq_raw( IMAGE *in, IMAGE *out, int xwin, int ywin ); int im_lhisteq_raw( IMAGE *in, IMAGE *out, int xwin, int ywin );
int im_erode_raw( IMAGE *in, IMAGE *out, INTMASK *m ); int im_erode_raw( IMAGE *in, IMAGE *out, INTMASK *m );
int im_dilate_raw( IMAGE *in, IMAGE *out, INTMASK *m ); int im_dilate_raw( IMAGE *in, IMAGE *out, INTMASK *m );
int im_rank_raw( IMAGE *in, IMAGE *out, int xsize, int ysize, int order ); int im_rank_raw( IMAGE *in, IMAGE *out, int xsize, int ysize, int order );
/* inplace
*/
int im_circle( IMAGE *im, int cx, int cy, int radius, int intensity );
int im_line( IMAGE *, int, int, int, int, int );
int im_segment( IMAGE *test, IMAGE *mask, int *segments );
int im_paintrect( IMAGE *im, Rect *r, PEL *ink );
int im_insertplace( IMAGE *main, IMAGE *sub, int x, int y );
int im_flood_copy( IMAGE *in, IMAGE *out, int x, int y, PEL *ink );
int im_flood_blob_copy( IMAGE *in, IMAGE *out, int x, int y, PEL *ink );
int im_flood_other_copy( IMAGE *test, IMAGE *mark, IMAGE *out,
int x, int y, int serial );
int im_flood( IMAGE *im, int x, int y, PEL *ink, Rect *dout );
int im_flood_blob( IMAGE *im, int x, int y, PEL *ink, Rect *dout );
int im_flood_other( IMAGE *test, IMAGE *mark,
int x, int y, int serial, Rect *dout );
int im_fastline( IMAGE *im, int x1, int y1, int x2, int y2, PEL *pel );
int im_fastlineuser( IMAGE *im,
int x1, int y1, int x2, int y2,
int (*fn)(), void *client1, void *client2, void *client3 );
int im_plotmask( IMAGE *im, int ix, int iy, PEL *ink, PEL *mask, Rect *r );
int im_readpoint( IMAGE *im, int x, int y, PEL *pel );
int im_plotpoint( IMAGE *im, int x, int y, PEL *pel );
int im_smudge( IMAGE *image, int ix, int iy, Rect *r );
int im_smear( IMAGE *im, int ix, int iy, Rect *r );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_ALMOSTDEPRECATED_H*/ #endif /*IM_ALMOSTDEPRECATED_H*/
 End of changes. 2 change blocks. 
3 lines changed or deleted 30 lines changed or added


 buf.h   buf.h 
skipping to change at line 73 skipping to change at line 73
void vips_buf_init_dynamic( VipsBuf *buf, int mx ); void vips_buf_init_dynamic( VipsBuf *buf, int mx );
gboolean vips_buf_appendns( VipsBuf *buf, const char *str, int sz ); gboolean vips_buf_appendns( VipsBuf *buf, const char *str, int sz );
gboolean vips_buf_appends( VipsBuf *buf, const char *str ); gboolean vips_buf_appends( VipsBuf *buf, const char *str );
gboolean vips_buf_appendf( VipsBuf *buf, const char *fmt, ... ) gboolean vips_buf_appendf( VipsBuf *buf, const char *fmt, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
gboolean vips_buf_vappendf( VipsBuf *buf, const char *fmt, va_list ap ); gboolean vips_buf_vappendf( VipsBuf *buf, const char *fmt, va_list ap );
gboolean vips_buf_appendc( VipsBuf *buf, char ch ); gboolean vips_buf_appendc( VipsBuf *buf, char ch );
gboolean vips_buf_appendsc( VipsBuf *buf, gboolean quote, const char *str ) ; gboolean vips_buf_appendsc( VipsBuf *buf, gboolean quote, const char *str ) ;
gboolean vips_buf_appendgv( VipsBuf *buf, GValue *value ); gboolean vips_buf_appendgv( VipsBuf *buf, GValue *value );
gboolean vips_buf_removec( VipsBuf *buf, char ch ); gboolean vips_buf_removec( VipsBuf *buf, char ch );
gboolean vips_buf_change( VipsBuf *buf, const char *old, const char * ); gboolean vips_buf_change( VipsBuf *buf, const char *o, const char *n );
gboolean vips_buf_is_empty( VipsBuf *buf ); gboolean vips_buf_is_empty( VipsBuf *buf );
gboolean vips_buf_is_full( VipsBuf *buf ); gboolean vips_buf_is_full( VipsBuf *buf );
const char *vips_buf_all( VipsBuf *buf ); const char *vips_buf_all( VipsBuf *buf );
const char *vips_buf_firstline( VipsBuf *buf ); const char *vips_buf_firstline( VipsBuf *buf );
gboolean vips_buf_appendg( VipsBuf *buf, double g ); gboolean vips_buf_appendg( VipsBuf *buf, double g );
gboolean vips_buf_appendd( VipsBuf *buf, int d ); gboolean vips_buf_appendd( VipsBuf *buf, int d );
int vips_buf_len( VipsBuf *buf ); int vips_buf_len( VipsBuf *buf );
#endif /*VIPS_BUF_H*/ #endif /*VIPS_BUF_H*/
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 check.h   check.h 
skipping to change at line 51 skipping to change at line 51
int im_incheck( IMAGE *im ); int im_incheck( IMAGE *im );
int im_outcheck( IMAGE *im ); int im_outcheck( IMAGE *im );
int im_piocheck( IMAGE *in, IMAGE *out ); int im_piocheck( IMAGE *in, IMAGE *out );
int im_pincheck( IMAGE *im ); int im_pincheck( IMAGE *im );
int im_poutcheck( IMAGE *im ); int im_poutcheck( IMAGE *im );
int im_check_uncoded( const char *domain, IMAGE *im ); int im_check_uncoded( const char *domain, IMAGE *im );
int im_check_coding_known( const char *domain, IMAGE *im ); int im_check_coding_known( const char *domain, IMAGE *im );
int im_check_coding_labq( const char *domain, IMAGE *im ); int im_check_coding_labq( const char *domain, IMAGE *im );
int im_check_coding_rad( const char *domain, IMAGE *im ); int im_check_coding_rad( const char *domain, IMAGE *im );
int im_check_coding_noneorlabq( const char *domain, IMAGE *im );
int im_check_coding_same( const char *domain, IMAGE *im1, IMAGE *im2 ); int im_check_coding_same( const char *domain, IMAGE *im1, IMAGE *im2 );
int im_check_mono( const char *domain, IMAGE *im ); int im_check_mono( const char *domain, IMAGE *im );
int im_check_bands_1or3( const char *domain, IMAGE *in ); int im_check_bands_1or3( const char *domain, IMAGE *in );
int im_check_bands( const char *domain, IMAGE *im, int bands ); int im_check_bands( const char *domain, IMAGE *im, int bands );
int im_check_bands_1orn( const char *domain, IMAGE *im1, IMAGE *im2 ); int im_check_bands_1orn( const char *domain, IMAGE *im1, IMAGE *im2 );
int im_check_bands_1orn_unary( const char *domain, IMAGE *im, int n );
int im_check_bands_same( const char *domain, IMAGE *im1, IMAGE *im2 ); int im_check_bands_same( const char *domain, IMAGE *im1, IMAGE *im2 );
int im_check_bandno( const char *domain, IMAGE *im, int bandno ); int im_check_bandno( const char *domain, IMAGE *im, int bandno );
int im_check_int( const char *domain, IMAGE *im ); int im_check_int( const char *domain, IMAGE *im );
int im_check_uint( const char *domain, IMAGE *im ); int im_check_uint( const char *domain, IMAGE *im );
int im_check_uintorf( const char *domain, IMAGE *im ); int im_check_uintorf( const char *domain, IMAGE *im );
int im_check_noncomplex( const char *domain, IMAGE *im ); int im_check_noncomplex( const char *domain, IMAGE *im );
int im_check_complex( const char *domain, IMAGE *im ); int im_check_complex( const char *domain, IMAGE *im );
int im_check_format( const char *domain, IMAGE *im, VipsBandFmt fmt ); int im_check_format( const char *domain, IMAGE *im, VipsBandFmt fmt );
int im_check_u8or16( const char *domain, IMAGE *im ); int im_check_u8or16( const char *domain, IMAGE *im );
int im_check_8or16( const char *domain, IMAGE *im ); int im_check_8or16( const char *domain, IMAGE *im );
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 colour.h   colour.h 
skipping to change at line 119 skipping to change at line 119
float im_col_Cucs2C( float Cucs ); float im_col_Cucs2C( float Cucs );
float im_col_Ch2hucs( float C, float h ); float im_col_Ch2hucs( float C, float h );
float im_col_Chucs2h( float C, float hucs ); float im_col_Chucs2h( float C, float hucs );
double im_col_ab2h( double a, double b ); double im_col_ab2h( double a, double b );
float im_col_dECMC( float im_col_dECMC(
float L1, float a1, float b1, float L2, float a2, float b2 ); float L1, float a1, float b1, float L2, float a2, float b2 );
float im_col_dE00( float im_col_dE00(
float L1, float a1, float b1, float L2, float a2, float b2 ); float L1, float a1, float b1, float L2, float a2, float b2 );
int im_Lab2LCh( IMAGE *in, IMAGE *out );
int im_LCh2Lab( IMAGE *in, IMAGE *out ); int im_LCh2Lab( IMAGE *in, IMAGE *out );
int im_LabQ2XYZ( IMAGE *in, IMAGE *out ); int im_LabQ2XYZ( IMAGE *in, IMAGE *out );
int im_rad2float( IMAGE *in, IMAGE *out ); int im_rad2float( IMAGE *in, IMAGE *out );
int im_float2rad( IMAGE *in, IMAGE *out ); int im_float2rad( IMAGE *in, IMAGE *out );
int im_LCh2UCS( IMAGE *in, IMAGE *out ); int im_LCh2UCS( IMAGE *in, IMAGE *out );
int im_Lab2LCh( IMAGE *in, IMAGE *out ); int im_Lab2LCh( IMAGE *in, IMAGE *out );
int im_Lab2LabQ( IMAGE *in, IMAGE *out ); int im_Lab2LabQ( IMAGE *in, IMAGE *out );
int im_Lab2LabS( IMAGE *in, IMAGE *out ); int im_Lab2LabS( IMAGE *in, IMAGE *out );
int im_Lab2XYZ( IMAGE *in, IMAGE *out ); int im_Lab2XYZ( IMAGE *in, IMAGE *out );
int im_Lab2XYZ_temp( IMAGE *in, IMAGE *out, double X0, double Y0, double Z0 ); int im_Lab2XYZ_temp( IMAGE *in, IMAGE *out, double X0, double Y0, double Z0 );
skipping to change at line 150 skipping to change at line 149
int im_XYZ2UCS( IMAGE *in, IMAGE *out ); int im_XYZ2UCS( IMAGE *in, IMAGE *out );
int im_sRGB2XYZ( IMAGE *in, IMAGE *out ); int im_sRGB2XYZ( IMAGE *in, IMAGE *out );
int im_XYZ2sRGB( IMAGE *in, IMAGE *out ); int im_XYZ2sRGB( IMAGE *in, IMAGE *out );
int im_Yxy2XYZ( IMAGE *in, IMAGE *out ); int im_Yxy2XYZ( IMAGE *in, IMAGE *out );
int im_XYZ2Yxy( IMAGE *in, IMAGE *out ); int im_XYZ2Yxy( IMAGE *in, IMAGE *out );
int im_dECMC_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out ); int im_dECMC_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out );
int im_dE00_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out ); int im_dE00_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out );
int im_dE_fromXYZ( IMAGE *in1, IMAGE *in2, IMAGE *out ); int im_dE_fromXYZ( IMAGE *in1, IMAGE *in2, IMAGE *out );
int im_dE_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out ); int im_dE_fromLab( IMAGE *in1, IMAGE *in2, IMAGE *out );
int im_dE_fromXYZ( IMAGE *, IMAGE *, IMAGE * );
int im_dE_fromLab( IMAGE *, IMAGE *, IMAGE * );
int im_lab_morph( IMAGE *in, IMAGE *out, int im_lab_morph( IMAGE *in, IMAGE *out,
DOUBLEMASK *mask, DOUBLEMASK *mask,
double L_offset, double L_scale, double L_offset, double L_scale,
double a_scale, double b_scale ); double a_scale, double b_scale );
void im_col_make_tables_UCS( void ); void im_col_make_tables_UCS( void );
int im_lab_morph( IMAGE *in, IMAGE *out,
DOUBLEMASK *mask,
double L_offset, double L_scale,
double a_scale, double b_scale );
/* Render intents for icc wrappers. /* Render intents for icc wrappers.
*/ */
typedef enum { typedef enum {
IM_INTENT_PERCEPTUAL = 0, IM_INTENT_PERCEPTUAL = 0,
IM_INTENT_RELATIVE_COLORIMETRIC, IM_INTENT_RELATIVE_COLORIMETRIC,
IM_INTENT_SATURATION, IM_INTENT_SATURATION,
IM_INTENT_ABSOLUTE_COLORIMETRIC IM_INTENT_ABSOLUTE_COLORIMETRIC
} VipsIntent; } VipsIntent;
int im_icc_present( void ); int im_icc_present( void );
 End of changes. 3 change blocks. 
8 lines changed or deleted 0 lines changed or added


 conversion.h   conversion.h 
skipping to change at line 40 skipping to change at line 40
*/ */
#ifndef IM_CONVERSION_H #ifndef IM_CONVERSION_H
#define IM_CONVERSION_H #define IM_CONVERSION_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
DOUBLEMASK *im_vips2mask( IMAGE *in, const char *out ); DOUBLEMASK *im_vips2mask( IMAGE *in, const char *filename );
int im_mask2vips( DOUBLEMASK *in, IMAGE *out ); int im_mask2vips( DOUBLEMASK *in, IMAGE *out );
int im_copy( IMAGE *in, IMAGE *out ); int im_copy( IMAGE *in, IMAGE *out );
int im_copy_set( IMAGE *in, IMAGE *out, int im_copy_set( IMAGE *in, IMAGE *out,
VipsType type, float xres, float yres, int xoffset, int yoffset ); VipsType type, float xres, float yres, int xoffset, int yoffset );
int im_copy_set_meta( IMAGE *in, IMAGE *out, const char *field, GValue *met a ); int im_copy_set_meta( IMAGE *in, IMAGE *out, const char *field, GValue *val ue );
int im_copy_morph( IMAGE *in, IMAGE *out, int im_copy_morph( IMAGE *in, IMAGE *out,
int bands, VipsBandFmt bandfmt, VipsCoding coding ); int bands, VipsBandFmt bandfmt, VipsCoding coding );
int im_copy_swap( IMAGE *in, IMAGE *out ); int im_copy_swap( IMAGE *in, IMAGE *out );
int im_copy_native( IMAGE *in, IMAGE *out, gboolean is_msb_first ); int im_copy_native( IMAGE *in, IMAGE *out, gboolean is_msb_first );
int im_copy_file( IMAGE *in, IMAGE *out ); int im_copy_file( IMAGE *in, IMAGE *out );
int im_clip2fmt( IMAGE *in, IMAGE *out, VipsBandFmt fmt ); int im_clip2fmt( IMAGE *in, IMAGE *out, VipsBandFmt fmt );
int im_scale( IMAGE *in, IMAGE *out ); int im_scale( IMAGE *in, IMAGE *out );
int im_msb( IMAGE *in, IMAGE *out ); int im_msb( IMAGE *in, IMAGE *out );
int im_msb_band( IMAGE *in, IMAGE *out, int band ); int im_msb_band( IMAGE *in, IMAGE *out, int band );
int im_c2amph( IMAGE *in, IMAGE *out ); int im_c2amph( IMAGE *in, IMAGE *out );
int im_c2rect( IMAGE *in, IMAGE *out ); int im_c2rect( IMAGE *in, IMAGE *out );
int im_ri2c( IMAGE *real_in, IMAGE *imag_in, IMAGE *out ); int im_ri2c( IMAGE *in1, IMAGE *in2, IMAGE *out );
int im_c2imag( IMAGE *in, IMAGE *out ); int im_c2imag( IMAGE *in, IMAGE *out );
int im_c2real( IMAGE *in, IMAGE *out ); int im_c2real( IMAGE *in, IMAGE *out );
int im_scaleps( IMAGE *in, IMAGE *out ); int im_scaleps( IMAGE *in, IMAGE *out );
int im_falsecolour( IMAGE *in, IMAGE *out ); int im_falsecolour( IMAGE *in, IMAGE *out );
int im_gaussnoise( IMAGE *out, int x, int y, double mean, double sigma ); int im_gaussnoise( IMAGE *out, int x, int y, double mean, double sigma );
int im_black( IMAGE *out, int width, int height, int bands ); int im_black( IMAGE *out, int x, int y, int bands );
int im_text( IMAGE *out, const char *text, const char *font, int im_text( IMAGE *out, const char *text, const char *font,
int width, int alignment, int dpi ); int width, int alignment, int dpi );
int im_extract_band( IMAGE *in, IMAGE *out, int band ); int im_extract_band( IMAGE *in, IMAGE *out, int band );
int im_extract_bands( IMAGE *in, IMAGE *out, int band, int nbands ); int im_extract_bands( IMAGE *in, IMAGE *out, int band, int nbands );
int im_extract_area( IMAGE *in, IMAGE *out, int im_extract_area( IMAGE *in, IMAGE *out,
int left, int top, int width, int height ); int left, int top, int width, int height );
int im_extract_areabands( IMAGE *in, IMAGE *out, int im_extract_areabands( IMAGE *in, IMAGE *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_embed( IMAGE *in, IMAGE *out, int im_embed( IMAGE *in, IMAGE *out,
int type, int x, int y, int width, int height ); int type, int x, int y, int width, int height );
int im_bandjoin( IMAGE *in1, IMAGE *in2, IMAGE *out ); int im_bandjoin( IMAGE *in1, IMAGE *in2, IMAGE *out );
int im_gbandjoin( IMAGE **in, IMAGE *out, int n ); int im_gbandjoin( IMAGE **in, IMAGE *out, int n );
int im_insert( IMAGE *main, IMAGE *sub, IMAGE *out, int x, int y ); int im_insert( IMAGE *main, IMAGE *sub, IMAGE *out, int x, int y );
int im_insert_noexpand( IMAGE *main, IMAGE *sub, IMAGE *out, int x, int y ) ; int im_insert_noexpand( IMAGE *main, IMAGE *sub, IMAGE *out, int x, int y ) ;
int im_insertset( IMAGE *main, IMAGE *sub, IMAGE *out, int n, int *x, int * y ); int im_insertset( IMAGE *main, IMAGE *sub, IMAGE *out, int n, int *x, int * y );
int im_lrjoin( IMAGE *in1, IMAGE *in2, IMAGE *out ); int im_lrjoin( IMAGE *left, IMAGE *right, IMAGE *out );
int im_tbjoin( IMAGE *in1, IMAGE *in2, IMAGE *out ); int im_tbjoin( IMAGE *top, IMAGE *bottom, IMAGE *out );
int im_replicate( IMAGE *in, IMAGE *out, int across, int down ); int im_replicate( IMAGE *in, IMAGE *out, int across, int down );
int im_grid( IMAGE *in, IMAGE *out, int tile_height, int across, int down ) ; int im_grid( IMAGE *in, IMAGE *out, int tile_height, int across, int down ) ;
int im_wrap( IMAGE *in, IMAGE *out, int x, int y ); int im_wrap( IMAGE *in, IMAGE *out, int x, int y );
int im_fliphor( IMAGE *in, IMAGE *out ); int im_fliphor( IMAGE *in, IMAGE *out );
int im_flipver( IMAGE *in, IMAGE *out ); int im_flipver( IMAGE *in, IMAGE *out );
int im_rot90( IMAGE *in, IMAGE *out ); int im_rot90( IMAGE *in, IMAGE *out );
int im_rot180( IMAGE *in, IMAGE *out ); int im_rot180( IMAGE *in, IMAGE *out );
int im_rot270( IMAGE *in, IMAGE *out ); int im_rot270( IMAGE *in, IMAGE *out );
int im_subsample( IMAGE *in, IMAGE *out, int x, int y ); int im_subsample( IMAGE *in, IMAGE *out, int xshrink, int yshrink );
int im_zoom( IMAGE *in, IMAGE *out, int x, int y ); int im_zoom( IMAGE *in, IMAGE *out, int xfac, int yfac );
int im_system( IMAGE *im, const char *cmd, char **out ); int im_system( IMAGE *im, const char *cmd, char **out );
IMAGE *im_system_image( IMAGE *im, IMAGE *im_system_image( IMAGE *im,
const char *in_format, const char *out_format, const char *cmd_forma t, const char *in_format, const char *out_format, const char *cmd_forma t,
char **log ); char **log );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
 End of changes. 6 change blocks. 
8 lines changed or deleted 8 lines changed or added


 dispatch.h   dispatch.h 
skipping to change at line 67 skipping to change at line 67
#define IM_TYPE_GVALUE "gvalue" /* GValue wrapper */ #define IM_TYPE_GVALUE "gvalue" /* GValue wrapper */
#define IM_TYPE_INTERPOLATE "interpolate"/* A subclass of VipsInterpolate * / #define IM_TYPE_INTERPOLATE "interpolate"/* A subclass of VipsInterpolate * /
typedef char *im_arg_type; /* Type of argument id */ typedef char *im_arg_type; /* Type of argument id */
/* Internal representation of an argument to an image processing function. /* Internal representation of an argument to an image processing function.
*/ */
typedef void *im_object; typedef void *im_object;
/* These bits are ored together to make the flags in a type descriptor. /* These bits are ored together to make the flags in a type descriptor.
* *
* IM_TYPE_OUTPUT: set to indicate output, otherwise input. * IM_TYPE_OUTPUT: set to indicate output, otherwise input. If the IM_TYPE_
RW
* bit is set and IM_TYPE_OUTPUT is not set, both input and output (ie. the
* operation side-effects this argument).
* *
* IM_TYPE_ARG: Two ways of making an im_object --- with and without a * IM_TYPE_ARG: Two ways of making an im_object --- with and without a
* command-line string to help you along. Arguments with a string are thing * command-line string to help you along. Arguments with a string are thing
* like IMAGE descriptors, which require a filename to initialise. * like IMAGE descriptors, which require a filename to initialise.
* Arguments without are things like output numbers, where making the objec t * Arguments without are things like output numbers, where making the objec t
* simply involves allocating storage. * simply involves allocating storage.
*/ */
typedef enum { typedef enum {
IM_TYPE_NONE = 0, /* No flags */ IM_TYPE_NONE = 0, /* No flags */
IM_TYPE_OUTPUT = 0x1, /* Output/input object */ IM_TYPE_OUTPUT = 0x1, /* Output/input object */
IM_TYPE_ARG = 0x2 /* Uses a str arg in construction */ IM_TYPE_ARG = 0x2, /* Uses a str arg in construction */
IM_TYPE_RW = 0x4 /* Read-write */
} im_type_flags; } im_type_flags;
/* Initialise, destroy and write objects. The "str" argument to the /* Initialise, destroy and write objects. The "str" argument to the
* init function will not be supplied if this is not an ARG type. The * init function will not be supplied if this is not an ARG type. The
* write function writes to the GString. * write function writes to the GString.
*/ */
typedef int (*im_init_obj_fn)( im_object *obj, char *str ); typedef int (*im_init_obj_fn)( im_object *obj, char *str );
typedef int (*im_dest_obj_fn)( im_object obj ); typedef int (*im_dest_obj_fn)( im_object obj );
/* Describe a VIPS type. /* Describe a VIPS type.
 End of changes. 2 change blocks. 
2 lines changed or deleted 6 lines changed or added


 format.h   format.h 
skipping to change at line 65 skipping to change at line 65
typedef enum { typedef enum {
VIPS_FORMAT_NONE = 0, /* No flags set */ VIPS_FORMAT_NONE = 0, /* No flags set */
VIPS_FORMAT_PARTIAL = 1 /* Lazy read OK (eg. tiled tiff) */ VIPS_FORMAT_PARTIAL = 1 /* Lazy read OK (eg. tiled tiff) */
} VipsFormatFlags; } VipsFormatFlags;
/* Don't instantiate these things, just use the class stuff. /* Don't instantiate these things, just use the class stuff.
*/ */
typedef struct _VipsFormat { typedef struct _VipsFormat {
VipsObject parent_object; VipsObject parent_object;
/*< public >*/
} VipsFormat; } VipsFormat;
typedef struct _VipsFormatClass { typedef struct _VipsFormatClass {
VipsObjectClass parent_class; VipsObjectClass parent_class;
/*< public >*/
/* Is a file in this format. /* Is a file in this format.
*/ */
gboolean (*is_a)( const char * ); gboolean (*is_a)( const char * );
/* Read just the header into the IMAGE. /* Read just the header into the IMAGE.
*/ */
int (*header)( const char *, IMAGE * ); int (*header)( const char *, IMAGE * );
/* Load the whole image. /* Load the whole image.
*/ */
skipping to change at line 146 skipping to change at line 148
int im_ppm2vips( const char *filename, IMAGE *out ); int im_ppm2vips( const char *filename, IMAGE *out );
int im_vips2ppm( IMAGE *in, const char *filename ); int im_vips2ppm( IMAGE *in, const char *filename );
int im_analyze2vips( const char *filename, IMAGE *out ); int im_analyze2vips( const char *filename, IMAGE *out );
int im_csv2vips( const char *filename, IMAGE *out ); int im_csv2vips( const char *filename, IMAGE *out );
int im_vips2csv( IMAGE *in, const char *filename ); int im_vips2csv( IMAGE *in, const char *filename );
int im_png2vips( const char *filename, IMAGE *out ); int im_png2vips( const char *filename, IMAGE *out );
int im_vips2png( IMAGE *in, const char *filename ); int im_vips2png( IMAGE *in, const char *filename );
int im_vips2bufpng( IMAGE *in, IMAGE *out,
int compression, int interlace, char **obuf, size_t *olen );
int im_raw2vips( const char *filename, IMAGE *out, int im_raw2vips( const char *filename, IMAGE *out,
int width, int height, int bpp, int offset ); int width, int height, int bpp, int offset );
int im_vips2raw( IMAGE *in, int fd ); int im_vips2raw( IMAGE *in, int fd );
int im_mat2vips( const char *filename, IMAGE *out ); int im_mat2vips( const char *filename, IMAGE *out );
int im_rad2vips( const char *filename, IMAGE *out ); int im_rad2vips( const char *filename, IMAGE *out );
int im_vips2rad( IMAGE *in, const char *filename ); int im_vips2rad( IMAGE *in, const char *filename );
 End of changes. 3 change blocks. 
0 lines changed or deleted 4 lines changed or added


 generate.h   generate.h 
skipping to change at line 48 skipping to change at line 48
/* IMAGE functions which use regions. /* IMAGE functions which use regions.
*/ */
int im_prepare( REGION *reg, Rect *r ); int im_prepare( REGION *reg, Rect *r );
int im_prepare_to( REGION *reg, REGION *dest, Rect *r, int x, int y ); int im_prepare_to( REGION *reg, REGION *dest, Rect *r, int x, int y );
typedef void *(*im_start_fn)( IMAGE *out, void *a, void *b ); typedef void *(*im_start_fn)( IMAGE *out, void *a, void *b );
typedef int (*im_generate_fn)( REGION *out, void *seq, void *a, void *b ); typedef int (*im_generate_fn)( REGION *out, void *seq, void *a, void *b );
typedef int (*im_stop_fn)( void *seq, void *a, void *b ); typedef int (*im_stop_fn)( void *seq, void *a, void *b );
void *im_start_one( IMAGE *out, void *in, void *dummy ); void *im_start_one( IMAGE *out, void *a, void *b );
int im_stop_one( void *seq, void *dummy1, void *dummy2 ); int im_stop_one( void *seq, void *a, void *b );
void *im_start_many( IMAGE *out, void *in, void *dummy ); void *im_start_many( IMAGE *out, void *a, void *b );
int im_stop_many( void *seq, void *dummy1, void *dummy2 ); int im_stop_many( void *seq, void *a, void *b );
IMAGE **im_allocate_input_array( IMAGE *out, ... ) IMAGE **im_allocate_input_array( IMAGE *out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int im_generate( IMAGE *im, int im_generate( IMAGE *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,
void *a, void *b void *a, void *b
); );
int im_iterate( IMAGE *im, int im_iterate( IMAGE *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,
void *a, void *b void *a, void *b
 End of changes. 1 change blocks. 
4 lines changed or deleted 4 lines changed or added


 header.h   header.h 
skipping to change at line 50 skipping to change at line 50
int im_header_int( IMAGE *im, const char *field, int *out ); int im_header_int( IMAGE *im, const char *field, int *out );
int im_header_double( IMAGE *im, const char *field, double *out ); int im_header_double( IMAGE *im, const char *field, double *out );
int im_header_string( IMAGE *im, const char *field, char **out ); int im_header_string( IMAGE *im, const char *field, char **out );
int im_header_as_string( IMAGE *im, const char *field, char **out ); int im_header_as_string( IMAGE *im, const char *field, char **out );
GType im_header_get_typeof( IMAGE *im, const char *field ); GType im_header_get_typeof( IMAGE *im, const char *field );
int im_header_get( IMAGE *im, const char *field, GValue *value_copy ); int im_header_get( IMAGE *im, const char *field, GValue *value_copy );
typedef void *(*im_header_map_fn)( IMAGE *, const char *, GValue *, void * ); typedef void *(*im_header_map_fn)( IMAGE *, const char *, GValue *, void * );
void *im_header_map( IMAGE *im, im_header_map_fn fn, void *a ); void *im_header_map( IMAGE *im, im_header_map_fn fn, void *a );
int im_histlin( IMAGE *image, const char *fmt, ... ) int im_histlin( IMAGE *im, const char *fmt, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
int im_updatehist( IMAGE *out, const char *name, int argc, char *argv[] ); int im_updatehist( IMAGE *out, const char *name, int argc, char *argv[] );
const char *im_history_get( IMAGE *im ); const char *im_history_get( IMAGE *im );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_HEADER_H*/ #endif /*IM_HEADER_H*/
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 histograms_lut.h   histograms_lut.h 
skipping to change at line 53 skipping to change at line 53
int im_identity( IMAGE *lut, int bands ); int im_identity( IMAGE *lut, int bands );
int im_identity_ushort( IMAGE *lut, int bands, int sz ); int im_identity_ushort( IMAGE *lut, int bands, int sz );
int im_invertlut( DOUBLEMASK *input, IMAGE *output, int lut_size ); int im_invertlut( DOUBLEMASK *input, IMAGE *output, int lut_size );
int im_buildlut( DOUBLEMASK *input, IMAGE *output ); int im_buildlut( DOUBLEMASK *input, IMAGE *output );
int im_project( IMAGE *in, IMAGE *hout, IMAGE *vout ); int im_project( IMAGE *in, IMAGE *hout, IMAGE *vout );
int im_histnorm( IMAGE *in, IMAGE *out ); int im_histnorm( IMAGE *in, IMAGE *out );
int im_histcum( IMAGE *in, IMAGE *out ); int im_histcum( IMAGE *in, IMAGE *out );
int im_histeq( IMAGE *in, IMAGE *out ); int im_histeq( IMAGE *in, IMAGE *out );
int im_histspec( IMAGE *hin, IMAGE *href, IMAGE *lut ); int im_histspec( IMAGE *in, IMAGE *ref, IMAGE *out );
int im_ismonotonic( IMAGE *lut, int *out ); int im_ismonotonic( IMAGE *lut, int *out );
int im_histplot( IMAGE *hist, IMAGE *histplot ); int im_histplot( IMAGE *in, IMAGE *out );
int im_maplut( IMAGE *in, IMAGE *out, IMAGE *lut ); int im_maplut( IMAGE *in, IMAGE *out, IMAGE *lut );
int im_hist( IMAGE *in, IMAGE *out, int bandno ); int im_hist( IMAGE *in, IMAGE *out, int bandno );
int im_hsp( IMAGE *in, IMAGE *ref, IMAGE *out ); int im_hsp( IMAGE *in, IMAGE *ref, IMAGE *out );
int im_gammacorrect( IMAGE *in, IMAGE *out, double exponent ); int im_gammacorrect( IMAGE *in, IMAGE *out, double exponent );
int im_mpercent( IMAGE *in, double percent, int *out ); int im_mpercent( IMAGE *in, double percent, int *out );
int im_mpercent_hist( IMAGE *hist, double percent, int *out ); int im_mpercent_hist( IMAGE *hist, double percent, int *out );
int im_heq( IMAGE *in, IMAGE *out, int bandno ); int im_heq( IMAGE *in, IMAGE *out, int bandno );
skipping to change at line 77 skipping to change at line 77
int im_stdif( IMAGE *in, IMAGE *out, int im_stdif( IMAGE *in, IMAGE *out,
double a, double m0, double b, double s0, int xwin, int ywin ); double a, double m0, double b, double s0, int xwin, int ywin );
int im_tone_build_range( IMAGE *out, int im_tone_build_range( IMAGE *out,
int in_max, int out_max, int in_max, int out_max,
double Lb, double Lw, double Ps, double Pm, double Ph, double Lb, double Lw, double Ps, double Pm, double Ph,
double S, double M, double H ); double S, double M, double H );
int im_tone_build( IMAGE *out, int im_tone_build( IMAGE *out,
double Lb, double Lw, double Ps, double Pm, double Ph, double Lb, double Lw, double Ps, double Pm, double Ph,
double S, double M, double H ); double S, double M, double H );
int im_tone_analyse( IMAGE *in, IMAGE *lut, int im_tone_analyse( IMAGE *in, IMAGE *out,
double Ps, double Pm, double Ph, double S, double M, double H ); double Ps, double Pm, double Ph, double S, double M, double H );
int im_tone_map( IMAGE *in, IMAGE *out, IMAGE *lut ); int im_tone_map( IMAGE *in, IMAGE *out, IMAGE *lut );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_HIST_H*/ #endif /*IM_HIST_H*/
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 image.h   image.h 
skipping to change at line 90 skipping to change at line 90
IM_BANDFMT_NOTSET = -1, IM_BANDFMT_NOTSET = -1,
IM_BANDFMT_UCHAR = 0, IM_BANDFMT_UCHAR = 0,
IM_BANDFMT_CHAR = 1, IM_BANDFMT_CHAR = 1,
IM_BANDFMT_USHORT = 2, IM_BANDFMT_USHORT = 2,
IM_BANDFMT_SHORT = 3, IM_BANDFMT_SHORT = 3,
IM_BANDFMT_UINT = 4, IM_BANDFMT_UINT = 4,
IM_BANDFMT_INT = 5, IM_BANDFMT_INT = 5,
IM_BANDFMT_FLOAT = 6, IM_BANDFMT_FLOAT = 6,
IM_BANDFMT_COMPLEX = 7, IM_BANDFMT_COMPLEX = 7,
IM_BANDFMT_DOUBLE = 8, IM_BANDFMT_DOUBLE = 8,
IM_BANDFMT_DPCOMPLEX = 9 IM_BANDFMT_DPCOMPLEX = 9,
IM_BANDFMT_LAST = 10
} VipsBandFmt; } VipsBandFmt;
typedef enum { typedef enum {
IM_CODING_NONE = 0, IM_CODING_NONE = 0,
IM_CODING_LABQ = 2, IM_CODING_LABQ = 2,
IM_CODING_RAD = 6 IM_CODING_RAD = 6
} VipsCoding; } VipsCoding;
/* Struct we keep a record of execution time in. Passed to eval callback, s o /* Struct we keep a record of execution time in. Passed to eval callback, s o
* it can assess progress. * it can assess progress.
skipping to change at line 336 skipping to change at line 337
int xo, int yo ); int xo, int yo );
int im_cp_desc( VipsImage *out, VipsImage *in ); int im_cp_desc( VipsImage *out, VipsImage *in );
int im_cp_descv( VipsImage *out, VipsImage *in1, ... ) int im_cp_descv( VipsImage *out, VipsImage *in1, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int im_cp_desc_array( VipsImage *out, VipsImage *in[] ); int im_cp_desc_array( VipsImage *out, VipsImage *in[] );
VipsImage *im_binfile( const char *name, VipsImage *im_binfile( const char *name,
int xsize, int ysize, int bands, int offset ); int xsize, int ysize, int bands, int offset );
VipsImage *im_image( void *buffer, VipsImage *im_image( void *buffer,
int width, int height, int bands, VipsBandFmt bandfmt ); int xsize, int ysize, int bands, VipsBandFmt bandfmt );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_IMAGE_H*/ #endif /*IM_IMAGE_H*/
 End of changes. 2 change blocks. 
2 lines changed or deleted 3 lines changed or added


 inplace.h   inplace.h 
skipping to change at line 40 skipping to change at line 40
*/ */
#ifndef IM_INPLACE_H #ifndef IM_INPLACE_H
#define IM_INPLACE_H #define IM_INPLACE_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
int im_plotmask( IMAGE *im, int ix, int iy, PEL *ink, PEL *mask, Rect *r ); int im_draw_rect( VipsImage *image,
int im_smear( IMAGE *im, int ix, int iy, Rect *r ); int left, int top, int width, int height, int fill, PEL *ink );
int im_smudge( IMAGE *im, int ix, int iy, Rect *r ); int im_draw_circle( VipsImage *image,
int im_paintrect( IMAGE *im, Rect *r, PEL *ink ); int x, int y, int radius, gboolean fill, PEL *ink );
int im_circle( IMAGE *im, int cx, int cy, int radius, int intensity );
int im_insertplace( IMAGE *main, IMAGE *sub, int x, int y ); int im_draw_image( VipsImage *image, VipsImage *sub, int x, int y );
int im_fastline( IMAGE *im, int x1, int y1, int x2, int y2, PEL *pel );
int im_fastlineuser( IMAGE *im, typedef int (*VipsPlotFn)( VipsImage *image, int x, int y,
void *a, void *b, void *c );
int im_draw_line_user( VipsImage *image,
int x1, int y1, int x2, int y2, int x1, int y1, int x2, int y2,
int (*fn)(), void *client1, void *client2, void *client3 ); VipsPlotFn plot, void *a, void *b, void *c );
int im_readpoint( IMAGE *im, int x, int y, PEL *pel ); int im_draw_line( VipsImage *image, int x1, int y1, int x2, int y2, PEL *in
k );
int im_lineset( VipsImage *in, VipsImage *out, VipsImage *mask, VipsImage *
ink,
int n, int *x1v, int *y1v, int *x2v, int *y2v );
int im_flood( IMAGE *im, int x, int y, PEL *ink, Rect *dout ); int im_draw_flood( VipsImage *image, int x, int y, PEL *ink, Rect *dout );
int im_flood_blob( IMAGE *im, int x, int y, PEL *ink, Rect *dout ); int im_draw_flood_blob( VipsImage *image, int x, int y, PEL *ink, Rect *dou
int im_flood_other( IMAGE *test, IMAGE *mark, t );
int im_draw_flood_other( VipsImage *image, VipsImage *test,
int x, int y, int serial, Rect *dout ); int x, int y, int serial, Rect *dout );
int im_flood_copy( IMAGE *in, IMAGE *out, int x, int y, PEL *ink ); int im_draw_mask( VipsImage *image,
int im_flood_blob_copy( IMAGE *in, IMAGE *out, int x, int y, PEL *ink ); VipsImage *mask_im, int x, int y, PEL *ink );
int im_flood_other_copy( IMAGE *test, IMAGE *mark, IMAGE *out,
int x, int y, int serial );
int im_lineset( IMAGE *in, IMAGE *out, IMAGE *mask, IMAGE *ink, int im_draw_point( VipsImage *image, int x, int y, PEL *ink );
int n, int *x1v, int *y1v, int *x2v, int *y2v ); int im_read_point( VipsImage *image, int x, int y, PEL *ink );
int im_draw_smudge( VipsImage *image,
int left, int top, int width, int height );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_INPLACE_H*/ #endif /*IM_INPLACE_H*/
 End of changes. 5 change blocks. 
19 lines changed or deleted 27 lines changed or added


 interpolate.h   interpolate.h 
skipping to change at line 82 skipping to change at line 82
VipsInterpolateMethod interpolate; VipsInterpolateMethod interpolate;
/* This interpolator needs a window this many pixels across and down . /* This interpolator needs a window this many pixels across and down .
*/ */
int (*get_window_size)( VipsInterpolate * ); int (*get_window_size)( VipsInterpolate * );
/* Or just set this if you want a constant. /* Or just set this if you want a constant.
*/ */
int window_size; int window_size;
/* Stencils are offset by this much. Default to window_size / 2 /* Stencils are offset by this much. Default to window_size / 2 - 1
* (centering) if undefined. * (centering) if get_window_offset is NULL and window_offset is -1.
*/ */
int (*get_window_offset)( VipsInterpolate * ); int (*get_window_offset)( VipsInterpolate * );
int window_offset; int window_offset;
} VipsInterpolateClass; } VipsInterpolateClass;
GType vips_interpolate_get_type( void ); GType vips_interpolate_get_type( void );
void vips_interpolate( VipsInterpolate *interpolate, void vips_interpolate( VipsInterpolate *interpolate,
PEL *out, REGION *in, double x, double y ); PEL *out, REGION *in, double x, double y );
VipsInterpolateMethod vips_interpolate_get_method( VipsInterpolate * ); VipsInterpolateMethod vips_interpolate_get_method( VipsInterpolate * );
int vips_interpolate_get_window_size( VipsInterpolate *interpolate ); int vips_interpolate_get_window_size( VipsInterpolate *interpolate );
int vips_interpolate_get_window_offset( VipsInterpolate *interpolate ); int vips_interpolate_get_window_offset( VipsInterpolate *interpolate );
/* How many bits of precision we keep for transformations, ie. how many /* How many bits of precision we keep for transformations, ie. how many
* pre-computed matrices we have. * pre-computed matricies we have.
*/ */
#define VIPS_TRANSFORM_SHIFT (6) #define VIPS_TRANSFORM_SHIFT (6)
#define VIPS_TRANSFORM_SCALE (1 << VIPS_TRANSFORM_SHIFT) #define VIPS_TRANSFORM_SCALE (1 << VIPS_TRANSFORM_SHIFT)
/* How many bits of precision we keep for interpolation, ie. where the deci mal /* How many bits of precision we keep for interpolation, ie. where the deci mal
* is in the fixed-point tables. For 16-bit pixels, we need 16 bits for the * is in the fixed-point tables. For 16-bit pixels, we need 16 bits for the
* data and 4 bits to add 16 values together. That leaves 12 bits for the * data and 4 bits to add 16 values together. That leaves 12 bits for the
* fractional part. * fractional part.
*/ */
#define VIPS_INTERPOLATE_SHIFT (12) #define VIPS_INTERPOLATE_SHIFT (12)
 End of changes. 2 change blocks. 
3 lines changed or deleted 3 lines changed or added


 mask.h   mask.h 
skipping to change at line 58 skipping to change at line 58
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;
INTMASK *im_create_imask( const char *name, int width, int height ); INTMASK *im_create_imask( const char *filename, int xsize, int ysize );
INTMASK *im_create_imaskv( const char *name, int width, int height, ... ); INTMASK *im_create_imaskv( const char *filename, int xsize, int ysize, ...
DOUBLEMASK *im_create_dmask( const char *name, int width, int height ); );
DOUBLEMASK *im_create_dmaskv( const char *name, int width, int height, ... DOUBLEMASK *im_create_dmask( 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 *m ); void im_print_imask( INTMASK *in );
void im_print_dmask( DOUBLEMASK *m ); void im_print_dmask( DOUBLEMASK *in );
int im_write_imask( INTMASK *m ); int im_write_imask( INTMASK *in );
int im_write_dmask( DOUBLEMASK *m ); int im_write_dmask( DOUBLEMASK *in );
int im_write_imask_name( INTMASK *m, const char *filename ); int im_write_imask_name( INTMASK *in, const char *filename );
int im_write_dmask_name( DOUBLEMASK *m, const char *filename ); int im_write_dmask_name( DOUBLEMASK *in, const char *filename );
int im_free_imask( INTMASK *m ); int im_free_imask( INTMASK *in );
int im_free_dmask( DOUBLEMASK *m ); int im_free_dmask( DOUBLEMASK *in );
INTMASK *im_log_imask( const char *filename, double sigma, double min_ampl ); INTMASK *im_log_imask( const char *filename, double sigma, double min_ampl );
DOUBLEMASK *im_log_dmask( const char *filename, double sigma, double min_am pl ); DOUBLEMASK *im_log_dmask( const char *filename, double sigma, double min_am pl );
INTMASK *im_gauss_imask( const char *filename, double sigma, double min_amp l ); INTMASK *im_gauss_imask( const char *filename, double sigma, double min_amp l );
INTMASK *im_gauss_imask_sep( const char *filename, INTMASK *im_gauss_imask_sep( const char *filename,
double sigma, double min_ampl ); double sigma, double min_ampl );
DOUBLEMASK *im_gauss_dmask( const char *filename, DOUBLEMASK *im_gauss_dmask( const char *filename,
double sigma, double min_ampl ); double sigma, double min_ampl );
INTMASK *im_dup_imask( INTMASK *m, const char *name ); INTMASK *im_dup_imask( INTMASK *in, const char *filename );
DOUBLEMASK *im_dup_dmask( DOUBLEMASK *m, const char *name ); DOUBLEMASK *im_dup_dmask( DOUBLEMASK *in, const char *filename );
INTMASK *im_scale_dmask( DOUBLEMASK *m, const char *filename ); INTMASK *im_scale_dmask( DOUBLEMASK *in, const char *filename );
void im_norm_dmask( DOUBLEMASK *mask ); void im_norm_dmask( DOUBLEMASK *mask );
int *im_offsets45( int size ); DOUBLEMASK *im_imask2dmask( INTMASK *in, const char *filename );
int *im_offsets90( int size ); INTMASK *im_dmask2imask( DOUBLEMASK *in, const char *filename );
INTMASK *im_rotate_imask90( INTMASK *m, const char *filename );
INTMASK *im_rotate_imask45( INTMASK *m, const char *filename ); INTMASK *im_rotate_imask90( INTMASK *in, const char *filename );
DOUBLEMASK *im_rotate_dmask90( DOUBLEMASK *m, const char *filename ); INTMASK *im_rotate_imask45( INTMASK *in, const char *filename );
DOUBLEMASK *im_rotate_dmask45( DOUBLEMASK *m, const char *filename ); DOUBLEMASK *im_rotate_dmask90( DOUBLEMASK *in, const char *filename );
DOUBLEMASK *im_rotate_dmask45( DOUBLEMASK *in, const char *filename );
DOUBLEMASK *im_mattrn( DOUBLEMASK *in, const char *name );
DOUBLEMASK *im_matcat( DOUBLEMASK *in1, DOUBLEMASK *in2, const char *name ) DOUBLEMASK *im_mattrn( DOUBLEMASK *in, const char *filename );
; DOUBLEMASK *im_matcat( DOUBLEMASK *top, DOUBLEMASK *bottom,
DOUBLEMASK *im_matmul( DOUBLEMASK *in1, DOUBLEMASK *in2, const char *name ) const char *filename );
; DOUBLEMASK *im_matmul( DOUBLEMASK *in1, DOUBLEMASK *in2, const char *filena
me );
DOUBLEMASK *im_lu_decomp( const DOUBLEMASK *mat, const char *name ); DOUBLEMASK *im_lu_decomp( const DOUBLEMASK *mat, const char *filename );
int im_lu_solve( const DOUBLEMASK *lu, double *vec ); int im_lu_solve( const DOUBLEMASK *lu, double *vec );
DOUBLEMASK *im_matinv( const DOUBLEMASK *mat, const char *name ); DOUBLEMASK *im_matinv( const DOUBLEMASK *mat, const char *filename );
int im_matinv_inplace( DOUBLEMASK *mat ); int im_matinv_inplace( DOUBLEMASK *mat );
DOUBLEMASK *im_local_dmask( struct _VipsImage *out, DOUBLEMASK *mask ); DOUBLEMASK *im_local_dmask( struct _VipsImage *out, DOUBLEMASK *mask );
INTMASK *im_local_imask( struct _VipsImage *out, INTMASK *mask ); INTMASK *im_local_imask( struct _VipsImage *out, INTMASK *mask );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_MASK_H*/ #endif /*IM_MASK_H*/
 End of changes. 10 change blocks. 
30 lines changed or deleted 33 lines changed or added


 memory.h   memory.h 
skipping to change at line 42 skipping to change at line 42
#ifndef IM_MEMORY_H #ifndef IM_MEMORY_H
#define IM_MEMORY_H #define IM_MEMORY_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#define IM_NEW( IM, T ) ((T *) im_malloc( (IM), sizeof( T ))) #define IM_NEW( IM, T ) ((T *) im_malloc( (IM), sizeof( T )))
#define IM_ARRAY( IM, N, T ) ((T *) im_malloc( (IM), (N) * sizeof( T ))) #define IM_ARRAY( IM, N, T ) ((T *) im_malloc( (IM), (N) * sizeof( T )))
void *im_malloc( VipsImage *im, size_t sz ); void *im_malloc( VipsImage *im, size_t size );
int im_free( void * ); int im_free( void *s );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_MEMORY_H*/ #endif /*IM_MEMORY_H*/
 End of changes. 1 change blocks. 
2 lines changed or deleted 2 lines changed or added


 meta.h   meta.h 
skipping to change at line 105 skipping to change at line 105
const char *im_ref_string_get( const GValue *value ); const char *im_ref_string_get( const GValue *value );
size_t im_ref_string_get_length( const GValue *value ); size_t im_ref_string_get_length( const GValue *value );
/** /**
* IM_TYPE_BLOB: * IM_TYPE_BLOB:
* *
* The #GType for an #im_blob. * The #GType for an #im_blob.
*/ */
#define IM_TYPE_BLOB (im_blob_get_type()) #define IM_TYPE_BLOB (im_blob_get_type())
GType im_blob_get_type( void ); GType im_blob_get_type( void );
void *im_blob_get( const GValue *value, size_t *data_length ); void *im_blob_get( const GValue *value, size_t *length );
int im_blob_set( GValue *value, im_callback_fn free_fn, int im_blob_set( GValue *value, im_callback_fn free_fn,
void *data, size_t length ); void *data, size_t length );
int im_meta_set( IMAGE *, const char *field, GValue * ); int im_meta_set( IMAGE *im, const char *field, GValue *value );
gboolean im_meta_remove( IMAGE *im, const char *field ); gboolean im_meta_remove( IMAGE *im, const char *field );
int im_meta_get( IMAGE *, const char *field, GValue * ); int im_meta_get( IMAGE *im, const char *field, GValue *value_copy );
GType im_meta_get_typeof( IMAGE *im, const char *field ); GType im_meta_get_typeof( IMAGE *im, const char *field );
int im_meta_set_int( IMAGE *, const char *field, int i ); int im_meta_set_int( IMAGE *im, const char *field, int i );
int im_meta_get_int( IMAGE *, const char *field, int *i ); int im_meta_get_int( IMAGE *im, const char *field, int *i );
int im_meta_set_double( IMAGE *, const char *field, double d ); int im_meta_set_double( IMAGE *im, const char *field, double d );
int im_meta_get_double( IMAGE *, const char *field, double *d ); int im_meta_get_double( IMAGE *im, const char *field, double *d );
int im_meta_set_area( IMAGE *, const char *field, im_callback_fn, void * ); int im_meta_set_area( IMAGE *im,
int im_meta_get_area( IMAGE *, const char *field, void **data ); const char *field, im_callback_fn free_fn, void *data );
int im_meta_set_string( IMAGE *, const char *field, const char *str ); int im_meta_get_area( IMAGE *im, const char *field, void **data );
int im_meta_get_string( IMAGE *, const char *field, char **str ); int im_meta_set_string( IMAGE *im, const char *field, const char *str );
int im_meta_get_string( IMAGE *im, const char *field, char **str );
int im_meta_set_blob( IMAGE *im, const char *field, int im_meta_set_blob( IMAGE *im, const char *field,
im_callback_fn free_fn, void *blob, size_t blob_length ); im_callback_fn free_fn, void *data, size_t length );
int im_meta_get_blob( IMAGE *im, const char *field, int im_meta_get_blob( IMAGE *im, const char *field,
void **blob, size_t *blob_length ); void **data, size_t *length );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*!IM_META_H*/ #endif /*!IM_META_H*/
 End of changes. 6 change blocks. 
13 lines changed or deleted 14 lines changed or added


 morphology.h   morphology.h 
/* convolution.h /* morphology.h
* *
* 20/9/09 * 20/9/09
* - from proto.h * - from proto.h
*/ */
/* /*
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
skipping to change at line 40 skipping to change at line 40
*/ */
#ifndef IM_MORPHOLOGY_H #ifndef IM_MORPHOLOGY_H
#define IM_MORPHOLOGY_H #define IM_MORPHOLOGY_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
int im_dilate( IMAGE *in, IMAGE *out, INTMASK *m ); int im_dilate( IMAGE *in, IMAGE *out, INTMASK *mask );
int im_erode( IMAGE *in, IMAGE *out, INTMASK *m ); int im_erode( IMAGE *in, IMAGE *out, INTMASK *mask );
int im_rank( IMAGE *in, IMAGE *out, int xsize, int ysize, int order ); int im_rank( IMAGE *in, IMAGE *out, int width, int height, int index );
int im_rank_image( IMAGE **in, IMAGE *out, int n, int index ); int im_rank_image( IMAGE **in, IMAGE *out, int n, int index );
int im_maxvalue( IMAGE **in, IMAGE *out, int n ); int im_maxvalue( IMAGE **in, IMAGE *out, int n );
int im_cntlines( IMAGE *im, double *nolines, int flag ); int im_cntlines( IMAGE *im, double *nolines, int flag );
int im_zerox( IMAGE *in, IMAGE *out, int flag ); int im_zerox( IMAGE *in, IMAGE *out, int sign );
int im_profile( IMAGE *in, IMAGE *out, int dir ); int im_profile( IMAGE *in, IMAGE *out, int dir );
int im_label_regions( IMAGE *test, IMAGE *mask, int *segments ); int im_label_regions( IMAGE *test, IMAGE *mask, int *segments );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_MORPHOLOGY_H*/ #endif /*IM_MORPHOLOGY_H*/
 End of changes. 4 change blocks. 
5 lines changed or deleted 5 lines changed or added


 rect.h   rect.h 
skipping to change at line 39 skipping to change at line 39
#ifndef IM_RECT_H #ifndef IM_RECT_H
#define IM_RECT_H #define IM_RECT_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
/* A rectangle. /* A rectangle.
*/ */
typedef struct im_rect_struct { typedef struct _Rect {
int left, top, width, height; int left;
int top;
int width;
int height;
} Rect; } Rect;
#define IM_RECT_RIGHT(R) ((R)->left + (R)->width) #define IM_RECT_RIGHT(R) ((R)->left + (R)->width)
#define IM_RECT_BOTTOM(R) ((R)->top + (R)->height) #define IM_RECT_BOTTOM(R) ((R)->top + (R)->height)
#define IM_RECT_HCENTRE(R) ((R)->left + (R)->width / 2) #define IM_RECT_HCENTRE(R) ((R)->left + (R)->width / 2)
#define IM_RECT_VCENTRE(R) ((R)->top + (R)->height / 2) #define IM_RECT_VCENTRE(R) ((R)->top + (R)->height / 2)
/* Rectangle algebra functions. /* Rectangle algebra functions.
*/ */
void im_rect_marginadjust( Rect *r, int n ); void im_rect_marginadjust( Rect *r, int n );
 End of changes. 1 change blocks. 
2 lines changed or deleted 5 lines changed or added


 region.h   region.h 
skipping to change at line 80 skipping to change at line 80
* dropped. * dropped.
*/ */
gboolean invalid; gboolean invalid;
} REGION; } REGION;
REGION *im_region_create( IMAGE *im ); REGION *im_region_create( IMAGE *im );
void im_region_free( REGION *reg ); void im_region_free( REGION *reg );
int im_region_buffer( REGION *reg, Rect *r ); int im_region_buffer( REGION *reg, Rect *r );
int im_region_image( REGION *reg, Rect *r ); int im_region_image( REGION *reg, Rect *r );
int im_region_region( REGION *reg, REGION *to, Rect *r, int x, int y ); int im_region_region( REGION *reg, REGION *dest, Rect *r, int x, int y );
int im_region_equalsregion( REGION *reg1, REGION *reg2 ); int im_region_equalsregion( REGION *reg1, REGION *reg2 );
int im_region_position( REGION *reg1, int x, int y ); int im_region_position( REGION *reg, int x, int y );
void im_region_paint( REGION *reg, Rect *r, int value ); void im_region_paint( REGION *reg, Rect *r, int value );
void im_region_black( REGION *reg ); void im_region_black( REGION *reg );
void im_region_copy( REGION *reg, REGION *dest, Rect *r, int x, int y ); void im_region_copy( REGION *reg, REGION *dest, Rect *r, int x, int y );
/* Macros on REGIONs. /* Macros on REGIONs.
* IM_REGION_LSKIP() add to move down line * IM_REGION_LSKIP() add to move down line
* IM_REGION_N_ELEMENTS() number of elements across region * IM_REGION_N_ELEMENTS() number of elements across region
* IM_REGION_SIZEOF_LINE() sizeof width of region * IM_REGION_SIZEOF_LINE() sizeof width of region
* IM_REGION_ADDR() address of pixel in region * IM_REGION_ADDR() address of pixel in region
skipping to change at line 104 skipping to change at line 104
#define IM_REGION_LSKIP(R) \ #define IM_REGION_LSKIP(R) \
((size_t)((R)->bpl)) ((size_t)((R)->bpl))
#define IM_REGION_N_ELEMENTS(R) \ #define IM_REGION_N_ELEMENTS(R) \
((size_t)((R)->valid.width * (R)->im->Bands)) ((size_t)((R)->valid.width * (R)->im->Bands))
#define IM_REGION_SIZEOF_LINE(R) \ #define IM_REGION_SIZEOF_LINE(R) \
((size_t)((R)->valid.width * IM_IMAGE_SIZEOF_PEL((R)->im))) ((size_t)((R)->valid.width * IM_IMAGE_SIZEOF_PEL((R)->im)))
/* If DEBUG is defined, add bounds checking. /* If DEBUG is defined, add bounds checking.
*/ */
#ifdef DEBUG #ifdef DEBUG
#define IM_REGION_ADDR(B,X,Y) \ #define IM_REGION_ADDR(R,X,Y) \
( (im_rect_includespoint( &(B)->valid, (X), (Y) ))? \ ( (im_rect_includespoint( &(R)->valid, (X), (Y) ))? \
((B)->data + ((Y) - (B)->valid.top) * IM_REGION_LSKIP(B) + \ ((R)->data + ((Y) - (R)->valid.top) * IM_REGION_LSKIP(R) + \
((X) - (B)->valid.left) * IM_IMAGE_SIZEOF_PEL((B)->im)): \ ((X) - (R)->valid.left) * IM_IMAGE_SIZEOF_PEL((R)->im)): \
(fprintf( stderr, \ (fprintf( stderr, \
"IM_REGION_ADDR: point out of bounds, " \ "IM_REGION_ADDR: point out of bounds, " \
"file \"%s\", line %d\n" \ "file \"%s\", line %d\n" \
"(point x=%d, y=%d\n" \ "(point x=%d, y=%d\n" \
" should have been within Rect left=%d, top=%d, " \ " should have been within Rect left=%d, top=%d, " \
"width=%d, height=%d)\n", \ "width=%d, height=%d)\n", \
__FILE__, __LINE__, \ __FILE__, __LINE__, \
(X), (Y), \ (X), (Y), \
(B)->valid.left, \ (R)->valid.left, \
(B)->valid.top, \ (R)->valid.top, \
(B)->valid.width, \ (R)->valid.width, \
(B)->valid.height ), abort(), (char *) NULL) \ (R)->valid.height ), abort(), (char *) NULL) \
) )
#else /*DEBUG*/ #else /*DEBUG*/
#define IM_REGION_ADDR(B,X,Y) \ #define IM_REGION_ADDR(R,X,Y) \
((B)->data + \ ((R)->data + \
((Y)-(B)->valid.top) * IM_REGION_LSKIP(B) + \ ((Y)-(R)->valid.top) * IM_REGION_LSKIP(R) + \
((X)-(B)->valid.left) * IM_IMAGE_SIZEOF_PEL((B)->im)) ((X)-(R)->valid.left) * IM_IMAGE_SIZEOF_PEL((R)->im))
#endif /*DEBUG*/ #endif /*DEBUG*/
#define IM_REGION_ADDR_TOPLEFT(B) ( (B)->data ) #define IM_REGION_ADDR_TOPLEFT(R) ( (R)->data )
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_REGION_H*/ #endif /*IM_REGION_H*/
 End of changes. 6 change blocks. 
15 lines changed or deleted 15 lines changed or added


 threadpool.h   threadpool.h 
skipping to change at line 67 skipping to change at line 67
(G_TYPE_CHECK_INSTANCE_TYPE( (obj), VIPS_TYPE_THREAD_STATE )) (G_TYPE_CHECK_INSTANCE_TYPE( (obj), VIPS_TYPE_THREAD_STATE ))
#define VIPS_IS_THREAD_STATE_CLASS( klass ) \ #define VIPS_IS_THREAD_STATE_CLASS( klass ) \
(G_TYPE_CHECK_CLASS_TYPE( (klass), VIPS_TYPE_THREAD_STATE )) (G_TYPE_CHECK_CLASS_TYPE( (klass), VIPS_TYPE_THREAD_STATE ))
#define VIPS_THREAD_STATE_GET_CLASS( obj ) \ #define VIPS_THREAD_STATE_GET_CLASS( obj ) \
(G_TYPE_INSTANCE_GET_CLASS( (obj), \ (G_TYPE_INSTANCE_GET_CLASS( (obj), \
VIPS_TYPE_THREAD_STATE, VipsThreadStateClass )) VIPS_TYPE_THREAD_STATE, VipsThreadStateClass ))
typedef struct _VipsThreadState { typedef struct _VipsThreadState {
VipsObject parent_object; VipsObject parent_object;
/*< public >*/
/* Image we run on. /* Image we run on.
*/ */
VipsImage *im; VipsImage *im;
/* This region is created and destroyed by the threadpool for the /* This region is created and destroyed by the threadpool for the
* use of the worker. * use of the worker.
*/ */
REGION *reg; REGION *reg;
/* Neither used nor set, do what you like with them. /* Neither used nor set, do what you like with them.
skipping to change at line 89 skipping to change at line 90
int x, y; int x, y;
/* The client data passed to the enclosing vips_threadpool_run(). /* The client data passed to the enclosing vips_threadpool_run().
*/ */
void *a; void *a;
} VipsThreadState; } VipsThreadState;
typedef struct _VipsThreadStateClass { typedef struct _VipsThreadStateClass {
VipsObjectClass parent_class; VipsObjectClass parent_class;
/*< public >*/
} VipsThreadStateClass; } VipsThreadStateClass;
void *vips_thread_state_set( VipsObject *object, void *a, void *b ); void *vips_thread_state_set( VipsObject *object, void *a, void *b );
GType vips_thread_state_get_type( void ); GType vips_thread_state_get_type( void );
VipsThreadState *vips_thread_state_new( VipsImage *im, void *a ); VipsThreadState *vips_thread_state_new( VipsImage *im, void *a );
/* Constructor for per-thread state. /* Constructor for per-thread state.
*/ */
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 util.h   util.h 
skipping to change at line 49 skipping to change at line 49
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#include <stdio.h> #include <stdio.h>
/* Some platforms don't have M_PI in math.h :-( /* Some platforms don't have M_PI in math.h :-(
*/ */
#define IM_PI (3.14159265358979323846) #define IM_PI (3.14159265358979323846)
/* Convert degrees->rads and vice-versa. /* Convert degrees->rads and vice-versa.
*/ */
#define IM_RAD( r ) (((r) / 360.0) * 2.0 * IM_PI) #define IM_RAD( R ) (((R) / 360.0) * 2.0 * IM_PI)
#define IM_DEG( a ) (((a) / (2.0 * IM_PI)) * 360.0) #define IM_DEG( A ) (((A) / (2.0 * IM_PI)) * 360.0)
#define IM_MAX( A, B ) ((A) > (B) ? (A) : (B)) #define IM_MAX( A, B ) ((A) > (B) ? (A) : (B))
#define IM_MIN( A, B ) ((A) < (B) ? (A) : (B)) #define IM_MIN( A, B ) ((A) < (B) ? (A) : (B))
#define IM_ABS( x ) (((x) >= 0) ? (x) : -(x)) #define IM_ABS( X ) (((X) >= 0) ? (X) : -(X))
#define IM_CLIP( A, V, B ) IM_MAX( (A), IM_MIN( (B), (V) ) ) #define IM_CLIP( A, V, B ) IM_MAX( (A), IM_MIN( (B), (V) ) )
#define IM_NUMBER( R ) ((int) (sizeof(R) / sizeof(R[0]))) #define IM_NUMBER( R ) ((int) (sizeof(R) / sizeof(R[0])))
#define IM_SWAP( TYPE, A, B ) \
G_STMT_START { \
TYPE t = (A); \
(A) = (B); \
(B) = t; \
} G_STMT_END
#define IM_FREEF( F, S ) \ #define IM_FREEF( F, S ) \
G_STMT_START { \ G_STMT_START { \
if( S ) { \ if( S ) { \
(void) F( (S) ); \ (void) F( (S) ); \
(S) = 0; \ (S) = 0; \
} \ } \
} G_STMT_END } G_STMT_END
/* Can't just use IM_FREEF(), we want the extra cast to void on the argumen t /* Can't just use IM_FREEF(), we want the extra cast to void on the argumen t
* to im_free() to make sure we can work for "const char *" variables. * to im_free() to make sure we can work for "const char *" variables.
skipping to change at line 93 skipping to change at line 100
if( !(S) || !sst || strcmp( (S), sst ) != 0 ) { \ if( !(S) || !sst || strcmp( (S), sst ) != 0 ) { \
IM_FREE( S ); \ IM_FREE( S ); \
if( sst ) \ if( sst ) \
(S) = im_strdup( NULL, sst ); \ (S) = im_strdup( NULL, sst ); \
} \ } \
} \ } \
} G_STMT_END } G_STMT_END
/* Duff's device. Do OPERation N times in a 16-way unrolled loop. /* Duff's device. Do OPERation N times in a 16-way unrolled loop.
*/ */
#define IM_UNROLL( N, OPER ) { \ #define IM_UNROLL( N, OPER ) \
G_STMT_START { \
if( (N) ) { \ if( (N) ) { \
int duff_count = ((N) + 15) / 16; \ int duff_count = ((N) + 15) / 16; \
\ \
switch( (N) % 16 ) { \ switch( (N) % 16 ) { \
case 0: do { OPER; \ case 0: do { OPER; \
case 15: OPER; \ case 15: OPER; \
case 14: OPER; \ case 14: OPER; \
case 13: OPER; \ case 13: OPER; \
case 12: OPER; \ case 12: OPER; \
case 11: OPER; \ case 11: OPER; \
skipping to change at line 117 skipping to change at line 125
case 7: OPER; \ case 7: OPER; \
case 6: OPER; \ case 6: OPER; \
case 5: OPER; \ case 5: OPER; \
case 4: OPER; \ case 4: OPER; \
case 3: OPER; \ case 3: OPER; \
case 2: OPER; \ case 2: OPER; \
case 1: OPER; \ case 1: OPER; \
} while( --duff_count > 0 ); \ } while( --duff_count > 0 ); \
} \ } \
} \ } \
} } G_STMT_END
/* Round a float to the nearest integer. Much faster than rint(). /* Round a float to the nearest integer. Much faster than rint().
*/ */
#define IM_RINT( R ) ((int)((R)>0?((R)+0.5):((R)-0.5))) #define IM_RINT( R ) ((int) ((R) > 0 ? ((R) + 0.5) : ((R) - 0.5)))
/* Various integer range clips. Record over/under flows. /* Various integer range clips. Record over/under flows.
*/ */
#define IM_CLIP_UCHAR( V, SEQ ) { \ #define IM_CLIP_UCHAR( V, SEQ ) \
G_STMT_START { \
if( (V) < 0 ) { \ if( (V) < 0 ) { \
(SEQ)->underflow++; \ (SEQ)->underflow++; \
(V) = 0; \ (V) = 0; \
} \ } \
else if( (V) > UCHAR_MAX ) { \ else if( (V) > UCHAR_MAX ) { \
(SEQ)->overflow++; \ (SEQ)->overflow++; \
(V) = UCHAR_MAX; \ (V) = UCHAR_MAX; \
} \ } \
} } G_STMT_END
#define IM_CLIP_USHORT( V, SEQ ) { \ #define IM_CLIP_USHORT( V, SEQ ) \
G_STMT_START { \
if( (V) < 0 ) { \ if( (V) < 0 ) { \
(SEQ)->underflow++; \ (SEQ)->underflow++; \
(V) = 0; \ (V) = 0; \
} \ } \
else if( (V) > USHRT_MAX ) { \ else if( (V) > USHRT_MAX ) { \
(SEQ)->overflow++; \ (SEQ)->overflow++; \
(V) = USHRT_MAX; \ (V) = USHRT_MAX; \
} \ } \
} } G_STMT_END
#define IM_CLIP_CHAR( V, SEQ ) { \ #define IM_CLIP_CHAR( V, SEQ ) \
G_STMT_START { \
if( (V) < SCHAR_MIN ) { \ if( (V) < SCHAR_MIN ) { \
(SEQ)->underflow++; \ (SEQ)->underflow++; \
(V) = SCHAR_MIN; \ (V) = SCHAR_MIN; \
} \ } \
else if( (V) > SCHAR_MAX ) { \ else if( (V) > SCHAR_MAX ) { \
(SEQ)->overflow++; \ (SEQ)->overflow++; \
(V) = SCHAR_MAX; \ (V) = SCHAR_MAX; \
} \ } \
} } G_STMT_END
#define IM_CLIP_SHORT( V, SEQ ) { \ #define IM_CLIP_SHORT( V, SEQ ) \
G_STMT_START { \
if( (V) < SHRT_MIN ) { \ if( (V) < SHRT_MIN ) { \
(SEQ)->underflow++; \ (SEQ)->underflow++; \
(V) = SHRT_MIN; \ (V) = SHRT_MIN; \
} \ } \
else if( (V) > SHRT_MAX ) { \ else if( (V) > SHRT_MAX ) { \
(SEQ)->overflow++; \ (SEQ)->overflow++; \
(V) = SHRT_MAX; \ (V) = SHRT_MAX; \
} \ } \
} } G_STMT_END
#define IM_CLIP_NONE( V, SEQ ) {} #define IM_CLIP_NONE( V, SEQ ) {}
typedef void *(*im_construct_fn)( void *, void *, void * ); typedef void *(*im_construct_fn)( void *, void *, void * );
void *im_local( VipsImage *im, void *im_local( VipsImage *im,
im_construct_fn cons, im_callback_fn dest, void *a, void *b, void *c ); im_construct_fn cons, im_callback_fn dest, void *a, void *b, void *c );
int im_local_array( VipsImage *im, void **out, int n, int im_local_array( VipsImage *im, void **out, int n,
im_construct_fn cons, im_callback_fn dest, void *a, void *b, void *c ); im_construct_fn cons, im_callback_fn dest, void *a, void *b, void *c );
 End of changes. 14 change blocks. 
14 lines changed or deleted 26 lines changed or added


 version.h   version.h 
/* Macros for the header version. /* Macros for the header version.
*/ */
#ifndef IM_VERSION_H #ifndef IM_VERSION_H
#define IM_VERSION_H #define IM_VERSION_H
#define IM_VERSION "7.22.7" #define IM_VERSION "7.24.1"
#define IM_VERSION_STRING "7.22.7-Tue Jan 21 00:33:41 MSK 2014" #define IM_VERSION_STRING "7.24.1-Tue Jan 21 00:31:39 MSK 2014"
#define IM_MAJOR_VERSION (7) #define IM_MAJOR_VERSION (7)
#define IM_MINOR_VERSION (22) #define IM_MINOR_VERSION (24)
#define IM_MICRO_VERSION (7) #define IM_MICRO_VERSION (1)
#define IM_INTERFACE_AGE (@IM_INTERFACE_AGE@) #define IM_INTERFACE_AGE (@IM_INTERFACE_AGE@)
#define IM_BINARY_AGE (@IM_BINARY_AGE@) #define IM_BINARY_AGE (@IM_BINARY_AGE@)
#endif /*IM_VERSION_H*/ #endif /*IM_VERSION_H*/
 End of changes. 2 change blocks. 
4 lines changed or deleted 4 lines changed or added


 vipsc++.h   vipsc++.h 
// headers for package arithmetic // headers for package arithmetic
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage abs() throw( VError ); VImage abs() throw( VError );
VImage acos() throw( VError ); VImage acos() throw( VError );
VImage add( VImage ) throw( VError ); VImage add( VImage ) throw( VError );
VImage asin() throw( VError ); VImage asin() throw( VError );
VImage atan() throw( VError ); VImage atan() throw( VError );
double avg() throw( VError ); double avg() throw( VError );
double point_bilinear( double, double, int ) throw( VError ); double point_bilinear( double, double, int ) throw( VError );
VImage bandmean() throw( VError ); VImage bandmean() throw( VError );
VImage ceil() throw( VError ); VImage ceil() throw( VError );
VImage cos() throw( VError ); VImage cos() throw( VError );
skipping to change at line 51 skipping to change at line 51
VImage remainder( std::vector<double> ) throw( VError ); VImage remainder( std::vector<double> ) throw( VError );
VImage rint() throw( VError ); VImage rint() throw( VError );
VImage sign() throw( VError ); VImage sign() throw( VError );
VImage sin() throw( VError ); VImage sin() throw( VError );
VDMask stats() throw( VError ); VDMask stats() throw( VError );
VImage subtract( VImage ) throw( VError ); VImage subtract( VImage ) throw( VError );
VImage tan() throw( VError ); VImage tan() throw( VError );
// headers for package boolean // headers for package boolean
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage andimage( VImage ) throw( VError ); VImage andimage( VImage ) throw( VError );
VImage andimage( int ) throw( VError ); VImage andimage( int ) throw( VError );
VImage andimage( std::vector<double> ) throw( VError ); VImage andimage( std::vector<double> ) throw( VError );
VImage orimage( VImage ) throw( VError ); VImage orimage( VImage ) throw( VError );
VImage orimage( int ) throw( VError ); VImage orimage( int ) throw( VError );
VImage orimage( std::vector<double> ) throw( VError ); VImage orimage( std::vector<double> ) throw( VError );
VImage eorimage( VImage ) throw( VError ); VImage eorimage( VImage ) throw( VError );
VImage eorimage( int ) throw( VError ); VImage eorimage( int ) throw( VError );
VImage eorimage( std::vector<double> ) throw( VError ); VImage eorimage( std::vector<double> ) throw( VError );
VImage shiftleft( std::vector<double> ) throw( VError ); VImage shiftleft( std::vector<double> ) throw( VError );
VImage shiftleft( int ) throw( VError ); VImage shiftleft( int ) throw( VError );
VImage shiftright( std::vector<double> ) throw( VError ); VImage shiftright( std::vector<double> ) throw( VError );
VImage shiftright( int ) throw( VError ); VImage shiftright( int ) throw( VError );
// headers for package cimg // headers for package cimg
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage greyc( int, double, double, double, double, double, double, double, double, int, int ) throw( VError ); VImage greyc( int, double, double, double, double, double, double, double, double, int, int ) throw( VError );
VImage greyc_mask( VImage, int, double, double, double, double, double, dou ble, double, double, int, int ) throw( VError ); VImage greyc_mask( VImage, int, double, double, double, double, double, dou ble, double, double, int, int ) throw( VError );
// headers for package colour // headers for package colour
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage LCh2Lab() throw( VError ); VImage LCh2Lab() throw( VError );
VImage LCh2UCS() throw( VError ); VImage LCh2UCS() throw( VError );
VImage Lab2LCh() throw( VError ); VImage Lab2LCh() throw( VError );
VImage Lab2LabQ() throw( VError ); VImage Lab2LabQ() throw( VError );
VImage Lab2LabS() throw( VError ); VImage Lab2LabS() throw( VError );
VImage Lab2UCS() throw( VError ); VImage Lab2UCS() throw( VError );
VImage Lab2XYZ() throw( VError ); VImage Lab2XYZ() throw( VError );
VImage Lab2XYZ_temp( double, double, double ) throw( VError ); VImage Lab2XYZ_temp( double, double, double ) throw( VError );
VImage Lab2disp( VDisplay ) throw( VError ); VImage Lab2disp( VDisplay ) throw( VError );
VImage LabQ2LabS() throw( VError ); VImage LabQ2LabS() throw( VError );
skipping to change at line 120 skipping to change at line 120
VImage icc_export_depth( int, char*, int ) throw( VError ); VImage icc_export_depth( int, char*, int ) throw( VError );
VImage icc_import( char*, int ) throw( VError ); VImage icc_import( char*, int ) throw( VError );
VImage icc_import_embedded( int ) throw( VError ); VImage icc_import_embedded( int ) throw( VError );
VImage icc_transform( char*, char*, int ) throw( VError ); VImage icc_transform( char*, char*, int ) throw( VError );
VImage lab_morph( VDMask, double, double, double, double ) throw( VError ); VImage lab_morph( VDMask, double, double, double, double ) throw( VError );
VImage rad2float() throw( VError ); VImage rad2float() throw( VError );
VImage sRGB2XYZ() throw( VError ); VImage sRGB2XYZ() throw( VError );
// headers for package conversion // headers for package conversion
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
static VImage gaussnoise( int, int, double, double ) throw( VError ); static VImage gaussnoise( int, int, double, double ) throw( VError );
VImage bandjoin( VImage ) throw( VError ); VImage bandjoin( VImage ) throw( VError );
static VImage black( int, int, int ) throw( VError ); static VImage black( int, int, int ) throw( VError );
VImage c2amph() throw( VError ); VImage c2amph() throw( VError );
VImage c2imag() throw( VError ); VImage c2imag() throw( VError );
VImage c2real() throw( VError ); VImage c2real() throw( VError );
VImage c2rect() throw( VError ); VImage c2rect() throw( VError );
VImage clip2fmt( int ) throw( VError ); VImage clip2fmt( int ) throw( VError );
VImage copy() throw( VError ); VImage copy() throw( VError );
VImage copy_file() throw( VError ); VImage copy_file() throw( VError );
skipping to change at line 170 skipping to change at line 170
char* system( char* ) throw( VError ); char* system( char* ) throw( VError );
VImage system_image( char*, char*, char*, char*& ) throw( VError ); VImage system_image( char*, char*, char*, char*& ) throw( VError );
VImage tbjoin( VImage ) throw( VError ); VImage tbjoin( VImage ) throw( VError );
static VImage text( char*, char*, int, int, int ) throw( VError ); static VImage text( char*, char*, int, int, int ) throw( VError );
VDMask vips2mask() throw( VError ); VDMask vips2mask() throw( VError );
VImage wrap( int, int ) throw( VError ); VImage wrap( int, int ) throw( VError );
VImage zoom( int, int ) throw( VError ); VImage zoom( int, int ) throw( VError );
// headers for package convolution // headers for package convolution
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage addgnoise( double ) throw( VError ); VImage addgnoise( double ) throw( VError );
VImage compass( VIMask ) throw( VError ); VImage compass( VIMask ) throw( VError );
VImage contrast_surface( int, int ) throw( VError ); VImage contrast_surface( int, int ) throw( VError );
VImage conv( VIMask ) throw( VError ); VImage conv( VIMask ) throw( VError );
VImage conv( VDMask ) throw( VError ); VImage conv( VDMask ) throw( VError );
VImage convsep( VIMask ) throw( VError ); VImage convsep( VIMask ) throw( VError );
VImage convsep( VDMask ) throw( VError ); VImage convsep( VDMask ) throw( VError );
VImage fastcor( VImage ) throw( VError ); VImage fastcor( VImage ) throw( VError );
VImage gradcor( VImage ) throw( VError ); VImage gradcor( VImage ) throw( VError );
VImage gradient( VIMask ) throw( VError ); VImage gradient( VIMask ) throw( VError );
VImage grad_x() throw( VError ); VImage grad_x() throw( VError );
VImage grad_y() throw( VError ); VImage grad_y() throw( VError );
VImage lindetect( VIMask ) throw( VError ); VImage lindetect( VIMask ) throw( VError );
VImage sharpen( int, double, double, double, double, double ) throw( VError ); VImage sharpen( int, double, double, double, double, double ) throw( VError );
VImage spcor( VImage ) throw( VError ); VImage spcor( VImage ) throw( VError );
// headers for package deprecated // headers for package deprecated
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage flood_copy( int, int, std::vector<double> ) throw( VError );
VImage flood_blob_copy( int, int, std::vector<double> ) throw( VError );
VImage flood_other_copy( VImage, int, int, int ) throw( VError );
VImage clip() throw( VError ); VImage clip() throw( VError );
VImage c2ps() throw( VError ); VImage c2ps() throw( VError );
VImage resize_linear( int, int ) throw( VError ); VImage resize_linear( int, int ) throw( VError );
VImage cmulnorm( VImage ) throw( VError ); VImage cmulnorm( VImage ) throw( VError );
VImage fav4( VImage, VImage, VImage ) throw( VError ); VImage fav4( VImage, VImage, VImage ) throw( VError );
VImage gadd( double, double, VImage, double ) throw( VError ); VImage gadd( double, double, VImage, double ) throw( VError );
VImage icc_export( char*, int ) throw( VError ); VImage icc_export( char*, int ) throw( VError );
VImage litecor( VImage, int, double ) throw( VError ); VImage litecor( VImage, int, double ) throw( VError );
VImage affine( double, double, double, double, double, double, int, int, in t, int ) throw( VError ); VImage affine( double, double, double, double, double, double, int, int, in t, int ) throw( VError );
VImage clip2c() throw( VError ); VImage clip2c() throw( VError );
skipping to change at line 231 skipping to change at line 234
VImage fastcor_raw( VImage ) throw( VError ); VImage fastcor_raw( VImage ) throw( VError );
VImage gradcor_raw( VImage ) throw( VError ); VImage gradcor_raw( VImage ) throw( VError );
VImage spcor_raw( VImage ) throw( VError ); VImage spcor_raw( VImage ) throw( VError );
VImage lhisteq_raw( int, int ) throw( VError ); VImage lhisteq_raw( int, int ) throw( VError );
VImage stdif_raw( double, double, double, double, int, int ) throw( VError ); VImage stdif_raw( double, double, double, double, int, int ) throw( VError );
VImage rank_raw( int, int, int ) throw( VError ); VImage rank_raw( int, int, int ) throw( VError );
VImage dilate_raw( VIMask ) throw( VError ); VImage dilate_raw( VIMask ) throw( VError );
VImage erode_raw( VIMask ) throw( VError ); VImage erode_raw( VIMask ) throw( VError );
VImage similarity_area( double, double, double, double, int, int, int, int ) throw( VError ); VImage similarity_area( double, double, double, double, int, int, int, int ) throw( VError );
VImage similarity( double, double, double, double ) throw( VError ); VImage similarity( double, double, double, double ) throw( VError );
void insertplace( VImage, int, int ) throw( VError );
void circle( int, int, int, int ) throw( VError );
// headers for package format // headers for package format
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
static VImage csv2vips( char* ) throw( VError ); static VImage csv2vips( char* ) throw( VError );
static VImage jpeg2vips( char* ) throw( VError ); static VImage jpeg2vips( char* ) throw( VError );
static VImage magick2vips( char* ) throw( VError ); static VImage magick2vips( char* ) throw( VError );
static VImage png2vips( char* ) throw( VError ); static VImage png2vips( char* ) throw( VError );
static VImage exr2vips( char* ) throw( VError ); static VImage exr2vips( char* ) throw( VError );
static VImage ppm2vips( char* ) throw( VError ); static VImage ppm2vips( char* ) throw( VError );
static VImage analyze2vips( char* ) throw( VError ); static VImage analyze2vips( char* ) throw( VError );
static VImage tiff2vips( char* ) throw( VError ); static VImage tiff2vips( char* ) throw( VError );
void vips2csv( char* ) throw( VError ); void vips2csv( char* ) throw( VError );
void vips2jpeg( char* ) throw( VError ); void vips2jpeg( char* ) throw( VError );
void vips2mimejpeg( int ) throw( VError ); void vips2mimejpeg( int ) throw( VError );
void vips2png( char* ) throw( VError ); void vips2png( char* ) throw( VError );
void vips2ppm( char* ) throw( VError ); void vips2ppm( char* ) throw( VError );
void vips2tiff( char* ) throw( VError ); void vips2tiff( char* ) throw( VError );
// headers for package freq_filt // headers for package freq_filt
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
static VImage create_fmask( int, int, int, double, double, double, double, double ) throw( VError ); static VImage create_fmask( int, int, int, double, double, double, double, double ) throw( VError );
VImage disp_ps() throw( VError ); VImage disp_ps() throw( VError );
VImage flt_image_freq( int, double, double, double, double, double ) throw( VError ); VImage flt_image_freq( int, double, double, double, double, double ) throw( VError );
static VImage fractsurf( int, double ) throw( VError ); static VImage fractsurf( int, double ) throw( VError );
VImage freqflt( VImage ) throw( VError ); VImage freqflt( VImage ) throw( VError );
VImage fwfft() throw( VError ); VImage fwfft() throw( VError );
VImage rotquad() throw( VError ); VImage rotquad() throw( VError );
VImage invfft() throw( VError ); VImage invfft() throw( VError );
VImage phasecor_fft( VImage ) throw( VError ); VImage phasecor_fft( VImage ) throw( VError );
VImage invfftr() throw( VError ); VImage invfftr() throw( VError );
// headers for package histograms_lut // headers for package histograms_lut
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage gammacorrect( double ) throw( VError ); VImage gammacorrect( double ) throw( VError );
VImage heq( int ) throw( VError ); VImage heq( int ) throw( VError );
VImage hist( int ) throw( VError ); VImage hist( int ) throw( VError );
VImage histcum() throw( VError ); VImage histcum() throw( VError );
VImage histeq() throw( VError ); VImage histeq() throw( VError );
VImage hist_indexed( VImage ) throw( VError ); VImage hist_indexed( VImage ) throw( VError );
VImage histgr( int ) throw( VError ); VImage histgr( int ) throw( VError );
VImage histnD( int ) throw( VError ); VImage histnD( int ) throw( VError );
VImage histnorm() throw( VError ); VImage histnorm() throw( VError );
VImage histplot() throw( VError ); VImage histplot() throw( VError );
skipping to change at line 296 skipping to change at line 301
VImage maplut( VImage ) throw( VError ); VImage maplut( VImage ) throw( VError );
VImage project( VImage& ) throw( VError ); VImage project( VImage& ) throw( VError );
VImage stdif( double, double, double, double, int, int ) throw( VError ); VImage stdif( double, double, double, double, int, int ) throw( VError );
VImage tone_analyse( double, double, double, double, double, double ) throw ( VError ); VImage tone_analyse( double, double, double, double, double, double ) throw ( VError );
static VImage tone_build( double, double, double, double, double, double, d ouble, double ) throw( VError ); static VImage tone_build( double, double, double, double, double, double, d ouble, double ) throw( VError );
static VImage tone_build_range( int, int, double, double, double, double, d ouble, double, double, double ) throw( VError ); static VImage tone_build_range( int, int, double, double, double, double, d ouble, double, double, double ) throw( VError );
VImage tone_map( VImage ) throw( VError ); VImage tone_map( VImage ) throw( VError );
// headers for package inplace // headers for package inplace
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
void circle( int, int, int, int ) throw( VError ); void draw_circle( int, int, int, int, std::vector<double> ) throw( VError )
VImage flood_copy( int, int, std::vector<double> ) throw( VError ); ;
VImage flood_blob_copy( int, int, std::vector<double> ) throw( VError ); void draw_rect( int, int, int, int, int, std::vector<double> ) throw( VErro
VImage flood_other_copy( VImage, int, int, int ) throw( VError ); r );
void insertplace( VImage, int, int ) throw( VError ); void draw_line( int, int, int, int, std::vector<double> ) throw( VError );
void draw_point( int, int, std::vector<double> ) throw( VError );
void draw_smudge( int, int, int, int ) throw( VError );
void draw_flood( int, int, std::vector<double> ) throw( VError );
void draw_flood_blob( int, int, std::vector<double> ) throw( VError );
void draw_flood_other( VImage, int, int, int ) throw( VError );
void draw_image( VImage, int, int ) throw( VError );
void draw_mask( VImage, int, int, std::vector<double> ) throw( VError );
VImage line( VImage, VImage, std::vector<int>, std::vector<int>, std::vecto r<int>, std::vector<int> ) throw( VError ); VImage line( VImage, VImage, std::vector<int>, std::vector<int>, std::vecto r<int>, std::vector<int> ) throw( VError );
// headers for package iofuncs // headers for package iofuncs
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
static VImage binfile( char*, int, int, int, int ) throw( VError ); static VImage binfile( char*, int, int, int, int ) throw( VError );
VImage cache( int, int, int ) throw( VError ); VImage cache( int, int, int ) throw( VError );
char* getext() throw( VError ); char* getext() throw( VError );
int header_get_typeof( char* ) throw( VError ); int header_get_typeof( char* ) throw( VError );
int header_int( char* ) throw( VError ); int header_int( char* ) throw( VError );
double header_double( char* ) throw( VError ); double header_double( char* ) throw( VError );
char* header_string( char* ) throw( VError ); char* header_string( char* ) throw( VError );
char* history_get() throw( VError ); char* history_get() throw( VError );
void printdesc() throw( VError ); void printdesc() throw( VError );
// headers for package mask // headers for package mask
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
// headers for package morphology // headers for package morphology
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
double cntlines( int ) throw( VError ); double cntlines( int ) throw( VError );
VImage dilate( VIMask ) throw( VError ); VImage dilate( VIMask ) throw( VError );
VImage rank( int, int, int ) throw( VError ); VImage rank( int, int, int ) throw( VError );
static VImage rank_image( std::vector<VImage>, int ) throw( VError ); static VImage rank_image( std::vector<VImage>, int ) throw( VError );
static VImage maxvalue( std::vector<VImage> ) throw( VError ); static VImage maxvalue( std::vector<VImage> ) throw( VError );
VImage label_regions( int& ) throw( VError ); VImage label_regions( int& ) throw( VError );
VImage zerox( int ) throw( VError ); VImage zerox( int ) throw( VError );
VImage erode( VIMask ) throw( VError ); VImage erode( VIMask ) throw( VError );
VImage profile( int ) throw( VError ); VImage profile( int ) throw( VError );
// headers for package mosaicing // headers for package mosaicing
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage align_bands() throw( VError ); VImage align_bands() throw( VError );
double correl( VImage, int, int, int, int, int, int, int&, int& ) throw( VE rror ); double correl( VImage, int, int, int, int, int, int, int&, int& ) throw( VE rror );
int _find_lroverlap( VImage, int, int, int, int, int, int, int, int&, doubl e&, double&, double&, double& ) throw( VError ); int _find_lroverlap( VImage, int, int, int, int, int, int, int, int&, doubl e&, double&, double&, double& ) throw( VError );
int _find_tboverlap( VImage, int, int, int, int, int, int, int, int&, doubl e&, double&, double&, double& ) throw( VError ); int _find_tboverlap( VImage, int, int, int, int, int, int, int, int&, doubl e&, double&, double&, double& ) throw( VError );
VImage global_balance( double ) throw( VError ); VImage global_balance( double ) throw( VError );
VImage global_balancef( double ) throw( VError ); VImage global_balancef( double ) throw( VError );
VImage lrmerge( VImage, int, int, int ) throw( VError ); VImage lrmerge( VImage, int, int, int ) throw( VError );
VImage lrmerge1( VImage, int, int, int, int, int, int, int, int, int ) thro w( VError ); VImage lrmerge1( VImage, int, int, int, int, int, int, int, int, int ) thro w( VError );
VImage lrmosaic( VImage, int, int, int, int, int, int, int, int, int ) thro w( VError ); VImage lrmosaic( VImage, int, int, int, int, int, int, int, int, int ) thro w( VError );
VImage lrmosaic1( VImage, int, int, int, int, int, int, int, int, int, int, int, int, int ) throw( VError ); VImage lrmosaic1( VImage, int, int, int, int, int, int, int, int, int, int, int, int, int ) throw( VError );
skipping to change at line 358 skipping to change at line 368
VImage match_linear_search( VImage, int, int, int, int, int, int, int, int, int, int ) throw( VError ); VImage match_linear_search( VImage, int, int, int, int, int, int, int, int, int, int ) throw( VError );
double maxpos_subpel( double& ) throw( VError ); double maxpos_subpel( double& ) throw( VError );
VImage remosaic( char*, char* ) throw( VError ); VImage remosaic( char*, char* ) throw( VError );
VImage tbmerge( VImage, int, int, int ) throw( VError ); VImage tbmerge( VImage, int, int, int ) throw( VError );
VImage tbmerge1( VImage, int, int, int, int, int, int, int, int, int ) thro w( VError ); VImage tbmerge1( VImage, int, int, int, int, int, int, int, int, int ) thro w( VError );
VImage tbmosaic( VImage, int, int, int, int, int, int, int, int, int ) thro w( VError ); VImage tbmosaic( VImage, int, int, int, int, int, int, int, int, int ) thro w( VError );
VImage tbmosaic1( VImage, int, int, int, int, int, int, int, int, int, int, int, int, int ) throw( VError ); VImage tbmosaic1( VImage, int, int, int, int, int, int, int, int, int, int, int, int, int ) throw( VError );
// headers for package other // headers for package other
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage benchmark() throw( VError ); VImage benchmark() throw( VError );
double benchmark2() throw( VError ); double benchmark2() throw( VError );
VImage benchmarkn( int ) throw( VError ); VImage benchmarkn( int ) throw( VError );
static VImage eye( int, int, double ) throw( VError ); static VImage eye( int, int, double ) throw( VError );
static VImage grey( int, int ) throw( VError ); static VImage grey( int, int ) throw( VError );
static VImage feye( int, int, double ) throw( VError ); static VImage feye( int, int, double ) throw( VError );
static VImage fgrey( int, int ) throw( VError ); static VImage fgrey( int, int ) throw( VError );
static VImage fzone( int ) throw( VError ); static VImage fzone( int ) throw( VError );
static VImage make_xy( int, int ) throw( VError ); static VImage make_xy( int, int ) throw( VError );
static VImage zone( int ) throw( VError ); static VImage zone( int ) throw( VError );
// headers for package relational // headers for package relational
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage blend( VImage, VImage ) throw( VError ); VImage blend( VImage, VImage ) throw( VError );
VImage equal( VImage ) throw( VError ); VImage equal( VImage ) throw( VError );
VImage equal( std::vector<double> ) throw( VError ); VImage equal( std::vector<double> ) throw( VError );
VImage equal( double ) throw( VError ); VImage equal( double ) throw( VError );
VImage ifthenelse( VImage, VImage ) throw( VError ); VImage ifthenelse( VImage, VImage ) throw( VError );
VImage less( VImage ) throw( VError ); VImage less( VImage ) throw( VError );
VImage less( std::vector<double> ) throw( VError ); VImage less( std::vector<double> ) throw( VError );
VImage less( double ) throw( VError ); VImage less( double ) throw( VError );
VImage lesseq( VImage ) throw( VError ); VImage lesseq( VImage ) throw( VError );
VImage lesseq( std::vector<double> ) throw( VError ); VImage lesseq( std::vector<double> ) throw( VError );
skipping to change at line 396 skipping to change at line 406
VImage more( double ) throw( VError ); VImage more( double ) throw( VError );
VImage moreeq( VImage ) throw( VError ); VImage moreeq( VImage ) throw( VError );
VImage moreeq( std::vector<double> ) throw( VError ); VImage moreeq( std::vector<double> ) throw( VError );
VImage moreeq( double ) throw( VError ); VImage moreeq( double ) throw( VError );
VImage notequal( VImage ) throw( VError ); VImage notequal( VImage ) throw( VError );
VImage notequal( std::vector<double> ) throw( VError ); VImage notequal( std::vector<double> ) throw( VError );
VImage notequal( double ) throw( VError ); VImage notequal( double ) throw( VError );
// headers for package resample // headers for package resample
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage rightshift_size( int, int, int ) throw( VError ); VImage rightshift_size( int, int, int ) throw( VError );
VImage shrink( double, double ) throw( VError ); VImage shrink( double, double ) throw( VError );
VImage stretch3( double, double ) throw( VError ); VImage stretch3( double, double ) throw( VError );
// headers for package video // headers for package video
// this file automatically generated from // this file automatically generated from
// VIPS library 7.22.1-Tue Jun 22 10:26:51 BST 2010 // VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
static VImage video_test( int, int ) throw( VError ); static VImage video_test( int, int ) throw( VError );
static VImage video_v4l1( char*, int, int, int, int, int, int ) throw( VErr or ); static VImage video_v4l1( char*, int, int, int, int, int, int ) throw( VErr or );
 End of changes. 20 change blocks. 
24 lines changed or deleted 36 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/