arithmetic.h   arithmetic.h 
skipping to change at line 380 skipping to change at line 380
int vips_deviate( VipsImage *in, double *out, ... ) int vips_deviate( VipsImage *in, double *out, ... )
__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 vips_hist_find( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_hist_find_ndim( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_hist_find_indexed( VipsImage *in, VipsImage *index,
VipsImage **out, ... )
__attribute__((sentinel));
int vips_project( VipsImage *in, VipsImage **columns, VipsImage **rows, ...
)
__attribute__((sentinel));
int vips_profile( VipsImage *in, VipsImage **columns, VipsImage **rows, ...
)
__attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_ARITHMETIC_H*/ #endif /*IM_ARITHMETIC_H*/
 End of changes. 1 change blocks. 
0 lines changed or deleted 13 lines changed or added


 conversion.h   conversion.h 
skipping to change at line 41 skipping to change at line 41
*/ */
#ifndef VIPS_CONVERSION_H #ifndef VIPS_CONVERSION_H
#define VIPS_CONVERSION_H #define VIPS_CONVERSION_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
/**
* VipsExtend:
* @VIPS_EXTEND_BLACK: extend with black (all 0) pixels
* @VIPS_EXTEND_COPY: copy the image edges
* @VIPS_EXTEND_REPEAT: repeat the whole image
* @VIPS_EXTEND_MIRROR: mirror the whole image
* @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.
*
* When the edges of an image are extended, you can specify
* how you want the extension done.
*
* #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
* pixel
*
* #VIPS_EXTEND_REPEAT --- the image is tiled to fill the new area
*
* #VIPS_EXTEND_MIRROR --- the image is reflected and tiled to reduce hash
* edges
*
* #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
* keep these frozen for back compat with vips7.
*
* See also: vips_embed().
*/
typedef enum { typedef enum {
VIPS_EXTEND_BLACK, VIPS_EXTEND_BLACK,
VIPS_EXTEND_COPY, VIPS_EXTEND_COPY,
VIPS_EXTEND_REPEAT, VIPS_EXTEND_REPEAT,
VIPS_EXTEND_MIRROR, VIPS_EXTEND_MIRROR,
VIPS_EXTEND_WHITE, VIPS_EXTEND_WHITE,
VIPS_EXTEND_BACKGROUND, VIPS_EXTEND_BACKGROUND,
VIPS_EXTEND_LAST VIPS_EXTEND_LAST
} VipsExtend; } VipsExtend;
/**
* VipsDirection:
* @VIPS_DIRECTION_HORIZONTAL: left-right
* @VIPS_DIRECTION_VERTICAL: top-bottom
*
* See vips_flip(), vips_join() and so on.
*
* Operations like vips_flip() need to be told whether to flip left-right o
r
* top-bottom.
*
* See also: vips_flip(), vips_join().
*/
typedef enum { typedef enum {
VIPS_DIRECTION_HORIZONTAL, VIPS_DIRECTION_HORIZONTAL,
VIPS_DIRECTION_VERTICAL, VIPS_DIRECTION_VERTICAL,
VIPS_DIRECTION_LAST VIPS_DIRECTION_LAST
} VipsDirection; } VipsDirection;
/**
* VipsAlign:
* @VIPS_ALIGN_LOW: align low coordinate edge
* @VIPS_ALIGN_CENTRE: align centre
* @VIPS_ALIGN_HIGH: align high coordinate edge
*
* See vips_join() and so on.
*
* Operations like vips_join() need to be told whether to align images on t
he
* low or high coordinate edge, or centre.
*
*
*
* See also: vips_join().
*/
typedef enum { typedef enum {
VIPS_ALIGN_LOW, VIPS_ALIGN_LOW,
VIPS_ALIGN_CENTRE, VIPS_ALIGN_CENTRE,
VIPS_ALIGN_HIGH, VIPS_ALIGN_HIGH,
VIPS_ALIGN_LAST VIPS_ALIGN_LAST
} VipsAlign; } VipsAlign;
/**
* VipsAngle:
* @VIPS_ANGLE_0: no rotate
* @VIPS_ANGLE_90: 90 degrees anti-clockwise
* @VIPS_ANGLE_180: 180 degree rotate
* @VIPS_ANGLE_270: 90 degrees clockwise
*
* See vips_rot() and so on.
*
* Fixed rotate angles.
*
* See also: vips_rot().
*/
typedef enum { typedef enum {
VIPS_ANGLE_0, VIPS_ANGLE_0,
VIPS_ANGLE_90, VIPS_ANGLE_90,
VIPS_ANGLE_180, VIPS_ANGLE_180,
VIPS_ANGLE_270, VIPS_ANGLE_270,
VIPS_ANGLE_LAST VIPS_ANGLE_LAST
} VipsAngle; } VipsAngle;
/**
* VipsCacheStrategy:
* @VIPS_CACHE_RANDOM: expect random access
* @VIPS_CACHE_SEQUENTIAL: expect sequential access
*
* See vips_tilecache() and friends.
*
* Used to hint to caches about the expected access pattern. RANDOM might m
ean
* LRU eviction, SEQUENTIAL might mean top-most eviction.
*
* See also: vips_tilecache().
*/
typedef enum {
VIPS_CACHE_RANDOM,
VIPS_CACHE_SEQUENTIAL,
VIPS_CACHE_LAST
} VipsCacheStrategy;
int vips_copy( VipsImage *in, VipsImage **out, ... ) int vips_copy( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_tilecache( VipsImage *in, VipsImage **out, ... ) int vips_tilecache( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_linecache( VipsImage *in, VipsImage **out, ... ) int vips_linecache( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_sequential( VipsImage *in, VipsImage **out, ... ) int vips_sequential( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_cache( VipsImage *in, VipsImage **out, ... ) int vips_cache( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
skipping to change at line 259 skipping to change at line 168
int vips_recomb( VipsImage *in, VipsImage **out, VipsImage *m, ... ) int vips_recomb( VipsImage *in, VipsImage **out, VipsImage *m, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_ifthenelse( VipsImage *cond, VipsImage *in1, VipsImage *in2, int vips_ifthenelse( VipsImage *cond, VipsImage *in1, VipsImage *in2,
VipsImage **out, ... ) VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_flatten( VipsImage *in, VipsImage **out, ... ) int vips_flatten( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int im_falsecolour( VipsImage *in, VipsImage *out ); int vips_falsecolour( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_gammacorrect( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int im_insertset( VipsImage *main, VipsImage *sub, VipsImage *out, int n, i nt *x, int *y ); int im_insertset( VipsImage *main, VipsImage *sub, VipsImage *out, int n, i nt *x, int *y );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_CONVERSION_H*/ #endif /*VIPS_CONVERSION_H*/
 End of changes. 6 change blocks. 
96 lines changed or deleted 4 lines changed or added


 convolution.h   convolution.h 
skipping to change at line 41 skipping to change at line 41
*/ */
#ifndef IM_CONVOLUTION_H #ifndef IM_CONVOLUTION_H
#define IM_CONVOLUTION_H #define IM_CONVOLUTION_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
typedef enum {
VIPS_PRECISION_INTEGER,
VIPS_PRECISION_FLOAT,
VIPS_PRECISION_APPROXIMATE
} VipsPrecision;
int vips_conv( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
__attribute__((sentinel));
void vips_convolution_operation_init( void );
int im_aconvsep( VipsImage *in, VipsImage *out, int im_aconvsep( VipsImage *in, VipsImage *out,
DOUBLEMASK *mask, int n_layers ); DOUBLEMASK *mask, int n_layers );
int im_aconv( VipsImage *in, VipsImage *out, int im_aconv( VipsImage *in, VipsImage *out,
DOUBLEMASK *mask, int n_layers, int cluster ); DOUBLEMASK *mask, int n_layers, int cluster );
int im_conv( VipsImage *in, VipsImage *out, INTMASK *mask ); int im_conv( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_conv_f( VipsImage *in, VipsImage *out, DOUBLEMASK *mask ); int im_conv_f( VipsImage *in, VipsImage *out, DOUBLEMASK *mask );
int im_convsep( VipsImage *in, VipsImage *out, INTMASK *mask ); int im_convsep( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_convsep_f( VipsImage *in, VipsImage *out, DOUBLEMASK *mask ); int im_convsep_f( VipsImage *in, VipsImage *out, DOUBLEMASK *mask );
int im_compass( VipsImage *in, VipsImage *out, INTMASK *mask ); int im_compass( VipsImage *in, VipsImage *out, INTMASK *mask );
 End of changes. 1 change blocks. 
0 lines changed or deleted 11 lines changed or added


 create.h   create.h 
skipping to change at line 63 skipping to change at line 63
int vips_gaussnoise( VipsImage **out, int width, int height, ... ) int vips_gaussnoise( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_eye( VipsImage **out, int width, int height, ... ) int vips_eye( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_sines( VipsImage **out, int width, int height, ... ) int vips_sines( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_zone( VipsImage **out, int width, int height, ... ) int vips_zone( VipsImage **out, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_identity( VipsImage **out, ... )
__attribute__((sentinel));
int vips_buildlut( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_invertlut( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_tonelut( VipsImage **out, ... )
__attribute__((sentinel));
int im_benchmarkn( VipsImage *in, VipsImage *out, int n ); int im_benchmarkn( VipsImage *in, VipsImage *out, int n );
int im_benchmark2( VipsImage *in, double *out ); int im_benchmark2( VipsImage *in, double *out );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_CREATE_H*/ #endif /*VIPS_CREATE_H*/
 End of changes. 1 change blocks. 
0 lines changed or deleted 9 lines changed or added


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


 error.h   error.h 
skipping to change at line 41 skipping to change at line 41
#ifndef VIPS_ERROR_H #ifndef VIPS_ERROR_H
#define VIPS_ERROR_H #define VIPS_ERROR_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
const char *vips_error_buffer( void ); const char *vips_error_buffer( void );
void vips_error_clear( void ); void vips_error_clear( void );
void vips_error_freeze( void );
void vips_error_thaw( void );
void vips_error( const char *domain, const char *fmt, ... ) void vips_error( const char *domain, const char *fmt, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
void vips_verror( const char *domain, const char *fmt, va_list ap ); void vips_verror( const char *domain, const char *fmt, va_list ap );
void vips_error_system( int err, const char *domain, const char *fmt, ... ) void vips_error_system( int err, const char *domain, const char *fmt, ... )
__attribute__((format(printf, 3, 4))); __attribute__((format(printf, 3, 4)));
void vips_verror_system( int err, const char *domain, void vips_verror_system( int err, const char *domain,
const char *fmt, va_list ap ); const char *fmt, va_list ap );
void vips_error_g( GError **error ); void vips_error_g( GError **error );
void vips_warn( const char *domain, const char *fmt, ... ) void vips_warn( const char *domain, const char *fmt, ... )
__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_info( 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_vinfo( 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( 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_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 );
 End of changes. 3 change blocks. 
2 lines changed or deleted 5 lines changed or added


 foreign.h   foreign.h 
skipping to change at line 121 skipping to change at line 121
VIPS_TYPE_FOREIGN_LOAD, VipsForeignLoadClass )) VIPS_TYPE_FOREIGN_LOAD, VipsForeignLoadClass ))
typedef struct _VipsForeignLoad { typedef struct _VipsForeignLoad {
VipsForeign parent_object; VipsForeign parent_object;
/*< private >*/ /*< private >*/
/* Open to disc (default is to open to memory). /* Open to disc (default is to open to memory).
*/ */
gboolean disc; gboolean disc;
/* Setting this means "I promise to only read sequentially from this /* Type of access upstream wants and the loader must supply.
* image".
*/ */
gboolean sequential; VipsAccess access;
/* Flags for this load operation. /* Flags for this load operation.
*/ */
VipsForeignFlags flags; VipsForeignFlags flags;
/* Deprecated and unused, just here for compat.
*/
gboolean sequential;
/*< public >*/ /*< public >*/
/* The image we generate. This must be set by ->header(). /* The image we generate. This must be set by ->header().
*/ */
VipsImage *out; VipsImage *out;
/* The behind-the-scenes real image we decompress to. This can be a /* The behind-the-scenes real image we decompress to. This can be a
* disc foreign or a memory buffer. This must be set by ->load(). * disc foreign or a memory buffer. This must be set by ->load().
*/ */
VipsImage *real; VipsImage *real;
skipping to change at line 322 skipping to change at line 325
int vips_jpegload_buffer( void *buf, size_t len, VipsImage **out, ... ) int vips_jpegload_buffer( void *buf, size_t len, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_jpegsave( VipsImage *in, const char *filename, ... ) int vips_jpegsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_jpegsave_buffer( VipsImage *in, void **buf, size_t *len, ... ) int vips_jpegsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_jpegsave_mime( VipsImage *in, ... ) int vips_jpegsave_mime( VipsImage *in, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_webpload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel));
int vips_webpload_buffer( void *buf, size_t len, VipsImage **out, ... )
__attribute__((sentinel));
int vips_webpsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel));
int vips_webpsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
__attribute__((sentinel));
int vips_webpsave_mime( VipsImage *in, ... )
__attribute__((sentinel));
/** /**
* VipsForeignTiffCompression: * VipsForeignTiffCompression:
* @VIPS_FOREIGN_TIFF_COMPRESSION_NONE: no compression * @VIPS_FOREIGN_TIFF_COMPRESSION_NONE: no compression
* @VIPS_FOREIGN_TIFF_COMPRESSION_JPEG: jpeg compression * @VIPS_FOREIGN_TIFF_COMPRESSION_JPEG: jpeg compression
* @VIPS_FOREIGN_TIFF_COMPRESSION_DEFLATE: deflate (zip) compression * @VIPS_FOREIGN_TIFF_COMPRESSION_DEFLATE: deflate (zip) compression
* @VIPS_FOREIGN_TIFF_COMPRESSION_PACKBITS: packbits compression * @VIPS_FOREIGN_TIFF_COMPRESSION_PACKBITS: packbits compression
* @VIPS_FOREIGN_TIFF_COMPRESSION_CCITTFAX4: fax4 compression * @VIPS_FOREIGN_TIFF_COMPRESSION_CCITTFAX4: fax4 compression
* @VIPS_FOREIGN_TIFF_COMPRESSION_LZW: LZW compression * @VIPS_FOREIGN_TIFF_COMPRESSION_LZW: LZW compression
* *
* The compression types supported by the tiff writer. * The compression types supported by the tiff writer.
skipping to change at line 405 skipping to change at line 420
int vips_rawsave( VipsImage *in, const char *filename, ... ) int vips_rawsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rawsave_fd( VipsImage *in, int fd, ... ) int vips_rawsave_fd( VipsImage *in, int fd, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_csvload( const char *filename, VipsImage **out, ... ) int vips_csvload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_csvsave( VipsImage *in, const char *filename, ... ) int vips_csvsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_matrixload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel));
int vips_matrixsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel));
int vips_magickload( const char *filename, VipsImage **out, ... ) int vips_magickload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_pngload( const char *filename, VipsImage **out, ... ) int vips_pngload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_pngload_buffer( void *buf, size_t len, VipsImage **out, ... ) int vips_pngload_buffer( void *buf, size_t len, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_pngsave( VipsImage *in, const char *filename, ... ) int vips_pngsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_pngsave_buffer( VipsImage *in, void **buf, size_t *len, ... ) int vips_pngsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
 End of changes. 5 change blocks. 
3 lines changed or deleted 23 lines changed or added


 header.h   header.h 
skipping to change at line 111 skipping to change at line 111
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 ); 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 );
double vips_image_get_scale( const VipsImage *array );
double vips_image_get_offset( const VipsImage *array );
void *vips_image_get_data( VipsImage *image ); void *vips_image_get_data( VipsImage *image );
void vips_image_init_fields( VipsImage *image, void vips_image_init_fields( VipsImage *image,
int xsize, int ysize, int bands, int xsize, int ysize, int bands,
VipsBandFormat format, VipsCoding coding, VipsBandFormat format, VipsCoding coding,
VipsInterpretation interpretation, VipsInterpretation interpretation,
double xres, double yres ); double xres, double yres );
int vips_image_copy_fields_array( VipsImage *out, VipsImage *in[] ); int vips_image_copy_fields_array( VipsImage *out, VipsImage *in[] );
int vips_image_copy_fieldsv( VipsImage *out, VipsImage *in1, ... ) int vips_image_copy_fieldsv( VipsImage *out, VipsImage *in1, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_image_copy_fields( VipsImage *out, VipsImage *in ); int vips_image_copy_fields( VipsImage *out, VipsImage *in );
void vips_image_set( VipsImage *image, const char *field, GValue *value ); void vips_image_set( VipsImage *image, const char *field, GValue *value );
int vips_image_get( VipsImage *image, const char *field, GValue *value_copy int vips_image_get( const VipsImage *image,
); const char *field, GValue *value_copy );
int vips_image_get_as_string( VipsImage *image, const char *field, char **o int vips_image_get_as_string( const VipsImage *image,
ut ); const char *field, char **out );
GType vips_image_get_typeof( VipsImage *image, const char *field ); GType vips_image_get_typeof( const VipsImage *image, const char *field );
gboolean vips_image_remove( VipsImage *image, const char *field ); gboolean vips_image_remove( VipsImage *image, const char *field );
typedef void *(*VipsImageMapFn)( VipsImage *image, typedef void *(*VipsImageMapFn)( VipsImage *image,
const char *field, GValue *value, void *a ); const char *field, GValue *value, void *a );
void *vips_image_map( VipsImage *image, VipsImageMapFn fn, void *a ); void *vips_image_map( VipsImage *image, VipsImageMapFn fn, void *a );
void vips_image_set_area( VipsImage *image, void vips_image_set_area( VipsImage *image,
const char *field, VipsCallbackFn free_fn, void *data ); const char *field, VipsCallbackFn free_fn, void *data );
int vips_image_get_area( VipsImage *image, const char *field, void **data ) int vips_image_get_area( const VipsImage *image,
; const char *field, void **data );
void vips_image_set_blob( VipsImage *image, const char *field, void vips_image_set_blob( VipsImage *image, const char *field,
VipsCallbackFn free_fn, void *data, size_t length ); VipsCallbackFn free_fn, void *data, size_t length );
int vips_image_get_blob( VipsImage *image, const char *field, int vips_image_get_blob( const VipsImage *image, const char *field,
void **data, size_t *length ); void **data, size_t *length );
int vips_image_get_int( VipsImage *image, const char *field, int *out ); int vips_image_get_int( const VipsImage *image, const char *field, int *out );
void vips_image_set_int( VipsImage *image, const char *field, int i ); void vips_image_set_int( VipsImage *image, const char *field, int i );
int vips_image_get_double( VipsImage *image, const char *field, double *out int vips_image_get_double( const VipsImage *image,
); const char *field, double *out );
void vips_image_set_double( VipsImage *image, const char *field, double d ) ; void vips_image_set_double( VipsImage *image, const char *field, double d ) ;
int vips_image_get_string( VipsImage *image, const char *field, char **out int vips_image_get_string( const VipsImage *image,
); const char *field, const char **out );
void vips_image_set_string( VipsImage *image, void vips_image_set_string( VipsImage *image,
const char *field, const char *str ); const char *field, const char *str );
int vips_image_history_printf( VipsImage *image, const char *format, ... ) int vips_image_history_printf( VipsImage *image, const char *format, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
int vips_image_history_args( VipsImage *image, int vips_image_history_args( VipsImage *image,
const char *name, int argc, char *argv[] ); const char *name, int argc, char *argv[] );
const char *vips_image_get_history( VipsImage *image ); const char *vips_image_get_history( VipsImage *image );
#ifdef __cplusplus #ifdef __cplusplus
 End of changes. 7 change blocks. 
13 lines changed or deleted 15 lines changed or added


 image.h   image.h 
skipping to change at line 50 skipping to change at line 50
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
/* If you read MSB first, you get these two values. /* If you read MSB first, you get these two values.
* intel order: byte 0 = b6 * intel order: byte 0 = b6
* SPARC order: byte 0 = 08 * SPARC order: byte 0 = 08
*/ */
#define VIPS_MAGIC_INTEL (0xb6a6f208U) #define VIPS_MAGIC_INTEL (0xb6a6f208U)
#define VIPS_MAGIC_SPARC (0x08f2a6b6U) #define VIPS_MAGIC_SPARC (0x08f2a6b6U)
/**
* VipsDemandStyle:
* @VIPS_DEMAND_STYLE_SMALLTILE: demand in small (typically 64x64 pixel) ti
les
* @VIPS_DEMAND_STYLE_FATSTRIP: demand in fat (typically 10 pixel high) str
ips
* @VIPS_DEMAND_STYLE_THINSTRIP: demand in thin (typically 1 pixel high) st
rips
* @VIPS_DEMAND_STYLE_ANY: demand geometry does not matter
*
* See vips_demand_hint(). Operations can hint to the VIPS image IO system
about
* the kind of demand geometry they prefer.
*
* These demand styles are given below in order of increasing
* restrictiveness. When demanding output from a pipeline,
* vips_image_generate()
* will use the most restrictive of the styles requested by the operations
* in the pipeline.
*
* #VIPS_DEMAND_STYLE_THINSTRIP --- This operation would like to output str
ips
* the width of the image and a few pels high. This is option suitable for
* point-to-point operations, such as those in the arithmetic package.
*
* This option is only efficient for cases where each output pel depends
* upon the pel in the corresponding position in the input image.
*
* #VIPS_DEMAND_STYLE_FATSTRIP --- This operation would like to output stri
ps
* the width of the image and as high as possible. This option is suitable
* for area operations which do not violently transform coordinates, such
* as im_conv().
*
* #VIPS_DEMAND_STYLE_SMALLTILE --- This is the most general demand format.
* Output is demanded in small (around 100x100 pel) sections. This style wo
rks
* reasonably efficiently, even for bizzare operations like 45 degree rotat
e.
*
* #VIPS_DEMAND_STYLE_ANY --- This image is not being demand-read from a di
sc
* file (even indirectly) so any demand style is OK. It's used for things l
ike
* im_black() where the pixels are calculated.
*
* See also: vips_demand_hint().
*/
typedef enum { typedef enum {
VIPS_DEMAND_STYLE_ERROR = -1, VIPS_DEMAND_STYLE_ERROR = -1,
VIPS_DEMAND_STYLE_SMALLTILE, VIPS_DEMAND_STYLE_SMALLTILE,
VIPS_DEMAND_STYLE_FATSTRIP, VIPS_DEMAND_STYLE_FATSTRIP,
VIPS_DEMAND_STYLE_THINSTRIP, VIPS_DEMAND_STYLE_THINSTRIP,
VIPS_DEMAND_STYLE_ANY VIPS_DEMAND_STYLE_ANY
} VipsDemandStyle; } VipsDemandStyle;
/* Types of image descriptor we may have. The type field is advisory only: it /* Types of image descriptor we may have. The type field is advisory only: it
* does not imply that any fields in IMAGE have valid data. * does not imply that any fields in IMAGE have valid data.
skipping to change at line 111 skipping to change at line 73
VIPS_IMAGE_NONE, /* no type set */ VIPS_IMAGE_NONE, /* no type set */
VIPS_IMAGE_SETBUF, /* malloced memory array */ VIPS_IMAGE_SETBUF, /* malloced memory array */
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:
* @VIPS_INTERPRETATION_MULTIBAND: generic many-band image
* @VIPS_INTERPRETATION_B_W: some kind of single-band image
* @VIPS_INTERPRETATION_HISTOGRAM: a 1D image, eg. histogram or lookup tabl
e
* @VIPS_INTERPRETATION_FOURIER: image is in fourier space
* @VIPS_INTERPRETATION_XYZ: the first three bands are CIE XYZ
* @VIPS_INTERPRETATION_LAB: pixels are in CIE Lab space
* @VIPS_INTERPRETATION_CMYK: the first four bands are in CMYK space
* @VIPS_INTERPRETATION_LABQ: implies #VIPS_CODING_LABQ
* @VIPS_INTERPRETATION_RGB: generic RGB space
* @VIPS_INTERPRETATION_CMC: a uniform colourspace based on CMC(1:1)
* @VIPS_INTERPRETATION_LCH: pixels are in CIE LCh space
* @VIPS_INTERPRETATION_LABS: CIE LAB coded as three signed 16-bit values
* @VIPS_INTERPRETATION_sRGB: pixels are sRGB
* @VIPS_INTERPRETATION_scRGB: pixels are scRGB
* @VIPS_INTERPRETATION_YXY: pixels are CIE Yxy
* @VIPS_INTERPRETATION_RGB16: generic 16-bit RGB
* @VIPS_INTERPRETATION_GREY16: generic 16-bit mono
* @VIPS_INTERPRETATION_ARRAY: an array
*
* How the values in an image should be interpreted. For example, a
* three-band float image of type #VIPS_INTERPRETATION_LAB should have its
* pixels interpreted as coordinates in CIE Lab space.
*
* 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.
* Operations do not use these values to decide their action.
*
* The gaps in the numbering are historical and must be maintained. Allocat
e
* 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_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_CMC = 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_FOURIER = 24,
VIPS_INTERPRETATION_RGB16 = 25, VIPS_INTERPRETATION_RGB16 = 25,
VIPS_INTERPRETATION_GREY16 = 26, VIPS_INTERPRETATION_GREY16 = 26,
VIPS_INTERPRETATION_ARRAY = 27, VIPS_INTERPRETATION_MATRIX = 27,
VIPS_INTERPRETATION_scRGB = 28 VIPS_INTERPRETATION_scRGB = 28
} VipsInterpretation; } VipsInterpretation;
/**
* VipsBandFormat:
* @VIPS_FORMAT_NOTSET: invalid setting
* @VIPS_FORMAT_UCHAR: unsigned char format
* @VIPS_FORMAT_CHAR: char format
* @VIPS_FORMAT_USHORT: unsigned short format
* @VIPS_FORMAT_SHORT: short format
* @VIPS_FORMAT_UINT: unsigned int format
* @VIPS_FORMAT_INT: int format
* @VIPS_FORMAT_FLOAT: float format
* @VIPS_FORMAT_COMPLEX: complex (two floats) format
* @VIPS_FORMAT_DOUBLE: double float format
* @VIPS_FORMAT_DPCOMPLEX: double complex (two double) format
*
* The format used for each band element.
*
* Each corresponnds to a native C type for the current machine. For exampl
e,
* #VIPS_FORMAT_USHORT is <type>unsigned short</type>.
*/
typedef enum { typedef enum {
VIPS_FORMAT_NOTSET = -1, VIPS_FORMAT_NOTSET = -1,
VIPS_FORMAT_UCHAR = 0, VIPS_FORMAT_UCHAR = 0,
VIPS_FORMAT_CHAR = 1, VIPS_FORMAT_CHAR = 1,
VIPS_FORMAT_USHORT = 2, VIPS_FORMAT_USHORT = 2,
VIPS_FORMAT_SHORT = 3, VIPS_FORMAT_SHORT = 3,
VIPS_FORMAT_UINT = 4, VIPS_FORMAT_UINT = 4,
VIPS_FORMAT_INT = 5, VIPS_FORMAT_INT = 5,
VIPS_FORMAT_FLOAT = 6, VIPS_FORMAT_FLOAT = 6,
VIPS_FORMAT_COMPLEX = 7, VIPS_FORMAT_COMPLEX = 7,
VIPS_FORMAT_DOUBLE = 8, VIPS_FORMAT_DOUBLE = 8,
VIPS_FORMAT_DPCOMPLEX = 9, VIPS_FORMAT_DPCOMPLEX = 9,
VIPS_FORMAT_LAST = 10 VIPS_FORMAT_LAST = 10
} VipsBandFormat; } VipsBandFormat;
/**
* VipsCoding:
* @VIPS_CODING_NONE: pixels are not coded
* @VIPS_CODING_LABQ: pixels encode 3 float CIELAB values as 4 uchar
* @VIPS_CODING_RAD: pixels encode 3 float RGB as 4 uchar (Radiance coding)
*
* How pixels are coded.
*
* Normally, pixels are uncoded and can be manipulated as you would expect.
* However some file formats code pixels for compression, and sometimes it'
s
* useful to be able to manipulate images in the coded format.
*
* The gaps in the numbering are historical and must be maintained. Allocat
e
* new numbers from the end.
*/
typedef enum { typedef enum {
VIPS_CODING_ERROR = -1, VIPS_CODING_ERROR = -1,
VIPS_CODING_NONE = 0, VIPS_CODING_NONE = 0,
VIPS_CODING_LABQ = 2, VIPS_CODING_LABQ = 2,
VIPS_CODING_RAD = 6, VIPS_CODING_RAD = 6,
VIPS_CODING_LAST = 7 VIPS_CODING_LAST = 7
} VipsCoding; } VipsCoding;
typedef enum {
VIPS_ACCESS_RANDOM,
VIPS_ACCESS_SEQUENTIAL,
VIPS_ACCESS_SEQUENTIAL_UNBUFFERED,
VIPS_ACCESS_LAST
} VipsAccess;
/* Struct we keep a record of execution time in. Passed to eval signal so /* Struct we keep a record of execution time in. Passed to eval signal so
* it can assess progress. * it can assess progress.
*/ */
typedef struct _VipsProgress { typedef struct _VipsProgress {
/*< private >*/ /*< private >*/
struct _VipsImage *im; /* Image we are part of */ struct _VipsImage *im; /* Image we are part of */
/*< public >*/ /*< public >*/
int run; /* Time we have been running */ int run; /* Time we have been running */
int eta; /* Estimated seconds of computation left */ int eta; /* Estimated seconds of computation left */
skipping to change at line 463 skipping to change at line 366
(VIPS_IMAGE_SIZEOF_LINE( I ) * (I)->Ysize) (VIPS_IMAGE_SIZEOF_LINE( I ) * (I)->Ysize)
#define VIPS_IMAGE_N_ELEMENTS( I ) \ #define VIPS_IMAGE_N_ELEMENTS( I ) \
((I)->Bands * (I)->Xsize) ((I)->Bands * (I)->Xsize)
#define VIPS_IMAGE_N_PELS( I ) \ #define VIPS_IMAGE_N_PELS( I ) \
((guint64) (I)->Xsize * (I)->Ysize) ((guint64) (I)->Xsize * (I)->Ysize)
/* If VIPS_DEBUG is defined, add bounds checking. /* If VIPS_DEBUG is defined, add bounds checking.
*/ */
#ifdef VIPS_DEBUG #ifdef VIPS_DEBUG
#define VIPS_IMAGE_ADDR( I, X, Y ) \ #define VIPS_IMAGE_ADDR( I, X, Y ) \
( ((X) >= 0 && (X) < (I)->Xsize && \ ( ((X) >= 0 && (X) < VIPS_IMAGE( I )->Xsize && \
(Y) >= 0 && (Y) < (I)->Ysize) ? \ (Y) >= 0 && (Y) < VIPS_IMAGE( I )->Ysize && \
((I)->data + \ VIPS_IMAGE( I )->data) ? \
(VIPS_IMAGE( I )->data + \
(Y) * VIPS_IMAGE_SIZEOF_LINE( I ) + \ (Y) * VIPS_IMAGE_SIZEOF_LINE( I ) + \
(X) * VIPS_IMAGE_SIZEOF_PEL( I )) : \ (X) * VIPS_IMAGE_SIZEOF_PEL( I )) : \
(fprintf( stderr, \ (fprintf( stderr, \
"VIPS_IMAGE_ADDR: point out of bounds, " \ "VIPS_IMAGE_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 VipsRect left=%d, top=%d, " \ " should have been within VipsRect left=%d, top=%d, " \
"width=%d, height=%d)\n", \ "width=%d, height=%d)\n", \
__FILE__, __LINE__, \ __FILE__, __LINE__, \
(X), (Y), \ (X), (Y), \
0, 0, \ 0, 0, \
(I)->Xsize, \ VIPS_IMAGE( I )->Xsize, \
(I)->Ysize ), abort(), (VipsPel *) NULL) \ VIPS_IMAGE( I )->Ysize ), (VipsPel *) NULL) \
) )
#else /*!VIPS_DEBUG*/ #else /*!VIPS_DEBUG*/
#define VIPS_IMAGE_ADDR( I, X, Y ) \ #define VIPS_IMAGE_ADDR( I, X, Y ) \
((I)->data + \ ((I)->data + \
(Y) * VIPS_IMAGE_SIZEOF_LINE( I ) + \ (Y) * VIPS_IMAGE_SIZEOF_LINE( I ) + \
(X) * VIPS_IMAGE_SIZEOF_PEL( I )) (X) * VIPS_IMAGE_SIZEOF_PEL( I ))
#endif /*VIPS_DEBUG*/ #endif /*VIPS_DEBUG*/
#ifdef VIPS_DEBUG
#define VIPS_MATRIX( I, X, Y ) \
((VIPS_IMAGE( I )->BandFmt == VIPS_FORMAT_DOUBLE && \
VIPS_IMAGE( I )->Bands == 1) ? \
((double *) VIPS_IMAGE_ADDR( I, X, Y )) : \
(fprintf( stderr, "VIPS_MATRIX: not a matrix image\n" ), \
(double *) NULL))
#else /*!VIPS_DEBUG*/
#define VIPS_MATRIX( I, X, Y ) \
((double *) VIPS_IMAGE_ADDR( I, X, Y ))
#endif /*VIPS_DEBUG*/
int vips_image_written( VipsImage *image ); int vips_image_written( VipsImage *image );
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 );
skipping to change at line 509 skipping to change at line 425
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 );
VipsImage *vips_image_new_array( int xsize, int ysize ); VipsImage *vips_image_new_matrix( int width, int height );
VipsImage *vips_image_new_matrixv( int width, int height, ... );
void vips_image_set_delete_on_close( VipsImage *image, void vips_image_set_delete_on_close( VipsImage *image,
gboolean delete_on_close ); gboolean delete_on_close );
VipsImage *vips_image_new_temp_file( const char *format ); VipsImage *vips_image_new_temp_file( const char *format );
int vips_image_write( VipsImage *image, VipsImage *out ); int vips_image_write( VipsImage *image, VipsImage *out );
int vips_image_write_to_file( VipsImage *image, const char *filename ); int vips_image_write_to_file( VipsImage *image, const char *filename );
gboolean vips_image_isMSBfirst( VipsImage *image ); gboolean vips_image_isMSBfirst( VipsImage *image );
gboolean vips_image_isfile( VipsImage *image ); gboolean vips_image_isfile( VipsImage *image );
gboolean vips_image_ispartial( VipsImage *image ); gboolean vips_image_ispartial( VipsImage *image );
 End of changes. 10 change blocks. 
127 lines changed or deleted 28 lines changed or added


 memory.h   memory.h 
skipping to change at line 40 skipping to change at line 40
*/ */
#ifndef VIPS_MEMORY_H #ifndef VIPS_MEMORY_H
#define VIPS_MEMORY_H #define VIPS_MEMORY_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#define VIPS_FREEF( F, S ) \ #define VIPS_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
#define VIPS_FREE( S ) VIPS_FREEF( g_free, (S) ); #define VIPS_FREE( S ) VIPS_FREEF( g_free, (S) );
#define VIPS_SETSTR( S, V ) \ #define VIPS_SETSTR( S, V ) \
G_STMT_START { \ G_STMT_START { \
 End of changes. 1 change blocks. 
2 lines changed or deleted 1 lines changed or added


 morphology.h   morphology.h 
skipping to change at line 50 skipping to change at line 50
int im_dilate( VipsImage *in, VipsImage *out, INTMASK *mask ); int im_dilate( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_erode( VipsImage *in, VipsImage *out, INTMASK *mask ); int im_erode( VipsImage *in, VipsImage *out, INTMASK *mask );
int im_rank( VipsImage *in, VipsImage *out, int width, int height, int inde x ); int im_rank( VipsImage *in, VipsImage *out, int width, int height, int inde x );
int im_rank_image( VipsImage **in, VipsImage *out, int n, int index ); int im_rank_image( VipsImage **in, VipsImage *out, int n, int index );
int im_maxvalue( VipsImage **in, VipsImage *out, int n ); int im_maxvalue( VipsImage **in, VipsImage *out, int n );
int im_cntlines( VipsImage *im, double *nolines, int flag ); int im_cntlines( VipsImage *im, double *nolines, int flag );
int im_zerox( VipsImage *in, VipsImage *out, int sign ); int im_zerox( VipsImage *in, VipsImage *out, int sign );
int im_profile( VipsImage *in, VipsImage *out, int dir );
int im_label_regions( VipsImage *test, VipsImage *mask, int *segments ); int im_label_regions( VipsImage *test, VipsImage *mask, int *segments );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_MORPHOLOGY_H*/ #endif /*IM_MORPHOLOGY_H*/
 End of changes. 1 change blocks. 
1 lines changed or deleted 0 lines changed or added


 object.h   object.h 
skipping to change at line 40 skipping to change at line 40
#ifndef VIPS_OBJECT_H #ifndef VIPS_OBJECT_H
#define VIPS_OBJECT_H #define VIPS_OBJECT_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
/* Handy! /* Handy!
*/ */
#ifdef VIPS_DEBUG
#define VIPS_UNREF( X ) G_STMT_START { \
if( X ) { \
g_assert( G_OBJECT( X )->ref_count > 0 ); \
g_object_unref( X ); \
(X) = 0; \
} \
} G_STMT_END
#else /*!VIPS_DEBUG*/
#define VIPS_UNREF( X ) VIPS_FREEF( g_object_unref, (X) ) #define VIPS_UNREF( X ) VIPS_FREEF( g_object_unref, (X) )
#endif /*VIPS_DEBUG*/
typedef struct _VipsObject VipsObject; typedef struct _VipsObject VipsObject;
typedef struct _VipsObjectClass VipsObjectClass; typedef struct _VipsObjectClass VipsObjectClass;
/* Track extra stuff for arguments to objects /* Track extra stuff for arguments to objects
*/ */
/** /**
* VipsArgumentFlags: * VipsArgumentFlags:
* @VIPS_ARGUMENT_NONE: no flags * @VIPS_ARGUMENT_NONE: no flags
skipping to change at line 449 skipping to change at line 459
* get at them easily via the property system. * get at them easily via the property system.
*/ */
char *nickname; char *nickname;
char *description; char *description;
/* The pre/post/close callbacks are all fire-once. /* The pre/post/close callbacks are all fire-once.
*/ */
gboolean preclose; gboolean preclose;
gboolean close; gboolean close;
gboolean postclose; gboolean postclose;
/* Total memory allocated relative to this object, handy for
* profiling.
*/
size_t local_memory;
}; };
struct _VipsObjectClass { struct _VipsObjectClass {
GObjectClass parent_class; GObjectClass parent_class;
/* 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 );
 End of changes. 3 change blocks. 
0 lines changed or deleted 15 lines changed or added


 operation.h   operation.h 
skipping to change at line 40 skipping to change at line 40
#ifndef VIPS_OPERATION_H #ifndef VIPS_OPERATION_H
#define VIPS_OPERATION_H #define VIPS_OPERATION_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#include <vips/vips.h> #include <vips/vips.h>
/**
* VipsOperationFlags:
* @VIPS_OPERATION_NONE: no flags
* @VIPS_OPERATION_SEQUENTIAL: can work sequentially
* @VIPS_OPERATION_NOCACHE: must not be cached
*
* Flags we associate with an operation.
*
* @VIPS_OPERATION_SEQUENTIAL means that the operation works like vips_copy
:
* it can happily process images top-to-bottom with only small non-local
* references.
*
* @VIPS_OPERATION_NOCACHE means that the operation must not be cached by
* vips.
*/
typedef enum /*< flags >*/ { typedef enum /*< flags >*/ {
VIPS_OPERATION_NONE = 0, VIPS_OPERATION_NONE = 0,
VIPS_OPERATION_SEQUENTIAL = 1, VIPS_OPERATION_SEQUENTIAL = 1,
VIPS_OPERATION_NOCACHE = 2 VIPS_OPERATION_SEQUENTIAL_UNBUFFERED = 2,
VIPS_OPERATION_NOCACHE = 3
} VipsOperationFlags; } VipsOperationFlags;
#define VIPS_TYPE_OPERATION (vips_operation_get_type()) #define VIPS_TYPE_OPERATION (vips_operation_get_type())
#define VIPS_OPERATION( obj ) \ #define VIPS_OPERATION( obj ) \
(G_TYPE_CHECK_INSTANCE_CAST( (obj), \ (G_TYPE_CHECK_INSTANCE_CAST( (obj), \
VIPS_TYPE_OPERATION, VipsOperation )) VIPS_TYPE_OPERATION, VipsOperation ))
#define VIPS_OPERATION_CLASS( klass ) \ #define VIPS_OPERATION_CLASS( klass ) \
(G_TYPE_CHECK_CLASS_CAST( (klass), \ (G_TYPE_CHECK_CLASS_CAST( (klass), \
VIPS_TYPE_OPERATION, VipsOperationClass )) VIPS_TYPE_OPERATION, VipsOperationClass ))
#define VIPS_IS_OPERATION( obj ) \ #define VIPS_IS_OPERATION( obj ) \
 End of changes. 2 change blocks. 
17 lines changed or deleted 2 lines changed or added


 resample.h   resample.h 
skipping to change at line 44 skipping to change at line 44
#ifndef VIPS_RESAMPLE_H #ifndef VIPS_RESAMPLE_H
#define VIPS_RESAMPLE_H #define VIPS_RESAMPLE_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
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_similarity( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_affine( VipsImage *in, VipsImage **out, int vips_affine( VipsImage *in, VipsImage **out,
double a, double b, double c, double d, ... ) double a, double b, double c, double d, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_quadratic( VipsImage *in, VipsImage **out, VipsImage *coeff, ... ) int vips_quadratic( VipsImage *in, VipsImage **out, VipsImage *coeff, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 version.h   version.h 
/* Macros for the header version. /* Macros for the header version.
*/ */
#ifndef VIPS_VERSION_H #ifndef VIPS_VERSION_H
#define VIPS_VERSION_H #define VIPS_VERSION_H
#define VIPS_VERSION "7.34.2" #define VIPS_VERSION "7.36.0"
#define VIPS_VERSION_STRING "7.34.2-Mon Jan 20 18:19:51 MSK 2014" #define VIPS_VERSION_STRING "7.36.0-Mon Jan 20 18:17:31 MSK 2014"
#define VIPS_MAJOR_VERSION (7) #define VIPS_MAJOR_VERSION (7)
#define VIPS_MINOR_VERSION (34) #define VIPS_MINOR_VERSION (36)
#define VIPS_MICRO_VERSION (2) #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 132 skipping to change at line 132
#include <vips/foreign.h> #include <vips/foreign.h>
#include <vips/enumtypes.h> #include <vips/enumtypes.h>
#include <vips/arithmetic.h> #include <vips/arithmetic.h>
#include <vips/relational.h> #include <vips/relational.h>
#include <vips/conversion.h> #include <vips/conversion.h>
#include <vips/convolution.h> #include <vips/convolution.h>
#include <vips/morphology.h> #include <vips/morphology.h>
#include <vips/mosaicing.h> #include <vips/mosaicing.h>
#include <vips/histograms_lut.h> #include <vips/histogram.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/inplace.h> #include <vips/inplace.h>
#include <vips/create.h> #include <vips/create.h>
#include <vips/video.h> #include <vips/video.h>
#include <vips/cimg_funcs.h> #include <vips/cimg_funcs.h>
#ifndef VIPS_DISABLE_VIPS7COMPAT #ifndef VIPS_DISABLE_VIPS7COMPAT
#include <vips/vips7compat.h> #include <vips/vips7compat.h>
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 vips7compat.h   vips7compat.h 
skipping to change at line 199 skipping to change at line 199
*/ */
#define im_error vips_error #define im_error vips_error
#define im_verror vips_verror #define im_verror vips_verror
#define im_verror_system vips_verror_system #define im_verror_system vips_verror_system
#define im_error_system vips_error_system #define im_error_system vips_error_system
#define im_error_buffer vips_error_buffer #define im_error_buffer vips_error_buffer
#define im_error_clear vips_error_clear #define im_error_clear vips_error_clear
#define im_warn vips_warn #define im_warn vips_warn
#define im_vwarn vips_vwarn #define im_vwarn vips_vwarn
#define im_diag vips_diag #define im_diag vips_info
#define im_vdiag vips_vdiag #define im_vdiag vips_vinfo
#define error_exit vips_error_exit #define error_exit vips_error_exit
#define im_get_argv0 vips_get_argv0 #define im_get_argv0 vips_get_argv0
#define im_version_string vips_version_string #define im_version_string vips_version_string
#define im_version vips_version #define im_version vips_version
#define im_init_world vips_init #define im_init_world vips_init
#define im_get_option_group vips_get_option_group #define im_get_option_group vips_get_option_group
#define im_guess_prefix vips_guess_prefix #define im_guess_prefix vips_guess_prefix
#define im_guess_libdir vips_guess_libdir #define im_guess_libdir vips_guess_libdir
#define im__global_lock vips__global_lock #define im__global_lock vips__global_lock
skipping to change at line 473 skipping to change at line 473
#define IM_TYPE_SAVE_STRING VIPS_TYPE_SAVE_STRING #define IM_TYPE_SAVE_STRING VIPS_TYPE_SAVE_STRING
#define IM_TYPE_BLOB VIPS_TYPE_BLOB #define IM_TYPE_BLOB VIPS_TYPE_BLOB
#define IM_TYPE_AREA VIPS_TYPE_AREA #define IM_TYPE_AREA VIPS_TYPE_AREA
#define IM_TYPE_REF_STRING VIPS_TYPE_REF_STRING #define IM_TYPE_REF_STRING VIPS_TYPE_REF_STRING
#define im_header_map_fn VipsImageMapFn #define im_header_map_fn VipsImageMapFn
#define im_header_map vips_image_map #define im_header_map vips_image_map
#define im_header_int vips_image_get_int #define im_header_int vips_image_get_int
#define im_header_double vips_image_get_double #define im_header_double vips_image_get_double
#define im_header_string vips_image_get_string #define im_header_string( IMAGE, FIELD, STRING ) \
vips_image_get_string( IMAGE, FIELD, (const char **) STRING )
#define im_header_as_string vips_image_get_as_string #define im_header_as_string vips_image_get_as_string
#define im_header_get_typeof vips_image_get_typeof #define im_header_get_typeof vips_image_get_typeof
#define im_header_get vips_image_get #define im_header_get vips_image_get
#define im_histlin vips_image_history_printf #define im_histlin vips_image_history_printf
#define im_updatehist vips_image_history_args #define im_updatehist vips_image_history_args
#define im_history_get vips_image_get_history #define im_history_get vips_image_get_history
#define im_save_string_get vips_value_get_save_string #define im_save_string_get vips_value_get_save_string
#define im_save_string_set vips_value_set_save_string #define im_save_string_set vips_value_set_save_string
skipping to change at line 736 skipping to change at line 737
int im_zone( VipsImage *out, int size ); int im_zone( VipsImage *out, int size );
int im_fzone( VipsImage *out, int size ); int im_fzone( VipsImage *out, int size );
int im_feye( VipsImage *out, int im_feye( VipsImage *out,
const int xsize, const int ysize, const double factor ); const int xsize, const int ysize, const double factor );
int im_eye( VipsImage *out, int im_eye( VipsImage *out,
const int xsize, const int ysize, const double factor ); const int xsize, const int ysize, const double factor );
int im_grey( VipsImage *out, const int xsize, const int ysize ); int im_grey( VipsImage *out, const int xsize, const int ysize );
int im_fgrey( VipsImage *out, const int xsize, const int ysize ); int im_fgrey( VipsImage *out, const int xsize, const int ysize );
int im_sines( VipsImage *out, int im_sines( VipsImage *out,
int xsize, int ysize, double horfreq, double verfreq ); int xsize, int ysize, double horfreq, double verfreq );
int im_buildlut( DOUBLEMASK *input, VipsImage *output );
int im_invertlut( DOUBLEMASK *input, VipsImage *output, int lut_size );
int im_identity( VipsImage *lut, int bands );
int im_identity_ushort( VipsImage *lut, int bands, int sz );
int im_tone_build_range( VipsImage *out,
int in_max, int out_max,
double Lb, double Lw, double Ps, double Pm, double Ph,
double S, double M, double H );
int im_tone_build( VipsImage *out,
double Lb, double Lw, double Ps, double Pm, double Ph,
double S, double M, double H );
int im_system( VipsImage *im, const char *cmd, char **out ); int im_system( VipsImage *im, const char *cmd, char **out );
VipsImage *im_system_image( VipsImage *im, VipsImage *im_system_image( VipsImage *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 );
int im_c2amph( VipsImage *in, VipsImage *out ); int im_c2amph( VipsImage *in, VipsImage *out );
int im_c2rect( VipsImage *in, VipsImage *out ); int im_c2rect( VipsImage *in, VipsImage *out );
int im_c2imag( VipsImage *in, VipsImage *out ); int im_c2imag( VipsImage *in, VipsImage *out );
int im_c2real( VipsImage *in, VipsImage *out ); int im_c2real( VipsImage *in, VipsImage *out );
int im_ri2c( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_ri2c( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_rot90( VipsImage *in, VipsImage *out ); int im_rot90( VipsImage *in, VipsImage *out );
int im_rot180( VipsImage *in, VipsImage *out ); int im_rot180( VipsImage *in, VipsImage *out );
int im_rot270( VipsImage *in, VipsImage *out ); int im_rot270( VipsImage *in, VipsImage *out );
int im_ifthenelse( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out ); int im_ifthenelse( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out );
int im_blend( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out ); int im_blend( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out );
DOUBLEMASK *im_vips2mask( VipsImage *in, const char *filename ); DOUBLEMASK *im_vips2mask( VipsImage *in, const char *filename );
INTMASK *im_vips2imask( IMAGE *in, const char *filename );
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_falsecolour( VipsImage *in, VipsImage *out );
int im_gammacorrect( VipsImage *in, VipsImage *out, double exponent );
int im_shrink( VipsImage *in, VipsImage *out, double xshrink, double yshrin k ); int im_shrink( VipsImage *in, VipsImage *out, double xshrink, double yshrin k );
int im_affinei( VipsImage *in, VipsImage *out, int im_affinei( VipsImage *in, VipsImage *out,
VipsInterpolate *interpolate, VipsInterpolate *interpolate,
double a, double b, double c, double d, double dx, double dy, double a, double b, double c, double d, double dx, double dy,
int ox, int oy, int ow, int oh ); int ox, int oy, int ow, int oh );
int im_affinei_all( VipsImage *in, VipsImage *out, VipsInterpolate *interpo late, int im_affinei_all( VipsImage *in, VipsImage *out, VipsInterpolate *interpo late,
double a, double b, double c, double d, double dx, double dy ) ; double a, double b, double c, double d, double dx, double dy ) ;
int im_rightshift_size( VipsImage *in, VipsImage *out, int im_rightshift_size( VipsImage *in, VipsImage *out,
int xshift, int yshift, int band_fmt ); int xshift, int yshift, int band_fmt );
skipping to change at line 846 skipping to change at line 863
int im_lab_morph( VipsImage *in, VipsImage *out, int im_lab_morph( VipsImage *in, VipsImage *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 );
#define im_col_dE00 vips_col_dE00 #define im_col_dE00 vips_col_dE00
int im_quadratic( IMAGE *in, IMAGE *out, IMAGE *coeff ); int im_quadratic( IMAGE *in, IMAGE *out, IMAGE *coeff );
int im_maplut( VipsImage *in, VipsImage *out, VipsImage *lut );
int im_hist( VipsImage *in, VipsImage *out, int bandno );
int im_histgr( VipsImage *in, VipsImage *out, int bandno );
int im_histcum( VipsImage *in, VipsImage *out );
int im_histnorm( VipsImage *in, VipsImage *out );
int im_histeq( VipsImage *in, VipsImage *out );
int im_heq( VipsImage *in, VipsImage *out, int bandno );
int im_histnD( VipsImage *in, VipsImage *out, int bins );
int im_hist_indexed( VipsImage *index, VipsImage *value, VipsImage *out );
int im_histplot( VipsImage *in, VipsImage *out );
int im_project( VipsImage *in, VipsImage *hout, VipsImage *vout );
int im_profile( IMAGE *in, IMAGE *out, int dir );
int im_hsp( VipsImage *in, VipsImage *ref, VipsImage *out );
int im_histspec( VipsImage *in, VipsImage *ref, VipsImage *out );
int im_lhisteq( VipsImage *in, VipsImage *out, int xwin, int ywin );
int im_stdif( VipsImage *in, VipsImage *out,
double a, double m0, double b, double s0, int xwin, int ywin );
int im_mpercent( VipsImage *in, double percent, int *out );
int im_mpercent_hist( VipsImage *hist, double percent, int *out );
int im_ismonotonic( VipsImage *lut, int *out );
int im_tone_analyse( VipsImage *in, VipsImage *out,
double Ps, double Pm, double Ph, double S, double M, double H );
int im_tone_map( VipsImage *in, VipsImage *out, VipsImage *lut );
/* Not really correct, but who uses these.
*/
#define im_lhisteq_raw im_lhisteq
#define im_stdif_raw im_stdif
/* ruby-vips uses this /* ruby-vips uses this
*/ */
#define vips_class_map_concrete_all vips_class_map_all #define vips_class_map_concrete_all vips_class_map_all
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_VIPS7COMPAT_H*/ #endif /*VIPS_VIPS7COMPAT_H*/
 End of changes. 6 change blocks. 
3 lines changed or deleted 50 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/