arithmetic.h   arithmetic.h 
skipping to change at line 151 skipping to change at line 151
* See also: vips_complex(). * See also: vips_complex().
*/ */
typedef enum { typedef enum {
VIPS_OPERATION_COMPLEX_POLAR, VIPS_OPERATION_COMPLEX_POLAR,
VIPS_OPERATION_COMPLEX_RECT, VIPS_OPERATION_COMPLEX_RECT,
VIPS_OPERATION_COMPLEX_CONJ, VIPS_OPERATION_COMPLEX_CONJ,
VIPS_OPERATION_COMPLEX_LAST VIPS_OPERATION_COMPLEX_LAST
} VipsOperationComplex; } VipsOperationComplex;
/** /**
* VipsOperationComplex2:
* @VIPS_OPERATION_COMPLEX2_CROSS_PHASE: convert to polar coordinates
*
* See also: vips_complex2().
*/
typedef enum {
VIPS_OPERATION_COMPLEX2_CROSS_PHASE,
VIPS_OPERATION_COMPLEX2_LAST
} VipsOperationComplex2;
/**
* VipsOperationComplexget: * VipsOperationComplexget:
* @VIPS_OPERATION_COMPLEXGET_REAL: get real component * @VIPS_OPERATION_COMPLEXGET_REAL: get real component
* @VIPS_OPERATION_COMPLEXGET_IMAG: get imaginary component * @VIPS_OPERATION_COMPLEXGET_IMAG: get imaginary component
* *
* See also: vips_complexget(). * See also: vips_complexget().
*/ */
typedef enum { typedef enum {
VIPS_OPERATION_COMPLEXGET_REAL, VIPS_OPERATION_COMPLEXGET_REAL,
VIPS_OPERATION_COMPLEXGET_IMAG, VIPS_OPERATION_COMPLEXGET_IMAG,
VIPS_OPERATION_COMPLEXGET_LAST VIPS_OPERATION_COMPLEXGET_LAST
skipping to change at line 233 skipping to change at line 244
int vips_complex( VipsImage *in, VipsImage **out, int vips_complex( VipsImage *in, VipsImage **out,
VipsOperationComplex cmplx, ... ) VipsOperationComplex cmplx, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_polar( VipsImage *in, VipsImage **out, ... ) int vips_polar( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rect( VipsImage *in, VipsImage **out, ... ) int vips_rect( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_conj( VipsImage *in, VipsImage **out, ... ) int vips_conj( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_complex2( VipsImage *left, VipsImage *right, VipsImage **out,
VipsOperationComplex2 cmplx, ... )
__attribute__((sentinel));
int vips_cross_phase( VipsImage *left, VipsImage *right, VipsImage **out, .
.. )
__attribute__((sentinel));
int vips_complexget( VipsImage *in, VipsImage **out, int vips_complexget( VipsImage *in, VipsImage **out,
VipsOperationComplexget get, ... ) VipsOperationComplexget get, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_real( VipsImage *in, VipsImage **out, ... ) int vips_real( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_imag( VipsImage *in, VipsImage **out, ... ) int vips_imag( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_complexform( VipsImage *left, VipsImage *right, VipsImage **out, . .. ) int vips_complexform( VipsImage *left, VipsImage *right, VipsImage **out, . .. )
__attribute__((sentinel)); __attribute__((sentinel));
skipping to change at line 363 skipping to change at line 380
__attribute__((sentinel)); __attribute__((sentinel));
int vips_min( VipsImage *in, double *out, ... ) int vips_min( VipsImage *in, double *out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_max( VipsImage *in, double *out, ... ) int vips_max( VipsImage *in, double *out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_stats( VipsImage *in, VipsImage **out, ... ) int vips_stats( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_measure( VipsImage *in, VipsImage **out, int h, int v, ... ) int vips_measure( VipsImage *in, VipsImage **out, int h, int v, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int im_maxpos_avg( VipsImage *im, double *xpos, double *ypos, double *out )
;
int im_maxpos_vec( VipsImage *im, int *xpos, int *ypos, double *maxima, int
n );
int im_minpos_vec( VipsImage *im, int *xpos, int *ypos, double *minima, int
n );
int im_linreg( VipsImage **ins, VipsImage *out, double *xs );
int im_point( VipsImage *im, VipsInterpolate *interpolate,
double x, double y, int band, double *out );
int im_point_bilinear( VipsImage *im,
double x, double y, int band, double *out );
int im_cross_phase( VipsImage *a, VipsImage *b, VipsImage *out );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_ARITHMETIC_H*/ #endif /*IM_ARITHMETIC_H*/
 End of changes. 3 change blocks. 
15 lines changed or deleted 18 lines changed or added


 colour.h   colour.h 
skipping to change at line 38 skipping to change at line 38
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U SA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U SA
*/ */
/* /*
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
*/ */
#ifndef IM_COLOUR_H #ifndef VIPS_COLOUR_H
#define IM_COLOUR_H #define VIPS_COLOUR_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
struct im_col_display; /* Areas under curves for Dxx. 2 degree observer.
*/
#define VIPS_D93_X0 (89.7400)
#define VIPS_D93_Y0 (100.0)
#define VIPS_D93_Z0 (130.7700)
#define VIPS_D75_X0 (94.9682)
#define VIPS_D75_Y0 (100.0)
#define VIPS_D75_Z0 (122.5710)
/* D65 temp 6504.
*/
#define VIPS_D65_X0 (95.0470)
#define VIPS_D65_Y0 (100.0)
#define VIPS_D65_Z0 (108.8827)
#define VIPS_D55_X0 (95.6831)
#define VIPS_D55_Y0 (100.0)
#define VIPS_D55_Z0 (92.0871)
#define VIPS_D50_X0 (96.4250)
#define VIPS_D50_Y0 (100.0)
#define VIPS_D50_Z0 (82.4680)
/* A temp 2856k.
*/
#define VIPS_A_X0 (109.8503)
#define VIPS_A_Y0 (100.0)
#define VIPS_A_Z0 (35.5849)
/* B temp 4874k.
*/
#define VIPS_B_X0 (99.0720)
#define VIPS_B_Y0 (100.0)
#define VIPS_B_Z0 (85.2230)
/* C temp 6774k.
*/
#define VIPS_C_X0 (98.0700)
#define VIPS_C_Y0 (100.0)
#define VIPS_C_Z0 (118.2300)
#define VIPS_E_X0 (100.0)
#define VIPS_E_Y0 (100.0)
#define VIPS_E_Z0 (100.0)
#define VIPS_D3250_X0 (105.6590)
#define VIPS_D3250_Y0 (100.0)
#define VIPS_D3250_Z0 (45.8501)
/**
* VipsIntent:
* @VIPS_INTENT_PERCEPTUAL: perceptual rendering intent
* @VIPS_INTENT_RELATIVE: relative colorimetric rendering intent
* @VIPS_INTENT_SATURATION: saturation rendering intent
* @VIPS_INTENT_ABSOLUTE: absolute colorimetric rendering intent
*
* The rendering intent. #VIPS_INTENT_ABSOLUTE is best for
* scientific work, #VIPS_INTENT_RELATIVE is usually best for
* accurate communication with other imaging libraries.
*/
typedef enum {
VIPS_INTENT_PERCEPTUAL = 0,
VIPS_INTENT_RELATIVE,
VIPS_INTENT_SATURATION,
VIPS_INTENT_ABSOLUTE
} VipsIntent;
int vips_LabQ2disp( VipsImage *in, VipsImage **out, gboolean vips_colourspace_issupported( const VipsImage *image );
struct im_col_display *disp, ... ) int vips_colourspace( VipsImage *in, VipsImage **out,
VipsInterpretation space, ... )
__attribute__((sentinel));
int vips_LabQ2sRGB( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rad2float( VipsImage *in, VipsImage **out, ... ) int vips_rad2float( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_float2rad( VipsImage *in, VipsImage **out, ... ) int vips_float2rad( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_LabS2LabQ( VipsImage *in, VipsImage **out, ... ) int vips_LabS2LabQ( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_LabQ2LabS( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_LabQ2Lab( VipsImage *in, VipsImage **out, ... ) int vips_LabQ2Lab( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_Lab2LabQ( VipsImage *in, VipsImage **out, ... ) int vips_Lab2LabQ( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_LCh2Lab( VipsImage *in, VipsImage **out, ... ) int vips_LCh2Lab( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_Lab2LCh( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_Yxy2Lab( VipsImage *in, VipsImage **out, ... ) int vips_Yxy2Lab( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_UCS2XYZ( VipsImage *in, VipsImage **out, ... ) int vips_CMC2XYZ( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_Lab2XYZ( VipsImage *in, VipsImage **out, ... ) int vips_Lab2XYZ( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_XYZ2disp( VipsImage *in, VipsImage **out, int vips_XYZ2Lab( VipsImage *in, VipsImage **out, ... )
struct im_col_display *disp, ... )
__attribute__((sentinel)); __attribute__((sentinel));
/* Areas under curves for Dxx. 2 degree observer. int vips_XYZ2scRGB( VipsImage *in, VipsImage **out, ... )
*/ __attribute__((sentinel));
#define IM_D93_X0 (89.7400) int vips_scRGB2sRGB( VipsImage *in, VipsImage **out, ... )
#define IM_D93_Y0 (100.0) __attribute__((sentinel));
#define IM_D93_Z0 (130.7700) int vips_sRGB2scRGB( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
#define IM_D75_X0 (94.9682) int vips_scRGB2XYZ( VipsImage *in, VipsImage **out, ... )
#define IM_D75_Y0 (100.0) __attribute__((sentinel));
#define IM_D75_Z0 (122.5710)
/* D65 temp 6504. int vips_LCh2CMC( VipsImage *in, VipsImage **out, ... )
*/ __attribute__((sentinel));
#define IM_D65_X0 (95.0470) int vips_CMC2LCh( VipsImage *in, VipsImage **out, ... )
#define IM_D65_Y0 (100.0) __attribute__((sentinel));
#define IM_D65_Z0 (108.8827) int vips_XYZ2Yxy( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
#define IM_D55_X0 (95.6831) int vips_Yxy2XYZ( VipsImage *in, VipsImage **out, ... )
#define IM_D55_Y0 (100.0) __attribute__((sentinel));
#define IM_D55_Z0 (92.0871) int vips_LabS2Lab( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
#define IM_D50_X0 (96.4250) int vips_Lab2LabS( VipsImage *in, VipsImage **out, ... )
#define IM_D50_Y0 (100.0) __attribute__((sentinel));
#define IM_D50_Z0 (82.4680)
/* A temp 2856k. int vips_icc_present( void );
*/ int vips_icc_transform( VipsImage *in, VipsImage **out,
#define IM_A_X0 (109.8503) const char *output_profile, ... )
#define IM_A_Y0 (100.0) __attribute__((sentinel));
#define IM_A_Z0 (35.5849) int vips_icc_import( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_icc_export( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_icc_ac2rc( VipsImage *in, VipsImage **out,
const char *profile_filename );
/* B temp 4874k. int vips_dE76( VipsImage *left, VipsImage *right, VipsImage **out, ... )
*/ __attribute__((sentinel));
#define IM_B_X0 (99.0720) int vips_dE00( VipsImage *left, VipsImage *right, VipsImage **out, ... )
#define IM_B_Y0 (100.0) __attribute__((sentinel));
#define IM_B_Z0 (85.2230) int vips_dECMC( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
/* C temp 6774k. void vips_col_Lab2XYZ( float L, float a, float b,
*/ float *X, float *Y, float *Z );
#define IM_C_X0 (98.0700) void vips_col_XYZ2Lab( float X, float Y, float Z,
#define IM_C_Y0 (100.0) float *L, float *a, float *b );
#define IM_C_Z0 (118.2300) double vips_col_ab2h( double a, double b );
void vips_col_ab2Ch( float a, float b, float *C, float *h );
#define IM_E_X0 (100.0) void vips_col_Ch2ab( float C, float h, float *a, float *b );
#define IM_E_Y0 (100.0)
#define IM_E_Z0 (100.0)
#define IM_D3250_X0 (105.6590)
#define IM_D3250_Y0 (100.0)
#define IM_D3250_Z0 (45.8501)
/* Colour loading and conversion functions.
*/
void im_col_ab2Ch( float a, float b, float *C, float *h );
void im_col_Ch2ab( float C, float h, float *a, float *b );
void im_col_XYZ2Lab( float X, float Y, float Z, float *L, float *a, float *
b );
void im_col_Lab2XYZ( float L, float a, float b, float *X, float *Y, float *
Z );
float im_col_pythagoras( float L1, float a1, float b1,
float L2, float a2, float b2 );
void im_col_make_tables_UCS( void ); float vips_col_L2Lcmc( float L );
float vips_col_C2Ccmc( float C );
float vips_col_Ch2hcmc( float C, float h );
float im_col_L2Lucs( float L ); void vips_col_make_tables_CMC( void );
float im_col_Lucs2L( float Lucs ); float vips_col_Lcmc2L( float Lcmc );
float im_col_C2Cucs( float C ); float vips_col_Ccmc2C( float Ccmc );
float im_col_Cucs2C( float Cucs ); float vips_col_Chcmc2h( float C, float hcmc );
float im_col_Ch2hucs( float C, float h );
float im_col_Chucs2h( float C, float hucs );
double im_col_ab2h( double a, double b );
float im_col_dECMC( int vips_col_sRGB2scRGB_8( int r, int g, int b, float *R, float *G, float *
float L1, float a1, float b1, float L2, float a2, float b2 ); B );
float im_col_dE00( int vips_col_sRGB2scRGB_16( int r, int g, int b, float *R, float *G, float
float L1, float a1, float b1, float L2, float a2, float b2 ); *B );
int im_LCh2Lab( VipsImage *in, VipsImage *out ); int vips_col_scRGB2XYZ( float R, float G, float B,
int im_LabQ2XYZ( VipsImage *in, VipsImage *out ); float *X, float *Y, float *Z );
int im_rad2float( VipsImage *in, VipsImage *out ); int vips_col_XYZ2scRGB( float X, float Y, float Z,
int im_float2rad( VipsImage *in, VipsImage *out ); float *R, float *G, float *B );
int im_LCh2UCS( VipsImage *in, VipsImage *out );
int im_Lab2LCh( VipsImage *in, VipsImage *out );
int im_Lab2LabQ( VipsImage *in, VipsImage *out );
int im_Lab2LabS( VipsImage *in, VipsImage *out );
int im_Lab2XYZ( VipsImage *in, VipsImage *out );
int im_Lab2XYZ_temp( VipsImage *in, VipsImage *out,
double X0, double Y0, double Z0 );
int im_Lab2UCS( VipsImage *in, VipsImage *out );
int im_LabQ2Lab( VipsImage *in, VipsImage *out );
int im_LabQ2LabS( VipsImage *in, VipsImage *out );
int im_LabS2LabQ( VipsImage *in, VipsImage *out );
int im_LabS2Lab( VipsImage *in, VipsImage *out );
int im_UCS2XYZ( VipsImage *in, VipsImage *out );
int im_UCS2LCh( VipsImage *in, VipsImage *out );
int im_UCS2Lab( VipsImage *in, VipsImage *out );
int im_XYZ2Lab( VipsImage *in, VipsImage *out );
int im_XYZ2Lab_temp( VipsImage *in, VipsImage *out,
double X0, double Y0, double Z0 );
int im_XYZ2UCS( VipsImage *in, VipsImage *out );
int im_sRGB2XYZ( VipsImage *in, VipsImage *out );
int im_XYZ2sRGB( VipsImage *in, VipsImage *out );
int im_Yxy2XYZ( VipsImage *in, VipsImage *out );
int im_XYZ2Yxy( VipsImage *in, VipsImage *out );
int im_dECMC_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_dE00_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_dE_fromXYZ( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_dE_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_lab_morph( VipsImage *in, VipsImage *out,
DOUBLEMASK *mask,
double L_offset, double L_scale,
double a_scale, double b_scale );
/* Render intents for icc wrappers. int vips_col_scRGB2sRGB_8( float R, float G, float B,
*/ int *r, int *g, int *b,
typedef enum { int *or_ret );
IM_INTENT_PERCEPTUAL = 0, int vips_col_scRGB2sRGB_16( float R, float G, float B,
IM_INTENT_RELATIVE_COLORIMETRIC, int *r, int *g, int *b,
IM_INTENT_SATURATION, int *or_ret );
IM_INTENT_ABSOLUTE_COLORIMETRIC
} VipsIntent;
int im_icc_present( void ); float vips_pythagoras( float L1, float a1, float b1,
int im_icc_transform( VipsImage *in, VipsImage *out, float L2, float a2, float b2 );
const char *input_profile_filename, float vips_col_dE00(
const char *output_profile_filename, float L1, float a1, float b1, float L2, float a2, float b2 );
VipsIntent intent );
int im_icc_import( VipsImage *in, VipsImage *out,
const char *input_profile_filename, VipsIntent intent );
int im_icc_import_embedded( VipsImage *in, VipsImage *out, VipsIntent inten
t );
int im_icc_export_depth( VipsImage *in, VipsImage *out, int depth,
const char *output_profile_filename, VipsIntent intent );
int im_icc_ac2rc( VipsImage *in, VipsImage *out, const char *profile_filena
me );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_COLOUR_H*/ #endif /*VIPS_COLOUR_H*/
 End of changes. 19 change blocks. 
134 lines changed or deleted 149 lines changed or added


 conversion.h   conversion.h 
skipping to change at line 47 skipping to change at line 47
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
/** /**
* VipsExtend: * VipsExtend:
* @VIPS_EXTEND_BLACK: extend with black (all 0) pixels * @VIPS_EXTEND_BLACK: extend with black (all 0) pixels
* @VIPS_EXTEND_COPY: copy the image edges * @VIPS_EXTEND_COPY: copy the image edges
* @VIPS_EXTEND_REPEAT: repeat the whole image * @VIPS_EXTEND_REPEAT: repeat the whole image
* @VIPS_EXTEND_MIRROR: mirror the whole image * @VIPS_EXTEND_MIRROR: mirror the whole image
* @VIPS_EXTEND_WHITE: extend with white (all bits set) pixels * @VIPS_EXTEND_WHITE: extend with white (all bits set) pixels
* @VIPS_EXTEND_BACKGROUND: extend with colour from the @background propert y
* *
* See vips_embed(), vips_conv(), vips_affine() and so on. * See vips_embed(), vips_conv(), vips_affine() and so on.
* *
* When the edges of an image are extended, you can specify * When the edges of an image are extended, you can specify
* how you want the extension done. * how you want the extension done.
* *
* #VIPS_EXTEND_BLACK --- new pixels are black, ie. all bits are zero. * #VIPS_EXTEND_BLACK --- new pixels are black, ie. all bits are zero.
* *
* #VIPS_EXTEND_COPY --- each new pixel takes the value of the nearest edge * #VIPS_EXTEND_COPY --- each new pixel takes the value of the nearest edge
* pixel * pixel
* *
* #VIPS_EXTEND_REPEAT --- the image is tiled to fill the new area * #VIPS_EXTEND_REPEAT --- the image is tiled to fill the new area
* *
* #VIPS_EXTEND_MIRROR --- the image is reflected and tiled to reduce hash * #VIPS_EXTEND_MIRROR --- the image is reflected and tiled to reduce hash
* edges * edges
* *
* #VIPS_EXTEND_WHITE --- new pixels are white, ie. all bits are set * #VIPS_EXTEND_WHITE --- new pixels are white, ie. all bits are set
* #VIPS_EXTEND_BACKGROUND --- colour set from the @background property
* *
* We have to specify the exact value of each enum member since we have to * We have to specify the exact value of each enum member since we have to
* keep these frozen for back compat with vips7. * keep these frozen for back compat with vips7.
* *
* See also: vips_embed(). * See also: vips_embed().
*/ */
typedef enum { typedef enum {
VIPS_EXTEND_BLACK = 0, VIPS_EXTEND_BLACK,
VIPS_EXTEND_COPY = 1, VIPS_EXTEND_COPY,
VIPS_EXTEND_REPEAT = 2, VIPS_EXTEND_REPEAT,
VIPS_EXTEND_MIRROR = 3, VIPS_EXTEND_MIRROR,
VIPS_EXTEND_WHITE = 4, VIPS_EXTEND_WHITE,
VIPS_EXTEND_LAST = 5 VIPS_EXTEND_BACKGROUND,
VIPS_EXTEND_LAST
} VipsExtend; } VipsExtend;
/** /**
* VipsDirection: * VipsDirection:
* @VIPS_DIRECTION_HORIZONTAL: left-right * @VIPS_DIRECTION_HORIZONTAL: left-right
* @VIPS_DIRECTION_VERTICAL: top-bottom * @VIPS_DIRECTION_VERTICAL: top-bottom
* *
* See vips_flip(), vips_join() and so on. * See vips_flip(), vips_join() and so on.
* *
* Operations like vips_flip() need to be told whether to flip left-right o r * Operations like vips_flip() need to be told whether to flip left-right o r
skipping to change at line 215 skipping to change at line 219
__attribute__((sentinel)); __attribute__((sentinel));
int vips_cast_dpcomplex( VipsImage *in, VipsImage **out, ... ) int vips_cast_dpcomplex( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandjoin( VipsImage **in, VipsImage **out, int n, ... ) int vips_bandjoin( VipsImage **in, VipsImage **out, int n, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandjoin2( VipsImage *in1, VipsImage *in2, VipsImage **out, ... ) int vips_bandjoin2( VipsImage *in1, VipsImage *in2, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandmean( VipsImage *in, VipsImage **out, ... ) int vips_bandmean( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandbool( VipsImage *in, VipsImage **out,
VipsOperationBoolean operation, ... )
__attribute__((sentinel));
int vips_bandand( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_bandor( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_bandeor( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_recomb( VipsImage *in, VipsImage **out, VipsImage *m, ... ) int vips_recomb( VipsImage *in, VipsImage **out, VipsImage *m, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_black( VipsImage **out, int width, int height, ... ) int vips_black( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rot( VipsImage *in, VipsImage **out, VipsAngle angle, ... ) int vips_rot( VipsImage *in, VipsImage **out, VipsAngle angle, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_ifthenelse( VipsImage *cond, VipsImage *in1, VipsImage *in2, int vips_ifthenelse( VipsImage *cond, VipsImage *in1, VipsImage *in2,
VipsImage **out, ... ) VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_flatten( VipsImage *in, VipsImage **out, ... ) int vips_flatten( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
 End of changes. 5 change blocks. 
6 lines changed or deleted 22 lines changed or added


 enumtypes.h   enumtypes.h 
skipping to change at line 20 skipping to change at line 20
GType vips_foreign_flags_get_type (void) G_GNUC_CONST; GType vips_foreign_flags_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_FLAGS (vips_foreign_flags_get_type()) #define VIPS_TYPE_FOREIGN_FLAGS (vips_foreign_flags_get_type())
GType vips_saveable_get_type (void) G_GNUC_CONST; GType vips_saveable_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_SAVEABLE (vips_saveable_get_type()) #define VIPS_TYPE_SAVEABLE (vips_saveable_get_type())
GType vips_foreign_tiff_compression_get_type (void) G_GNUC_CONST; GType vips_foreign_tiff_compression_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_TIFF_COMPRESSION (vips_foreign_tiff_compression_g et_type()) #define VIPS_TYPE_FOREIGN_TIFF_COMPRESSION (vips_foreign_tiff_compression_g et_type())
GType vips_foreign_tiff_predictor_get_type (void) G_GNUC_CONST; GType vips_foreign_tiff_predictor_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_TIFF_PREDICTOR (vips_foreign_tiff_predictor_get_t ype()) #define VIPS_TYPE_FOREIGN_TIFF_PREDICTOR (vips_foreign_tiff_predictor_get_t ype())
GType vips_foreign_tiff_resunit_get_type (void) G_GNUC_CONST; GType vips_foreign_tiff_resunit_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_TIFF_RESUNIT (vips_foreign_tiff_resunit_get_type( )) #define VIPS_TYPE_FOREIGN_TIFF_RESUNIT (vips_foreign_tiff_resunit_get_type( ))
GType vips_foreign_dz_layout_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_DZ_LAYOUT (vips_foreign_dz_layout_get_type())
GType vips_foreign_dz_depth_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_DZ_DEPTH (vips_foreign_dz_depth_get_type())
/* enumerations from "../../../libvips/include/vips/arithmetic.h" */ /* enumerations from "../../../libvips/include/vips/arithmetic.h" */
GType vips_operation_math_get_type (void) G_GNUC_CONST; GType vips_operation_math_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_MATH (vips_operation_math_get_type()) #define VIPS_TYPE_OPERATION_MATH (vips_operation_math_get_type())
GType vips_operation_math2_get_type (void) G_GNUC_CONST; GType vips_operation_math2_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_MATH2 (vips_operation_math2_get_type()) #define VIPS_TYPE_OPERATION_MATH2 (vips_operation_math2_get_type())
GType vips_operation_round_get_type (void) G_GNUC_CONST; GType vips_operation_round_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_ROUND (vips_operation_round_get_type()) #define VIPS_TYPE_OPERATION_ROUND (vips_operation_round_get_type())
GType vips_operation_relational_get_type (void) G_GNUC_CONST; GType vips_operation_relational_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_RELATIONAL (vips_operation_relational_get_type( )) #define VIPS_TYPE_OPERATION_RELATIONAL (vips_operation_relational_get_type( ))
GType vips_operation_boolean_get_type (void) G_GNUC_CONST; GType vips_operation_boolean_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_BOOLEAN (vips_operation_boolean_get_type()) #define VIPS_TYPE_OPERATION_BOOLEAN (vips_operation_boolean_get_type())
GType vips_operation_complex_get_type (void) G_GNUC_CONST; GType vips_operation_complex_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_COMPLEX (vips_operation_complex_get_type()) #define VIPS_TYPE_OPERATION_COMPLEX (vips_operation_complex_get_type())
GType vips_operation_complex2_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_COMPLEX2 (vips_operation_complex2_get_type())
GType vips_operation_complexget_get_type (void) G_GNUC_CONST; GType vips_operation_complexget_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_COMPLEXGET (vips_operation_complexget_get_type( )) #define VIPS_TYPE_OPERATION_COMPLEXGET (vips_operation_complexget_get_type( ))
/* enumerations from "../../../libvips/include/vips/conversion.h" */ /* enumerations from "../../../libvips/include/vips/conversion.h" */
GType vips_extend_get_type (void) G_GNUC_CONST; GType vips_extend_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_EXTEND (vips_extend_get_type()) #define VIPS_TYPE_EXTEND (vips_extend_get_type())
GType vips_direction_get_type (void) G_GNUC_CONST; GType vips_direction_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_DIRECTION (vips_direction_get_type()) #define VIPS_TYPE_DIRECTION (vips_direction_get_type())
GType vips_align_get_type (void) G_GNUC_CONST; GType vips_align_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_ALIGN (vips_align_get_type()) #define VIPS_TYPE_ALIGN (vips_align_get_type())
GType vips_angle_get_type (void) G_GNUC_CONST; GType vips_angle_get_type (void) G_GNUC_CONST;
skipping to change at line 60 skipping to change at line 66
GType vips_demand_style_get_type (void) G_GNUC_CONST; GType vips_demand_style_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_DEMAND_STYLE (vips_demand_style_get_type()) #define VIPS_TYPE_DEMAND_STYLE (vips_demand_style_get_type())
GType vips_image_type_get_type (void) G_GNUC_CONST; GType vips_image_type_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_IMAGE_TYPE (vips_image_type_get_type()) #define VIPS_TYPE_IMAGE_TYPE (vips_image_type_get_type())
GType vips_interpretation_get_type (void) G_GNUC_CONST; GType vips_interpretation_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_INTERPRETATION (vips_interpretation_get_type()) #define VIPS_TYPE_INTERPRETATION (vips_interpretation_get_type())
GType vips_band_format_get_type (void) G_GNUC_CONST; GType vips_band_format_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_BAND_FORMAT (vips_band_format_get_type()) #define VIPS_TYPE_BAND_FORMAT (vips_band_format_get_type())
GType vips_coding_get_type (void) G_GNUC_CONST; GType vips_coding_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_CODING (vips_coding_get_type()) #define VIPS_TYPE_CODING (vips_coding_get_type())
/* enumerations from "../../../libvips/include/vips/colour.h" */
GType vips_intent_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_INTENT (vips_intent_get_type())
/* enumerations from "../../../libvips/include/vips/operation.h" */ /* enumerations from "../../../libvips/include/vips/operation.h" */
GType vips_operation_flags_get_type (void) G_GNUC_CONST; GType vips_operation_flags_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_FLAGS (vips_operation_flags_get_type()) #define VIPS_TYPE_OPERATION_FLAGS (vips_operation_flags_get_type())
/* enumerations from "../../../libvips/include/vips/object.h" */ /* enumerations from "../../../libvips/include/vips/object.h" */
GType vips_argument_flags_get_type (void) G_GNUC_CONST; GType vips_argument_flags_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_ARGUMENT_FLAGS (vips_argument_flags_get_type()) #define VIPS_TYPE_ARGUMENT_FLAGS (vips_argument_flags_get_type())
G_END_DECLS G_END_DECLS
#endif /*VIPS_ENUM_TYPES_H*/ #endif /*VIPS_ENUM_TYPES_H*/
 End of changes. 3 change blocks. 
0 lines changed or deleted 9 lines changed or added


 error.h   error.h 
skipping to change at line 59 skipping to change at line 59
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
void vips_vwarn( const char *domain, const char *fmt, va_list ap ); void vips_vwarn( const char *domain, const char *fmt, va_list ap );
void vips_diag( const char *domain, const char *fmt, ... ) void vips_diag( const char *domain, const char *fmt, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
void vips_vdiag( const char *domain, const char *fmt, va_list ap ); void vips_vdiag( const char *domain, const char *fmt, va_list ap );
void vips_error_exit( const char *fmt, ... ) void vips_error_exit( const char *fmt, ... )
__attribute__((noreturn, format(printf, 1, 2))); __attribute__((noreturn, format(printf, 1, 2)));
int vips_check_uncoded( const char *domain, VipsImage *im ); int vips_check_uncoded( const char *domain, VipsImage *im );
int vips_check_coding( const char *domain, VipsImage *im, VipsCoding coding );
int vips_check_coding_known( const char *domain, VipsImage *im ); int vips_check_coding_known( const char *domain, VipsImage *im );
int vips_check_coding_labq( const char *domain, VipsImage *im );
int vips_check_coding_rad( const char *domain, VipsImage *im );
int vips_check_coding_noneorlabq( const char *domain, VipsImage *im ); int vips_check_coding_noneorlabq( const char *domain, VipsImage *im );
int vips_check_coding_same( const char *domain, VipsImage *im1, VipsImage * im2 ); int vips_check_coding_same( const char *domain, VipsImage *im1, VipsImage * im2 );
int vips_check_mono( const char *domain, VipsImage *im ); int vips_check_mono( const char *domain, VipsImage *im );
int vips_check_bands_1or3( const char *domain, VipsImage *in );
int vips_check_bands( const char *domain, VipsImage *im, int bands ); int vips_check_bands( const char *domain, VipsImage *im, int bands );
int vips_check_bands_1or3( const char *domain, VipsImage *in );
int vips_check_bands_atleast( const char *domain, VipsImage *im, int bands
);
int vips_check_bands_1orn( const char *domain, VipsImage *im1, VipsImage *i m2 ); int vips_check_bands_1orn( const char *domain, VipsImage *im1, VipsImage *i m2 );
int vips_check_bands_1orn_unary( const char *domain, VipsImage *im, int n ) ; int vips_check_bands_1orn_unary( const char *domain, VipsImage *im, int n ) ;
int vips_check_bands_same( const char *domain, VipsImage *im1, VipsImage *i m2 ); int vips_check_bands_same( const char *domain, VipsImage *im1, VipsImage *i m2 );
int vips_check_bandno( const char *domain, VipsImage *im, int bandno ); int vips_check_bandno( const char *domain, VipsImage *im, int bandno );
int vips_check_int( const char *domain, VipsImage *im ); int vips_check_int( const char *domain, VipsImage *im );
int vips_check_uint( const char *domain, VipsImage *im ); int vips_check_uint( const char *domain, VipsImage *im );
int vips_check_uintorf( const char *domain, VipsImage *im ); int vips_check_uintorf( const char *domain, VipsImage *im );
int vips_check_noncomplex( const char *domain, VipsImage *im ); int vips_check_noncomplex( const char *domain, VipsImage *im );
int vips_check_complex( const char *domain, VipsImage *im ); int vips_check_complex( const char *domain, VipsImage *im );
int vips_check_format( const char *domain, VipsImage *im, VipsBandFormat fm t ); int vips_check_format( const char *domain, VipsImage *im, VipsBandFormat fm t );
int vips_check_u8or16( const char *domain, VipsImage *im ); int vips_check_u8or16( const char *domain, VipsImage *im );
int vips_check_8or16( const char *domain, VipsImage *im ); int vips_check_8or16( const char *domain, VipsImage *im );
int vips_check_u8or16orf( const char *domain, VipsImage *im ); int vips_check_u8or16orf( const char *domain, VipsImage *im );
int vips_check_format_same( const char *domain, VipsImage *im1, VipsImage * im2 ); int vips_check_format_same( const char *domain, VipsImage *im1, VipsImage * im2 );
int vips_check_size_same( const char *domain, VipsImage *im1, VipsImage *im 2 ); int vips_check_size_same( const char *domain, VipsImage *im1, VipsImage *im 2 );
int vips_check_vector_length( const char *domain, int n, int len );
int vips_check_vector( const char *domain, int n, VipsImage *im ); int vips_check_vector( const char *domain, int n, VipsImage *im );
int vips_check_hist( const char *domain, VipsImage *im ); int vips_check_hist( const char *domain, VipsImage *im );
int vips_check_matrix( const char *domain, VipsImage *im, VipsImage **out )
;
int vips_check_imask( const char *domain, INTMASK *mask ); int vips_check_imask( const char *domain, INTMASK *mask );
int vips_check_dmask( const char *domain, DOUBLEMASK *mask ); int vips_check_dmask( const char *domain, DOUBLEMASK *mask );
int vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask ); int vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_ERROR_H*/ #endif /*VIPS_ERROR_H*/
 End of changes. 6 change blocks. 
3 lines changed or deleted 8 lines changed or added


 foreign.h   foreign.h 
skipping to change at line 427 skipping to change at line 427
__attribute__((sentinel)); __attribute__((sentinel));
int vips_matload( const char *filename, VipsImage **out, ... ) int vips_matload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_radload( const char *filename, VipsImage **out, ... ) int vips_radload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_radsave( VipsImage *in, const char *filename, ... ) int vips_radsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
/**
* VipsForeignDzLayout:
* @VIPS_FOREIGN_DZ_LAYOUT_DZ: use DeepZoom directory layout
* @VIPS_FOREIGN_DZ_LAYOUT_ZOOMIFY: use Zoomify directory layout
* @VIPS_FOREIGN_DZ_LAYOUT_GOOGLE: use Google maps directory layout
*
* What directory layout and metadata standard to use.
*/
typedef enum {
VIPS_FOREIGN_DZ_LAYOUT_DZ,
VIPS_FOREIGN_DZ_LAYOUT_ZOOMIFY,
VIPS_FOREIGN_DZ_LAYOUT_GOOGLE,
VIPS_FOREIGN_DZ_LAYOUT_LAST
} VipsForeignDzLayout;
/**
* VipsForeignDzDepth:
* @VIPS_FOREIGN_DZ_DEPTH_1PIXEL: create layers down to 1x1 pixel
* @VIPS_FOREIGN_DZ_DEPTH_1TILE: create layers down to 1x1 tile
* @VIPS_FOREIGN_DZ_DEPTH_1: only create a single layer
*
* How many pyramid layers to create.
*/
typedef enum {
VIPS_FOREIGN_DZ_DEPTH_1PIXEL,
VIPS_FOREIGN_DZ_DEPTH_1TILE,
VIPS_FOREIGN_DZ_DEPTH_1,
VIPS_FOREIGN_DZ_DEPTH_LAST
} VipsForeignDzDepth;
int vips_dzsave( VipsImage *in, const char *basename, ... ) int vips_dzsave( VipsImage *in, const char *basename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_FOREIGN_H*/ #endif /*VIPS_FOREIGN_H*/
 End of changes. 1 change blocks. 
0 lines changed or deleted 30 lines changed or added


 header.h   header.h 
skipping to change at line 55 skipping to change at line 55
#define VIPS_META_EXIF_NAME "exif-data" #define VIPS_META_EXIF_NAME "exif-data"
/** /**
* VIPS_META_XMP_NAME: * VIPS_META_XMP_NAME:
* *
* The name that JPEG read and write operations use for the image's XMP dat a. * The name that JPEG read and write operations use for the image's XMP dat a.
*/ */
#define VIPS_META_XMP_NAME "xmp-data" #define VIPS_META_XMP_NAME "xmp-data"
/** /**
* VIPS_META_IPCT_NAME:
*
* The name that JPEG read and write operations use for the image's IPCT da
ta.
*/
#define VIPS_META_IPCT_NAME "ipct-data"
/**
* VIPS_META_ICC_NAME: * VIPS_META_ICC_NAME:
* *
* The name we use to attach an ICC profile. The file read and write * The name we use to attach an ICC profile. The file read and write
* operations for TIFF, JPEG, PNG and others use this item of metadata to * operations for TIFF, JPEG, PNG and others use this item of metadata to
* attach and save ICC profiles. The profile is updated by the * attach and save ICC profiles. The profile is updated by the
* vips_icc_transform() operations. * vips_icc_transform() operations.
*/ */
#define VIPS_META_ICC_NAME "icc-profile-data" #define VIPS_META_ICC_NAME "icc-profile-data"
/** /**
skipping to change at line 80 skipping to change at line 87
#define VIPS_META_XML "xml-header" #define VIPS_META_XML "xml-header"
/** /**
* VIPS_META_RESOLUTION_UNIT: * VIPS_META_RESOLUTION_UNIT:
* *
* The JPEG and TIFF read and write operations use this to record the * The JPEG and TIFF read and write operations use this to record the
* file's preferred unit for resolution. * file's preferred unit for resolution.
*/ */
#define VIPS_META_RESOLUTION_UNIT "resolution-unit" #define VIPS_META_RESOLUTION_UNIT "resolution-unit"
/**
* VIPS_META_LOADER:
*
* Record the name of the original loader here. Handy for hinting file form
ats
* and for debugging.
*/
#define VIPS_META_LOADER "vips-loader"
guint64 vips_format_sizeof( VipsBandFormat format ); guint64 vips_format_sizeof( VipsBandFormat format );
int vips_image_get_width( const VipsImage *image ); int vips_image_get_width( const VipsImage *image );
int vips_image_get_height( const VipsImage *image ); int vips_image_get_height( const VipsImage *image );
int vips_image_get_bands( const VipsImage *image ); int vips_image_get_bands( const VipsImage *image );
VipsBandFormat vips_image_get_format( const VipsImage *image ); VipsBandFormat vips_image_get_format( const VipsImage *image );
VipsCoding vips_image_get_coding( const VipsImage *image ); VipsCoding vips_image_get_coding( const VipsImage *image );
VipsInterpretation vips_image_get_interpretation( const VipsImage *image ); VipsInterpretation vips_image_get_interpretation( const VipsImage *image );
VipsInterpretation vips_image_guess_interpretation( const VipsImage *image );
double vips_image_get_xres( const VipsImage *image ); double vips_image_get_xres( const VipsImage *image );
double vips_image_get_yres( const VipsImage *image ); double vips_image_get_yres( const VipsImage *image );
int vips_image_get_xoffset( const VipsImage *image ); int vips_image_get_xoffset( const VipsImage *image );
int vips_image_get_yoffset( const VipsImage *image ); int vips_image_get_yoffset( const VipsImage *image );
const char *vips_image_get_filename( const VipsImage *image ); const char *vips_image_get_filename( const VipsImage *image );
const char *vips_image_get_mode( const VipsImage *image ); const char *vips_image_get_mode( const VipsImage *image );
void *vips_image_get_data( VipsImage *image ); void *vips_image_get_data( VipsImage *image );
void vips_image_init_fields( VipsImage *image, void vips_image_init_fields( VipsImage *image,
int xsize, int ysize, int bands, int xsize, int ysize, int bands,
 End of changes. 3 change blocks. 
0 lines changed or deleted 18 lines changed or added


 image.h   image.h 
skipping to change at line 112 skipping to change at line 112
VIPS_IMAGE_SETBUF_FOREIGN, /* memory array, don't free on close */ VIPS_IMAGE_SETBUF_FOREIGN, /* memory array, don't free on close */
VIPS_IMAGE_OPENIN, /* input from fd with a window */ VIPS_IMAGE_OPENIN, /* input from fd with a window */
VIPS_IMAGE_MMAPIN, /* memory mapped input file */ VIPS_IMAGE_MMAPIN, /* memory mapped input file */
VIPS_IMAGE_MMAPINRW, /* memory mapped read/write file */ VIPS_IMAGE_MMAPINRW, /* memory mapped read/write file */
VIPS_IMAGE_OPENOUT, /* output to fd */ VIPS_IMAGE_OPENOUT, /* output to fd */
VIPS_IMAGE_PARTIAL /* partial image */ VIPS_IMAGE_PARTIAL /* partial image */
} VipsImageType; } VipsImageType;
/** /**
* VipsInterpretation: * VipsInterpretation:
* @VIPS_INTERPREATION_MULTIBAND: generic many-band image * @VIPS_INTERPRETATION_MULTIBAND: generic many-band image
* @VIPS_INTERPREATION_B_W: some kind of single-band image * @VIPS_INTERPRETATION_B_W: some kind of single-band image
* @VIPS_INTERPREATION_HISTOGRAM: a 1D image such as a histogram or lookup * @VIPS_INTERPRETATION_HISTOGRAM: a 1D image, eg. histogram or lookup tabl
table e
* @VIPS_INTERPREATION_FOURIER: image is in fourier space * @VIPS_INTERPRETATION_FOURIER: image is in fourier space
* @VIPS_INTERPREATION_XYZ: the first three bands are CIE XYZ * @VIPS_INTERPRETATION_XYZ: the first three bands are CIE XYZ
* @VIPS_INTERPREATION_LAB: pixels are in CIE Lab space * @VIPS_INTERPRETATION_LAB: pixels are in CIE Lab space
* @VIPS_INTERPREATION_CMYK: the first four bands are in CMYK space * @VIPS_INTERPRETATION_CMYK: the first four bands are in CMYK space
* @VIPS_INTERPREATION_LABQ: implies #VIPS_CODING_LABQ * @VIPS_INTERPRETATION_LABQ: implies #VIPS_CODING_LABQ
* @VIPS_INTERPREATION_RGB: generic RGB space * @VIPS_INTERPRETATION_RGB: generic RGB space
* @VIPS_INTERPREATION_UCS: a uniform colourspace based on CMC * @VIPS_INTERPRETATION_CMC: a uniform colourspace based on CMC(1:1)
* @VIPS_INTERPREATION_LCH: pixels are in CIE LCh space * @VIPS_INTERPRETATION_LCH: pixels are in CIE LCh space
* @VIPS_INTERPREATION_LABS: CIE LAB coded as three signed 16-bit values * @VIPS_INTERPRETATION_LABS: CIE LAB coded as three signed 16-bit values
* @VIPS_INTERPREATION_sRGB: pixels are sRGB * @VIPS_INTERPRETATION_sRGB: pixels are sRGB
* @VIPS_INTERPREATION_YXY: pixels are CIE Yxy * @VIPS_INTERPRETATION_scRGB: pixels are scRGB
* @VIPS_INTERPREATION_RGB16: generic 16-bit RGB * @VIPS_INTERPRETATION_YXY: pixels are CIE Yxy
* @VIPS_INTERPREATION_GREY16: generic 16-bit mono * @VIPS_INTERPRETATION_RGB16: generic 16-bit RGB
* @VIPS_INTERPREATION_ARRAY: an array * @VIPS_INTERPRETATION_GREY16: generic 16-bit mono
* @VIPS_INTERPRETATION_ARRAY: an array
* *
* How the values in an image should be interpreted. For example, a * How the values in an image should be interpreted. For example, a
* three-band float image of type #VIPS_INTERPREATION_LAB should have its p * three-band float image of type #VIPS_INTERPRETATION_LAB should have its
ixels * pixels interpreted as coordinates in CIE Lab space.
* interpreted as coordinates in CIE Lab space.
* *
* These values are set by operations as hints to user-interfaces built on top * These values are set by operations as hints to user-interfaces built on top
* of VIPS to help them show images to the user in a meaningful way. * of VIPS to help them show images to the user in a meaningful way.
* Operations do not use these values to decide their action. * Operations do not use these values to decide their action.
* *
* The gaps in the numbering are historical and must be maintained. Allocat e * The gaps in the numbering are historical and must be maintained. Allocat e
* new numbers from the end. * new numbers from the end.
*/ */
typedef enum { typedef enum {
VIPS_INTERPRETATION_ERROR = -1, VIPS_INTERPRETATION_ERROR = -1,
VIPS_INTERPRETATION_MULTIBAND = 0, VIPS_INTERPRETATION_MULTIBAND = 0,
VIPS_INTERPRETATION_B_W = 1, VIPS_INTERPRETATION_B_W = 1,
VIPS_INTERPRETATION_HISTOGRAM = 10, VIPS_INTERPRETATION_HISTOGRAM = 10,
VIPS_INTERPRETATION_FOURIER = 24,
VIPS_INTERPRETATION_XYZ = 12, VIPS_INTERPRETATION_XYZ = 12,
VIPS_INTERPRETATION_LAB = 13, VIPS_INTERPRETATION_LAB = 13,
VIPS_INTERPRETATION_CMYK = 15, VIPS_INTERPRETATION_CMYK = 15,
VIPS_INTERPRETATION_LABQ = 16, VIPS_INTERPRETATION_LABQ = 16,
VIPS_INTERPRETATION_RGB = 17, VIPS_INTERPRETATION_RGB = 17,
VIPS_INTERPRETATION_UCS = 18, VIPS_INTERPRETATION_CMC = 18,
VIPS_INTERPRETATION_LCH = 19, VIPS_INTERPRETATION_LCH = 19,
VIPS_INTERPRETATION_LABS = 21, VIPS_INTERPRETATION_LABS = 21,
VIPS_INTERPRETATION_sRGB = 22, VIPS_INTERPRETATION_sRGB = 22,
VIPS_INTERPRETATION_YXY = 23, VIPS_INTERPRETATION_YXY = 23,
VIPS_INTERPRETATION_FOURIER = 24,
VIPS_INTERPRETATION_RGB16 = 25, VIPS_INTERPRETATION_RGB16 = 25,
VIPS_INTERPRETATION_GREY16 = 26, VIPS_INTERPRETATION_GREY16 = 26,
VIPS_INTERPRETATION_ARRAY = 27 VIPS_INTERPRETATION_ARRAY = 27,
VIPS_INTERPRETATION_scRGB = 28
} VipsInterpretation; } VipsInterpretation;
/** /**
* VipsBandFormat: * VipsBandFormat:
* @VIPS_FORMAT_NOTSET: invalid setting * @VIPS_FORMAT_NOTSET: invalid setting
* @VIPS_FORMAT_UCHAR: unsigned char format * @VIPS_FORMAT_UCHAR: unsigned char format
* @VIPS_FORMAT_CHAR: char format * @VIPS_FORMAT_CHAR: char format
* @VIPS_FORMAT_USHORT: unsigned short format * @VIPS_FORMAT_USHORT: unsigned short format
* @VIPS_FORMAT_SHORT: short format * @VIPS_FORMAT_SHORT: short format
* @VIPS_FORMAT_UINT: unsigned int format * @VIPS_FORMAT_UINT: unsigned int format
skipping to change at line 495 skipping to change at line 497
void vips_image_invalidate_all( VipsImage *image ); void vips_image_invalidate_all( VipsImage *image );
void vips_image_minimise_all( VipsImage *image ); void vips_image_minimise_all( VipsImage *image );
void vips_image_preeval( VipsImage *image ); void vips_image_preeval( VipsImage *image );
void vips_image_eval( VipsImage *image, guint64 processed ); void vips_image_eval( VipsImage *image, guint64 processed );
void vips_image_posteval( VipsImage *image ); void vips_image_posteval( VipsImage *image );
void vips_image_set_progress( VipsImage *image, gboolean progress ); void vips_image_set_progress( VipsImage *image, gboolean progress );
gboolean vips_image_get_kill( VipsImage *image ); gboolean vips_image_iskilled( VipsImage *image );
void vips_image_set_kill( VipsImage *image, gboolean kill ); void vips_image_set_kill( VipsImage *image, gboolean kill );
VipsImage *vips_image_new( void ); VipsImage *vips_image_new( void );
VipsImage *vips_image_new_mode( const char *filename, const char *mode ); VipsImage *vips_image_new_mode( const char *filename, const char *mode );
VipsImage *vips_image_new_buffer( void ); VipsImage *vips_image_new_buffer( void );
VipsImage *vips_image_new_from_file( const char *filename ); VipsImage *vips_image_new_from_file( const char *filename );
VipsImage *vips_image_new_from_file_raw( const char *filename, VipsImage *vips_image_new_from_file_raw( const char *filename,
int xsize, int ysize, int bands, guint64 offset ); int xsize, int ysize, int bands, guint64 offset );
VipsImage *vips_image_new_from_memory( void *buffer, VipsImage *vips_image_new_from_memory( void *buffer,
int xsize, int ysize, int bands, VipsBandFormat bandfmt ); int xsize, int ysize, int bands, VipsBandFormat bandfmt );
 End of changes. 7 change blocks. 
25 lines changed or deleted 26 lines changed or added


 mosaicing.h   mosaicing.h 
skipping to change at line 42 skipping to change at line 42
#ifndef IM_MOSAICING_H #ifndef IM_MOSAICING_H
#define IM_MOSAICING_H #define IM_MOSAICING_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#include <vips/vips.h> #include <vips/vips.h>
int im_match_linear( VipsImage *ref, VipsImage *sec, VipsImage *out,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2 );
int im_match_linear_search( VipsImage *ref, VipsImage *sec, VipsImage *out,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int hwindowsize, int hsearchsize );
int im_lrmerge( VipsImage *ref, VipsImage *sec, VipsImage *out, int im_lrmerge( VipsImage *ref, VipsImage *sec, VipsImage *out,
int dx, int dy, int mwidth ); int dx, int dy, int mwidth );
int im_tbmerge( VipsImage *ref, VipsImage *sec, VipsImage *out, int im_tbmerge( VipsImage *ref, VipsImage *sec, VipsImage *out,
int dx, int dy, int mwidth ); int dx, int dy, int mwidth );
int im_lrmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out, int im_lrmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out,
int xr1, int yr1, int xs1, int ys1, int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2, int xr2, int yr2, int xs2, int ys2,
int mwidth ); int mwidth );
int im_tbmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out, int im_tbmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out,
 End of changes. 1 change blocks. 
0 lines changed or deleted 8 lines changed or added


 object.h   object.h 
skipping to change at line 133 skipping to change at line 133
\ \
pspec = g_param_spec_object( (NAME), (LONG), (DESC), \ pspec = g_param_spec_object( (NAME), (LONG), (DESC), \
VIPS_TYPE_IMAGE, \ VIPS_TYPE_IMAGE, \
G_PARAM_READWRITE ); \ G_PARAM_READWRITE ); \
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_INTERPOLATE( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFF
SET ) { \
GParamSpec *pspec; \
\
pspec = g_param_spec_object( (NAME), (LONG), (DESC), \
VIPS_TYPE_INTERPOLATE, \
G_PARAM_READWRITE ); \
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
}
#define VIPS_ARG_BOOL( CLASS, NAME, PRIORITY, LONG, DESC, \ #define VIPS_ARG_BOOL( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, VALUE ) { \ FLAGS, OFFSET, VALUE ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_boolean( (NAME), (LONG), (DESC), \ pspec = g_param_spec_boolean( (NAME), (LONG), (DESC), \
(VALUE), \ (VALUE), \
G_PARAM_READWRITE ); \ G_PARAM_READWRITE ); \
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
skipping to change at line 316 skipping to change at line 328
void *vips_argument_map( VipsObject *object, void *vips_argument_map( VipsObject *object,
VipsArgumentMapFn fn, void *a, void *b ); VipsArgumentMapFn fn, void *a, void *b );
typedef void *(*VipsArgumentClassMapFn)( VipsObjectClass *, GParamSpec *, typedef void *(*VipsArgumentClassMapFn)( VipsObjectClass *, GParamSpec *,
VipsArgumentClass *, void *a, void *b ); VipsArgumentClass *, void *a, void *b );
void *vips_argument_class_map( VipsObjectClass *object_class, void *vips_argument_class_map( VipsObjectClass *object_class,
VipsArgumentClassMapFn fn, void *a, void *b ); VipsArgumentClassMapFn fn, void *a, void *b );
int vips_object_get_argument( VipsObject *object, const char *name, int vips_object_get_argument( VipsObject *object, const char *name,
GParamSpec **pspec, GParamSpec **pspec,
VipsArgumentClass **argument_class, VipsArgumentClass **argument_class,
VipsArgumentInstance **argument_instance ); VipsArgumentInstance **argument_instance );
gboolean vips_object_get_argument_assigned( VipsObject *object, gboolean vips_object_argument_isset( VipsObject *object, const char *name )
const char *name ); ;
VipsArgumentFlags vips_object_get_argument_flags( VipsObject *object, VipsArgumentFlags vips_object_get_argument_flags( VipsObject *object,
const char *name ); const char *name );
int vips_object_get_argument_priority( VipsObject *object, const char *name ); int vips_object_get_argument_priority( VipsObject *object, const char *name );
/* We have to loop over an objects args in several places, and we can't alw ays /* We have to loop over an objects args in several places, and we can't alw ays
* use vips_argument_map(), the preferred looper. Have the loop code as a * use vips_argument_map(), the preferred looper. Have the loop code as a
* macro as well for these odd cases. * macro as well for these odd cases.
*/ */
#define VIPS_ARGUMENT_FOR_ALL( OBJECT, PSPEC, ARG_CLASS, ARG_INSTANCE ) { \ #define VIPS_ARGUMENT_FOR_ALL( OBJECT, PSPEC, ARG_CLASS, ARG_INSTANCE ) { \
VipsObjectClass *object_class = VIPS_OBJECT_GET_CLASS( OBJECT ); \ VipsObjectClass *object_class = VIPS_OBJECT_GET_CLASS( OBJECT ); \
skipping to change at line 342 skipping to change at line 353
(VipsArgumentClass *) p->data; \ (VipsArgumentClass *) p->data; \
VipsArgument *argument = (VipsArgument *) argument_class; \ VipsArgument *argument = (VipsArgument *) argument_class; \
GParamSpec *PSPEC = argument->pspec; \ GParamSpec *PSPEC = argument->pspec; \
VipsArgumentInstance *ARG_INSTANCE __attribute__ ((unused)) = \ VipsArgumentInstance *ARG_INSTANCE __attribute__ ((unused)) = \
vips__argument_get_instance( argument_class, \ vips__argument_get_instance( argument_class, \
VIPS_OBJECT( OBJECT ) ); \ VIPS_OBJECT( OBJECT ) ); \
#define VIPS_ARGUMENT_FOR_ALL_END } } #define VIPS_ARGUMENT_FOR_ALL_END } }
/* And some macros to collect args from a va list. /* And some macros to collect args from a va list.
*
* Use something like this:
GParamSpec *pspec;
VipsArgumentClass *argument_class;
VipsArgumentInstance *argument_instance;
if( vips_object_get_argument( VIPS_OBJECT( operation ), name,
&pspec, &argument_class, &argument_instance ) )
return( -1 );
VIPS_ARGUMENT_COLLECT_SET( pspec, argument_class, ap );
GValue value holds the value of an input argument, do
something with it
VIPS_ARGUMENT_COLLECT_GET( pspec, argument_class, ap );
void **arg points to where to write an output argument
VIPS_ARGUMENT_COLLECT_END
*/ */
#define VIPS_ARGUMENT_COLLECT_SET( PSPEC, ARG_CLASS, AP ) \ #define VIPS_ARGUMENT_COLLECT_SET( PSPEC, ARG_CLASS, AP ) \
if( (ARG_CLASS->flags & VIPS_ARGUMENT_INPUT) ) { \ if( (ARG_CLASS->flags & VIPS_ARGUMENT_INPUT) ) { \
GValue value = { 0, }; \ GValue value = { 0, }; \
gchar *error = NULL; \ gchar *error = NULL; \
\ \
/* Input args are given inline, eg. ("factor", 12.0) \ /* Input args are given inline, eg. ("factor", 12.0) \
* and must be collected. \ * and must be collected. \
*/ \ */ \
g_value_init( &value, G_PARAM_SPEC_VALUE_TYPE( PSPEC ) ); \ g_value_init( &value, G_PARAM_SPEC_VALUE_TYPE( PSPEC ) ); \
skipping to change at line 430 skipping to change at line 463
/* Build the object ... all argument properties have been set, /* Build the object ... all argument properties have been set,
* now build the thing. * now build the thing.
*/ */
int (*build)( VipsObject *object ); int (*build)( VipsObject *object );
/* Try to print something about the class, handy for help displays. /* Try to print something about the class, handy for help displays.
* Keep to one line. * Keep to one line.
*/ */
void (*summary_class)( struct _VipsObjectClass *, VipsBuf * ); void (*summary_class)( struct _VipsObjectClass *, VipsBuf * );
/* Try to print a one-line summary for the object, handy for debuggi /* Try to print a one-line summary for the object, the user can see
ng. * this output via things like "header fred.tif", --vips-cache-trace
,
* etc.
*/ */
void (*summary)( VipsObject *, VipsBuf * ); void (*summary)( VipsObject *, VipsBuf * );
/* Try to print everything about the object, handy for debugging. /* Try to print everything about the object, handy for debugging.
*/ */
void (*dump)( VipsObject *, VipsBuf * ); void (*dump)( VipsObject *, VipsBuf * );
/* Sanity-check the object. Print messages and stuff. /* Sanity-check the object. Print messages and stuff.
* Handy for debugging. * Handy for debugging.
*/ */
skipping to change at line 541 skipping to change at line 576
void vips_object_print_name( VipsObject *object ); void vips_object_print_name( VipsObject *object );
gboolean vips_object_sanity( VipsObject *object ); gboolean vips_object_sanity( VipsObject *object );
GType vips_object_get_type( void ); GType vips_object_get_type( void );
void vips_object_class_install_argument( VipsObjectClass *, GParamSpec *psp ec, void vips_object_class_install_argument( VipsObjectClass *, GParamSpec *psp ec,
VipsArgumentFlags flags, int priority, guint offset ); VipsArgumentFlags flags, int priority, guint offset );
int vips_object_set_argument_from_string( VipsObject *object, int vips_object_set_argument_from_string( VipsObject *object,
const char *name, const char *value ); const char *name, const char *value );
gboolean vips_object_get_argument_needs_string( VipsObject *object, gboolean vips_object_argument_needsstring( VipsObject *object,
const char *name ); const char *name );
int vips_object_get_argument_to_string( VipsObject *object, int vips_object_get_argument_to_string( VipsObject *object,
const char *name, const char *arg ); const char *name, const char *arg );
int vips_object_set_required( VipsObject *object, const char *value ); int vips_object_set_required( VipsObject *object, const char *value );
typedef void *(*VipsObjectSetArguments)( VipsObject *, void *, void * ); typedef void *(*VipsObjectSetArguments)( VipsObject *, void *, void * );
VipsObject *vips_object_new( GType type, VipsObject *vips_object_new( GType type,
VipsObjectSetArguments set, void *a, void *b ); VipsObjectSetArguments set, void *a, void *b );
int vips_object_set_valist( VipsObject *object, va_list ap ); int vips_object_set_valist( VipsObject *object, va_list ap );
 End of changes. 5 change blocks. 
5 lines changed or deleted 42 lines changed or added


 resample.h   resample.h 
skipping to change at line 33 skipping to change at line 33
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U SA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U SA
*/ */
/* /*
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
*/ */
#ifndef IM_RESAMPLE_H #ifndef VIPS_RESAMPLE_H
#define IM_RESAMPLE_H #define VIPS_RESAMPLE_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
int im_affinei( VipsImage *in, VipsImage *out,
VipsInterpolate *interpolate,
double a, double b, double c, double d, double dx, double dy,
int ox, int oy, int ow, int oh );
int im_affinei_all( VipsImage *in, VipsImage *out, VipsInterpolate *interpo
late,
double a, double b, double c, double d, double dx, double dy ) ;
int im_rightshift_size( VipsImage *in, VipsImage *out,
int xshift, int yshift, int band_fmt );
int im_match_linear( VipsImage *ref, VipsImage *sec, VipsImage *out,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2 );
int im_match_linear_search( VipsImage *ref, VipsImage *sec, VipsImage *out,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int hwindowsize, int hsearchsize );
int vips_shrink( VipsImage *in, VipsImage **out, int vips_shrink( VipsImage *in, VipsImage **out,
double xshrink, double yshrink, ... ) double xshrink, double yshrink, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_affine( VipsImage *in, VipsImage **out,
double a, double b, double c, double d, ... )
__attribute__((sentinel));
int vips_quadratic( VipsImage *in, VipsImage **out, VipsImage *coeff, ... )
__attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_RESAMPLE_H*/ #endif /*VIPS_RESAMPLE_H*/
 End of changes. 4 change blocks. 
21 lines changed or deleted 8 lines changed or added


 thread.h   thread.h 
skipping to change at line 38 skipping to change at line 38
*/ */
#ifndef VIPS_THREAD_H #ifndef VIPS_THREAD_H
#define VIPS_THREAD_H #define VIPS_THREAD_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
/* Stack size for each thread. We need to set this explicitly because some /* We need wrappers over g_mutex_new(), it was replaced by g_mutex_init() i
* systems have a very low default. n
* glib 2.32+
FIXME ... should have an environment variable for this?
*/ */
#define VIPS__DEFAULT_STACK_SIZE (2 * 1024 * 1024) GMutex *vips_g_mutex_new( void );
void vips_g_mutex_free( GMutex * );
#ifndef HAVE_THREADS /* Same for GCond.
#undef g_thread_supported
#define g_thread_supported() (0)
#define g_thread_init vips__g_thread_init
#define g_thread_join vips__g_thread_join
#define g_thread_self vips__g_thread_self
#define g_thread_create_full vips__g_thread_create_full
/* We don't need a shadow imlementation of g_thread_create(), even though w
e
* use it, because it's just a macro over g_thread_create_full().
*/ */
GCond *vips_g_cond_new( void );
void vips_g_cond_free( GCond * );
void vips__g_thread_init( GThreadFunctions *vtable ); /* ... and for GThread.
gpointer vips__g_thread_join( GThread * ); */
gpointer vips__g_thread_self( void ); GThread *vips_g_thread_new( const char *, GThreadFunc, gpointer );
GThread *vips__g_thread_create_full( GThreadFunc,
gpointer, gulong, gboolean, gboolean, GThreadPriority, GError ** );
#undef g_mutex_new
#undef g_mutex_free
#undef g_mutex_lock
#undef g_mutex_unlock
#define g_mutex_new vips__g_mutex_new
#define g_mutex_free vips__g_mutex_free
#define g_mutex_lock vips__g_mutex_lock
#define g_mutex_unlock vips__g_mutex_unlock
GMutex *vips__g_mutex_new( void );
void vips__g_mutex_free( GMutex * );
void vips__g_mutex_lock( GMutex * );
void vips__g_mutex_unlock( GMutex * );
#endif /*!HAVE_THREADS*/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_THREAD_H*/ #endif /*VIPS_THREAD_H*/
 End of changes. 5 change blocks. 
39 lines changed or deleted 11 lines changed or added


 transform.h   transform.h 
skipping to change at line 30 skipping to change at line 30
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U SA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U SA
*/ */
/* /*
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
*/ */
#ifndef VIPS_TRANSFORM_H
#define VIPS_TRANSFORM_H
#ifdef __cplusplus
extern "C" {
#endif /*__cplusplus*/
/* Params for an affine transformation. /* Params for an affine transformation.
*/ */
typedef struct { typedef struct {
/* Area of input we can use. This can be smaller than the real input /* Area of input we can use. This can be smaller than the real input
* image: we expand the input to add extra pixels for interpolation. * image: we expand the input to add extra pixels for interpolation.
*/ */
VipsRect iarea; VipsRect iarea;
/* The area of the output we've been asked to generate. left/top can /* The area of the output we've been asked to generate. left/top can
* be negative. * be negative.
*/ */
VipsRect oarea; VipsRect oarea;
/* The transform. /* The transform.
*/ */
double a, b, c, d; double a, b, c, d;
double dx, dy; double idx, idy;
double odx, ody;
double ia, ib, ic, id; /* Inverse of matrix abcd */ double ia, ib, ic, id; /* Inverse of matrix abcd */
} Transformation; } VipsTransformation;
void im__transform_init( Transformation *trn ); void vips__transform_init( VipsTransformation *trn );
int im__transform_calc_inverse( Transformation *trn ); int vips__transform_calc_inverse( VipsTransformation *trn );
int im__transform_isidentity( const Transformation *trn ); int vips__transform_isidentity( const VipsTransformation *trn );
int im__transform_add( const Transformation *in1, const Transformation *in2 int vips__transform_add( const VipsTransformation *in1,
, const VipsTransformation *in2,
Transformation *out ); VipsTransformation *out );
void im__transform_print( const Transformation *trn ); void vips__transform_print( const VipsTransformation *trn );
void im__transform_forward_point( const Transformation *trn, void vips__transform_forward_point( const VipsTransformation *trn,
const double x, const double y, double *ox, double *oy ); const double x, const double y, double *ox, double *oy );
void im__transform_invert_point( const Transformation *trn, void vips__transform_invert_point( const VipsTransformation *trn,
const double x, const double y, double *ox, double *oy ); const double x, const double y, double *ox, double *oy );
void im__transform_forward_rect( const Transformation *trn, void vips__transform_forward_rect( const VipsTransformation *trn,
const VipsRect *in, VipsRect *out ); const VipsRect *in, VipsRect *out );
void im__transform_invert_rect( const Transformation *trn, void vips__transform_invert_rect( const VipsTransformation *trn,
const VipsRect *in, VipsRect *out ); const VipsRect *in, VipsRect *out );
void im__transform_set_area( Transformation * ); void vips__transform_set_area( VipsTransformation * );
int vips__affine( VipsImage *in, VipsImage *out, VipsTransformation *trn );
#ifdef __cplusplus
}
#endif /*__cplusplus*/
int im__affine( VipsImage *in, VipsImage *out, Transformation *trn ); #endif /*VIPS_TRANSFORM_H*/
 End of changes. 10 change blocks. 
14 lines changed or deleted 28 lines changed or added


 type.h   type.h 
skipping to change at line 69 skipping to change at line 69
void *data; void *data;
size_t length; /* 0 if not known */ size_t length; /* 0 if not known */
/* If this area represents an array, the number of elements in the /* If this area represents an array, the number of elements in the
* array. Equal to length / sizeof(element). * array. Equal to length / sizeof(element).
*/ */
int n; int n;
/*< private >*/ /*< private >*/
/* Reference count. /* Reference count and lock.
*
* We could use an atomic int, but this is not a high-traffic data
* structure, so a simple GMutex is OK.
*/ */
int count; int count;
GMutex *lock;
/* Things like ICC profiles need their own free functions. /* Things like ICC profiles need their own free functions.
*/ */
VipsCallbackFn free_fn; VipsCallbackFn free_fn;
/* If we are holding an array (for example, an array of double), the /* If we are holding an array (for example, an array of double), the
* GType of the elements and their size. 0 for not known. * GType of the elements and their size. 0 for not known.
* *
* n is always length / sizeof_type, we keep it as a member for * n is always length / sizeof_type, we keep it as a member for
* convenience. * convenience.
skipping to change at line 139 skipping to change at line 143
GType vips_blob_get_type( void ); GType vips_blob_get_type( void );
/** /**
* VIPS_TYPE_ARRAY_DOUBLE: * VIPS_TYPE_ARRAY_DOUBLE:
* *
* The #GType for a #VipsArrayDouble. * The #GType for a #VipsArrayDouble.
*/ */
#define VIPS_TYPE_ARRAY_DOUBLE (vips_array_double_get_type()) #define VIPS_TYPE_ARRAY_DOUBLE (vips_array_double_get_type())
typedef VipsArea VipsArrayDouble; typedef VipsArea VipsArrayDouble;
VipsArrayDouble *vips_array_double_new( const double *array, int n ); VipsArrayDouble *vips_array_double_new( const double *array, int n );
VipsArrayDouble *vips_array_double_newv( int n, ... );
GType vips_array_double_get_type( void ); GType vips_array_double_get_type( void );
/** /**
* VIPS_TYPE_ARRAY_INT:
*
* The #GType for a #VipsArrayInt.
*/
#define VIPS_TYPE_ARRAY_INT (vips_array_int_get_type())
typedef VipsArea VipsArrayInt;
VipsArrayInt *vips_array_int_new( const int *array, int n );
VipsArrayInt *vips_array_int_newv( int n, ... );
GType vips_array_int_get_type( void );
/**
* VIPS_TYPE_ARRAY_IMAGE: * VIPS_TYPE_ARRAY_IMAGE:
* *
* The #GType for a #VipsArrayImage. * The #GType for a #VipsArrayImage.
*/ */
#define VIPS_TYPE_ARRAY_IMAGE (vips_array_image_get_type()) #define VIPS_TYPE_ARRAY_IMAGE (vips_array_image_get_type())
GType vips_array_image_get_type( void ); GType vips_array_image_get_type( void );
void vips_value_set_area( GValue *value, VipsCallbackFn free_fn, void *data ); void vips_value_set_area( GValue *value, VipsCallbackFn free_fn, void *data );
void *vips_value_get_area( const GValue *value, size_t *length ); void *vips_value_get_area( const GValue *value, size_t *length );
skipping to change at line 172 skipping to change at line 188
VipsCallbackFn free_fn, void *data, size_t length ); VipsCallbackFn free_fn, void *data, size_t length );
void vips_value_set_array( GValue *value, void vips_value_set_array( GValue *value,
int n, GType type, size_t sizeof_type ); int n, GType type, size_t sizeof_type );
void *vips_value_get_array( const GValue *value, void *vips_value_get_array( const GValue *value,
int *n, GType *type, size_t *sizeof_type ); int *n, GType *type, size_t *sizeof_type );
double *vips_value_get_array_double( const GValue *value, int *n ); double *vips_value_get_array_double( const GValue *value, int *n );
int vips_value_set_array_double( GValue *value, const double *array, int n ); int vips_value_set_array_double( GValue *value, const double *array, int n );
int *vips_value_get_array_int( const GValue *value, int *n );
int vips_value_set_array_int( GValue *value, const int *array, int n );
GObject **vips_value_get_array_object( const GValue *value, int *n ); GObject **vips_value_get_array_object( const GValue *value, int *n );
int vips_value_set_array_object( GValue *value, int n ); int vips_value_set_array_object( GValue *value, int n );
void vips__meta_init_types( void ); void vips__meta_init_types( void );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_TYPE_H*/ #endif /*VIPS_TYPE_H*/
 End of changes. 5 change blocks. 
1 lines changed or deleted 20 lines changed or added


 vector.h   vector.h 
skipping to change at line 103 skipping to change at line 103
#endif /*HAVE_ORC*/ #endif /*HAVE_ORC*/
VipsVector *vector; VipsVector *vector;
} VipsExecutor; } VipsExecutor;
/* Set from the command-line. /* Set from the command-line.
*/ */
extern gboolean vips__vector_enabled; extern gboolean vips__vector_enabled;
void vips_vector_init( void ); void vips_vector_init( void );
gboolean vips_vector_get_enabled( void ); gboolean vips_vector_isenabled( void );
void vips_vector_set_enabled( gboolean enabled ); void vips_vector_set_enabled( gboolean enabled );
void vips_vector_free( VipsVector *vector ); void vips_vector_free( VipsVector *vector );
VipsVector *vips_vector_new( const char *name, int dsize ); VipsVector *vips_vector_new( const char *name, int dsize );
void vips_vector_constant( VipsVector *vector, void vips_vector_constant( VipsVector *vector,
char *name, int value, int size ); char *name, int value, int size );
int vips_vector_source_name( VipsVector *vector, char *name, int size ); int vips_vector_source_name( VipsVector *vector, char *name, int size );
void vips_vector_source_scanline( VipsVector *vector, void vips_vector_source_scanline( VipsVector *vector,
char *name, int line, int size ); char *name, int line, int size );
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 version.h   version.h 
/* Macros for the header version. /* Macros for the header version.
*/ */
#ifndef VIPS_VERSION_H #ifndef VIPS_VERSION_H
#define VIPS_VERSION_H #define VIPS_VERSION_H
#define VIPS_VERSION "7.30.8" #define VIPS_VERSION "7.32.0"
#define VIPS_VERSION_STRING "7.30.8-Mon Jan 20 19:00:11 MSK 2014" #define VIPS_VERSION_STRING "7.32.0-Mon Jan 20 18:49:49 MSK 2014"
#define VIPS_MAJOR_VERSION (7) #define VIPS_MAJOR_VERSION (7)
#define VIPS_MINOR_VERSION (30) #define VIPS_MINOR_VERSION (32)
#define VIPS_MICRO_VERSION (8) #define VIPS_MICRO_VERSION (0)
/* Not really anything to do with versions, but this is a handy place to pu t /* Not really anything to do with versions, but this is a handy place to pu t
* it. * it.
*/ */
#define VIPS_EXEEXT "" #define VIPS_EXEEXT ""
#endif /*VIPS_VERSION_H*/ #endif /*VIPS_VERSION_H*/
 End of changes. 2 change blocks. 
4 lines changed or deleted 4 lines changed or added


 vips.h   vips.h 
skipping to change at line 135 skipping to change at line 135
#include <vips/arithmetic.h> #include <vips/arithmetic.h>
#include <vips/relational.h> #include <vips/relational.h>
#include <vips/conversion.h> #include <vips/conversion.h>
#include <vips/convolution.h> #include <vips/convolution.h>
#include <vips/morphology.h> #include <vips/morphology.h>
#include <vips/mosaicing.h> #include <vips/mosaicing.h>
#include <vips/histograms_lut.h> #include <vips/histograms_lut.h>
#include <vips/freq_filt.h> #include <vips/freq_filt.h>
#include <vips/resample.h> #include <vips/resample.h>
#include <vips/colour.h> #include <vips/colour.h>
#include <vips/disp.h>
#include <vips/inplace.h> #include <vips/inplace.h>
#include <vips/other.h> #include <vips/other.h>
#include <vips/video.h> #include <vips/video.h>
#include <vips/cimg_funcs.h> #include <vips/cimg_funcs.h>
#ifndef VIPS_DISABLE_VIPS7COMPAT #ifndef VIPS_DISABLE_VIPS7COMPAT
#include <vips/vips7compat.h> #include <vips/vips7compat.h>
#endif /*VIPS_DISABLE_VIPS7COMPAT*/ #endif /*VIPS_DISABLE_VIPS7COMPAT*/
#ifdef VIPS_ENABLE_DEPRECATED #ifdef VIPS_ENABLE_DEPRECATED
 End of changes. 1 change blocks. 
1 lines changed or deleted 0 lines changed or added


 vips7compat.h   vips7compat.h 
skipping to change at line 43 skipping to change at line 43
#ifndef VIPS_VIPS7COMPAT_H #ifndef VIPS_VIPS7COMPAT_H
#define VIPS_VIP7COMPATS_H #define VIPS_VIP7COMPATS_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
/* Renamed types. /* Renamed types.
*/ */
#define IM_D93_X0 VIPS_D93_X0
#define IM_D93_Y0 VIPS_D93_Y0
#define IM_D93_Z0 VIPS_D93_Z0
#define IM_D75_X0 VIPS_D75_X0
#define IM_D75_Y0 VIPS_D75_Y0
#define IM_D75_Z0 VIPS_D75_Z0
#define IM_D65_X0 VIPS_D65_X0
#define IM_D65_Y0 VIPS_D65_Y0
#define IM_D65_Z0 VIPS_D65_Z0
#define IM_D55_X0 VIPS_D55_X0
#define IM_D55_Y0 VIPS_D55_Y0
#define IM_D55_Z0 VIPS_D55_Z0
#define IM_D50_X0 VIPS_D50_X0
#define IM_D50_Y0 VIPS_D50_Y0
#define IM_D50_Z0 VIPS_D50_Z0
#define IM_A_X0 VIPS_A_X0
#define IM_A_Y0 VIPS_A_Y0
#define IM_A_Z0 VIPS_A_Z0
#define IM_B_X0 VIPS_B_X0
#define IM_B_Y0 VIPS_B_Y0
#define IM_B_Z0 VIPS_B_Z0
#define IM_C_X0 VIPS_C_X0
#define IM_C_Y0 VIPS_C_Y0
#define IM_C_Z0 VIPS_C_Z0
#define IM_E_X0 VIPS_E_X0
#define IM_E_Y0 VIPS_E_Y0
#define IM_E_Z0 VIPS_E_Z0
#define IM_D3250_X0 VIPS_D3250_X0
#define IM_D3250_Y0 VIPS_D3250_Y0
#define IM_D3250_Z0 VIPS_D3250_Z0
#define im_col_Lab2XYZ vips_col_Lab2XYZ
#define im_col_XYZ2Lab vips_col_XYZ2Lab
#define im_col_ab2h vips_col_ab2h
#define im_col_ab2Ch vips_col_ab2Ch
#define im_col_Ch2ab vips_col_Ch2ab
#define im_col_L2Lucs vips_col_L2Lcmc
#define im_col_C2Cucs vips_col_C2Ccmc
#define im_col_Ch2hucs vips_col_Ch2hcmc
#define im_col_pythagoras vips_pythagoras
#define im_col_make_tables_UCS vips_col_make_tables_CMC
#define im_col_Lucs2L vips_col_Lcmc2L
#define im_col_Cucs2C vips_col_Ccmc2C
#define im_col_Chucs2h vips_col_Chcmc2h
#define PEL VipsPel #define PEL VipsPel
#define IM_BANDFMT_NOTSET VIPS_FORMAT_NOTSET #define IM_BANDFMT_NOTSET VIPS_FORMAT_NOTSET
#define IM_BANDFMT_UCHAR VIPS_FORMAT_UCHAR #define IM_BANDFMT_UCHAR VIPS_FORMAT_UCHAR
#define IM_BANDFMT_CHAR VIPS_FORMAT_CHAR #define IM_BANDFMT_CHAR VIPS_FORMAT_CHAR
#define IM_BANDFMT_USHORT VIPS_FORMAT_USHORT #define IM_BANDFMT_USHORT VIPS_FORMAT_USHORT
#define IM_BANDFMT_SHORT VIPS_FORMAT_SHORT #define IM_BANDFMT_SHORT VIPS_FORMAT_SHORT
#define IM_BANDFMT_UINT VIPS_FORMAT_UINT #define IM_BANDFMT_UINT VIPS_FORMAT_UINT
#define IM_BANDFMT_INT VIPS_FORMAT_INT #define IM_BANDFMT_INT VIPS_FORMAT_INT
#define IM_BANDFMT_FLOAT VIPS_FORMAT_FLOAT #define IM_BANDFMT_FLOAT VIPS_FORMAT_FLOAT
skipping to change at line 77 skipping to change at line 133
#define IM_TYPE_MULTIBAND VIPS_INTERPRETATION_MULTIBAND #define IM_TYPE_MULTIBAND VIPS_INTERPRETATION_MULTIBAND
#define IM_TYPE_B_W VIPS_INTERPRETATION_B_W #define IM_TYPE_B_W VIPS_INTERPRETATION_B_W
#define IM_TYPE_HISTOGRAM VIPS_INTERPRETATION_HISTOGRAM #define IM_TYPE_HISTOGRAM VIPS_INTERPRETATION_HISTOGRAM
#define IM_TYPE_FOURIER VIPS_INTERPRETATION_FOURIER #define IM_TYPE_FOURIER VIPS_INTERPRETATION_FOURIER
#define IM_TYPE_XYZ VIPS_INTERPRETATION_XYZ #define IM_TYPE_XYZ VIPS_INTERPRETATION_XYZ
#define IM_TYPE_LAB VIPS_INTERPRETATION_LAB #define IM_TYPE_LAB VIPS_INTERPRETATION_LAB
#define IM_TYPE_CMYK VIPS_INTERPRETATION_CMYK #define IM_TYPE_CMYK VIPS_INTERPRETATION_CMYK
#define IM_TYPE_LABQ VIPS_INTERPRETATION_LABQ #define IM_TYPE_LABQ VIPS_INTERPRETATION_LABQ
#define IM_TYPE_RGB VIPS_INTERPRETATION_RGB #define IM_TYPE_RGB VIPS_INTERPRETATION_RGB
#define IM_TYPE_UCS VIPS_INTERPRETATION_UCS #define IM_TYPE_UCS VIPS_INTERPRETATION_CMC
#define IM_TYPE_LCH VIPS_INTERPRETATION_LCH #define IM_TYPE_LCH VIPS_INTERPRETATION_LCH
#define IM_TYPE_LABS VIPS_INTERPRETATION_LABS #define IM_TYPE_LABS VIPS_INTERPRETATION_LABS
#define IM_TYPE_sRGB VIPS_INTERPRETATION_sRGB #define IM_TYPE_sRGB VIPS_INTERPRETATION_sRGB
#define IM_TYPE_YXY VIPS_INTERPRETATION_YXY #define IM_TYPE_YXY VIPS_INTERPRETATION_YXY
#define IM_TYPE_RGB16 VIPS_INTERPRETATION_RGB16 #define IM_TYPE_RGB16 VIPS_INTERPRETATION_RGB16
#define IM_TYPE_GREY16 VIPS_INTERPRETATION_GREY16 #define IM_TYPE_GREY16 VIPS_INTERPRETATION_GREY16
#define VipsType VipsInterpretation #define VipsType VipsInterpretation
#define IMAGE VipsImage #define IMAGE VipsImage
#define REGION VipsRegion #define REGION VipsRegion
#define IM_INTENT_PERCEPTUAL VIPS_INTENT_PERCEPTUAL
#define IM_INTENT_RELATIVE_COLORIMETRIC VIPS_INTENT_RELATIVE
#define IM_INTENT_SATURATION VIPS_INTENT_SATURATION
#define IM_INTENT_ABSOLUTE_COLORIMETRIC VIPS_INTENT_ABSOLUTE
/* Renamed macros. /* Renamed macros.
*/ */
#define IM_MAX VIPS_MAX #define IM_MAX VIPS_MAX
#define IM_MIN VIPS_MIN #define IM_MIN VIPS_MIN
#define IM_RAD VIPS_RAD #define IM_RAD VIPS_RAD
#define IM_DEG VIPS_DEG #define IM_DEG VIPS_DEG
#define IM_PI VIPS_PI #define IM_PI VIPS_PI
#define IM_RINT VIPS_RINT #define IM_RINT VIPS_RINT
#define IM_ABS VIPS_ABS #define IM_ABS VIPS_ABS
skipping to change at line 376 skipping to change at line 437
#define im_check_imask vips_check_imask #define im_check_imask vips_check_imask
#define im_check_dmask vips_check_dmask #define im_check_dmask vips_check_dmask
#define vips_bandfmt_isint vips_band_format_isint #define vips_bandfmt_isint vips_band_format_isint
#define vips_bandfmt_isuint vips_band_format_isuint #define vips_bandfmt_isuint vips_band_format_isuint
#define vips_bandfmt_isfloat vips_band_format_isfloat #define vips_bandfmt_isfloat vips_band_format_isfloat
#define vips_bandfmt_iscomplex vips_band_format_iscomplex #define vips_bandfmt_iscomplex vips_band_format_iscomplex
#define im__change_suffix vips__change_suffix #define im__change_suffix vips__change_suffix
int vips_check_coding_labq( const char *domain, VipsImage *im );
int vips_check_coding_rad( const char *domain, VipsImage *im );
int vips_check_bands_3ormore( const char *domain, VipsImage *im );
/* Buffer processing. /* Buffer processing.
*/ */
typedef void (*im_wrapone_fn)( void *in, void *out, int width, typedef void (*im_wrapone_fn)( void *in, void *out, int width,
void *a, void *b ); void *a, void *b );
int im_wrapone( VipsImage *in, VipsImage *out, int im_wrapone( VipsImage *in, VipsImage *out,
im_wrapone_fn fn, void *a, void *b ); im_wrapone_fn fn, void *a, void *b );
typedef void (*im_wraptwo_fn)( void *in1, void *in2, void *out, typedef void (*im_wraptwo_fn)( void *in1, void *in2, void *out,
int width, void *a, void *b ); int width, void *a, void *b );
int im_wraptwo( VipsImage *in1, VipsImage *in2, VipsImage *out, int im_wraptwo( VipsImage *in1, VipsImage *in2, VipsImage *out,
skipping to change at line 602 skipping to change at line 667
int im_lesseq_vec( VipsImage *in, VipsImage *out, int n, double *c ); int im_lesseq_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_more_vec( VipsImage *in, VipsImage *out, int n, double *c ); int im_more_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_moreeq_vec( VipsImage *in, VipsImage *out, int n, double *c ); int im_moreeq_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_equalconst( VipsImage *in, VipsImage *out, double c ); int im_equalconst( VipsImage *in, VipsImage *out, double c );
int im_notequalconst( VipsImage *in, VipsImage *out, double c ); int im_notequalconst( VipsImage *in, VipsImage *out, double c );
int im_lessconst( VipsImage *in, VipsImage *out, double c ); int im_lessconst( VipsImage *in, VipsImage *out, double c );
int im_lesseqconst( VipsImage *in, VipsImage *out, double c ); int im_lesseqconst( VipsImage *in, VipsImage *out, double c );
int im_moreconst( VipsImage *in, VipsImage *out, double c ); int im_moreconst( VipsImage *in, VipsImage *out, double c );
int im_moreeqconst( VipsImage *in, VipsImage *out, double c ); int im_moreeqconst( VipsImage *in, VipsImage *out, double c );
int im_maxpos_vec( VipsImage *im, int *xpos, int *ypos, double *maxima, int
n );
int im_minpos_vec( VipsImage *im, int *xpos, int *ypos, double *minima, int
n );
int im_maxpos_avg( VipsImage *im, double *xpos, double *ypos, double *out )
;
int im_linreg( VipsImage **ins, VipsImage *out, double *xs );
int im_cross_phase( VipsImage *a, VipsImage *b, VipsImage *out );
int im_point( VipsImage *im, VipsInterpolate *interpolate,
double x, double y, int band, double *out );
int im_point_bilinear( VipsImage *im,
double x, double y, int band, double *out );
int im_copy( VipsImage *in, VipsImage *out ); int im_copy( VipsImage *in, VipsImage *out );
int im_copy_set( VipsImage *in, VipsImage *out, int im_copy_set( VipsImage *in, VipsImage *out,
VipsInterpretation interpretation, VipsInterpretation interpretation,
float xres, float yres, int xoffset, int yoffset ); float xres, float yres, int xoffset, int yoffset );
int im_copy_set_meta( VipsImage *in, VipsImage *out, int im_copy_set_meta( VipsImage *in, VipsImage *out,
const char *field, GValue *value ); const char *field, GValue *value );
int im_copy_morph( VipsImage *in, VipsImage *out, int im_copy_morph( VipsImage *in, VipsImage *out,
int bands, VipsBandFormat format, VipsCoding coding ); int bands, VipsBandFormat format, VipsCoding coding );
int im_copy_swap( VipsImage *in, VipsImage *out ); int im_copy_swap( VipsImage *in, VipsImage *out );
int im_copy_native( VipsImage *in, VipsImage *out, gboolean is_msb_first ); int im_copy_native( VipsImage *in, VipsImage *out, gboolean is_msb_first );
skipping to change at line 654 skipping to change at line 733
DOUBLEMASK *im_vips2mask( VipsImage *in, const char *filename ); DOUBLEMASK *im_vips2mask( VipsImage *in, const char *filename );
int im_mask2vips( DOUBLEMASK *in, VipsImage *out ); int im_mask2vips( DOUBLEMASK *in, VipsImage *out );
int im_bandmean( VipsImage *in, VipsImage *out ); int im_bandmean( VipsImage *in, VipsImage *out );
int im_recomb( VipsImage *in, VipsImage *out, DOUBLEMASK *recomb ); int im_recomb( VipsImage *in, VipsImage *out, DOUBLEMASK *recomb );
int im_argb2rgba( VipsImage *in, VipsImage *out ); int im_argb2rgba( VipsImage *in, VipsImage *out );
int im_shrink( VipsImage *in, VipsImage *out, double xshrink, double yshrin k ); int im_shrink( VipsImage *in, VipsImage *out, double xshrink, double yshrin k );
int im_affinei( VipsImage *in, VipsImage *out,
VipsInterpolate *interpolate,
double a, double b, double c, double d, double dx, double dy,
int ox, int oy, int ow, int oh );
int im_affinei_all( VipsImage *in, VipsImage *out, VipsInterpolate *interpo
late,
double a, double b, double c, double d, double dx, double dy ) ;
int im_rightshift_size( VipsImage *in, VipsImage *out,
int xshift, int yshift, int band_fmt );
int im_Lab2XYZ_temp( IMAGE *in, IMAGE *out, double X0, double Y0, double Z0
);
int im_Lab2XYZ( IMAGE *in, IMAGE *out );
int im_XYZ2Lab( VipsImage *in, VipsImage *out );
int im_XYZ2Lab_temp( VipsImage *in, VipsImage *out,
double X0, double Y0, double Z0 );
int im_Lab2LCh( VipsImage *in, VipsImage *out );
int im_LCh2Lab( VipsImage *in, VipsImage *out );
int im_LCh2UCS( VipsImage *in, VipsImage *out );
int im_UCS2LCh( VipsImage *in, VipsImage *out );
int im_XYZ2Yxy( VipsImage *in, VipsImage *out );
int im_Yxy2XYZ( VipsImage *in, VipsImage *out );
int im_float2rad( VipsImage *in, VipsImage *out );
int im_rad2float( VipsImage *in, VipsImage *out );
int im_Lab2LabQ( VipsImage *in, VipsImage *out );
int im_LabQ2Lab( VipsImage *in, VipsImage *out );
int im_Lab2LabS( VipsImage *in, VipsImage *out );
int im_LabS2Lab( VipsImage *in, VipsImage *out );
int im_LabQ2LabS( VipsImage *in, VipsImage *out );
int im_LabS2LabQ( VipsImage *in, VipsImage *out );
int im_LabQ2sRGB( VipsImage *in, VipsImage *out );
int im_XYZ2sRGB( IMAGE *in, IMAGE *out );
int im_sRGB2XYZ( IMAGE *in, IMAGE *out );
struct im_col_display;
#define im_col_displays(S) (NULL)
#define im_LabQ2disp_build_table(A, B) (NULL)
#define im_LabQ2disp_table(A, B, C) (im_LabQ2disp(A, B, C))
int im_Lab2disp( IMAGE *in, IMAGE *out, struct im_col_display *disp );
int im_disp2Lab( IMAGE *in, IMAGE *out, struct im_col_display *disp );
int im_dE_fromdisp( IMAGE *, IMAGE *, IMAGE *, struct im_col_display * );
int im_dECMC_fromdisp( IMAGE *, IMAGE *, IMAGE *, struct im_col_display * )
;
#define im_disp2XYZ(A, B, C) (im_sRGB2XYZ(A, B))
#define im_XYZ2disp(A, B, C) (im_XYZ2sRGB(A, B))
#define im_LabQ2disp(A, B, C) (im_LabQ2sRGB(A, B))
int im_icc_transform( VipsImage *in, VipsImage *out,
const char *input_profile_filename,
const char *output_profile_filename,
VipsIntent intent );
#define im_icc_present vips_icc_present
int im_icc_import( VipsImage *in, VipsImage *out,
const char *input_profile_filename, VipsIntent intent );
int im_icc_import_embedded( VipsImage *in, VipsImage *out, VipsIntent inten
t );
int im_icc_export_depth( VipsImage *in, VipsImage *out, int depth,
const char *output_profile_filename, VipsIntent intent );
int im_icc_ac2rc( VipsImage *in, VipsImage *out, const char *profile_filena
me );
int im_LabQ2XYZ( VipsImage *in, VipsImage *out );
int im_UCS2XYZ( VipsImage *in, VipsImage *out );
int im_UCS2Lab( VipsImage *in, VipsImage *out );
int im_Lab2UCS( VipsImage *in, VipsImage *out );
int im_XYZ2UCS( VipsImage *in, VipsImage *out );
int im_dE_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_dECMC_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_dE_fromXYZ( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_dE00_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_lab_morph( VipsImage *in, VipsImage *out,
DOUBLEMASK *mask,
double L_offset, double L_scale,
double a_scale, double b_scale );
#define im_col_dE00 vips_col_dE00
int im_quadratic( IMAGE *in, IMAGE *out, IMAGE *coeff );
/* ruby-vips uses this /* ruby-vips uses this
*/ */
#define vips_class_map_concrete_all vips_class_map_all #define vips_class_map_concrete_all vips_class_map_all
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_VIPS7COMPAT_H*/ #endif /*VIPS_VIPS7COMPAT_H*/
 End of changes. 6 change blocks. 
1 lines changed or deleted 169 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/