VImage8.h   VImage8.h 
skipping to change at line 561 skipping to change at line 561
return( bandjoin( this->new_from_image( other ), options ) ) ; return( bandjoin( this->new_from_image( other ), options ) ) ;
} }
std::complex<double> minpos( VOption *options = 0 ) std::complex<double> minpos( VOption *options = 0 )
throw( VError ); throw( VError );
std::complex<double> maxpos( VOption *options = 0 ) std::complex<double> maxpos( VOption *options = 0 )
throw( VError ); throw( VError );
VImage VImage
fliphor( VOption *options = 0 )
throw( VError )
{
return( flip( VIPS_DIRECTION_HORIZONTAL, options ) );
}
VImage
flipver( VOption *options = 0 )
throw( VError )
{
return( flip( VIPS_DIRECTION_VERTICAL, options ) );
}
VImage
rot90( VOption *options = 0 )
throw( VError )
{
return( rot( VIPS_ANGLE_D90, options ) );
}
VImage
rot180( VOption *options = 0 )
throw( VError )
{
return( rot( VIPS_ANGLE_D180, options ) );
}
VImage
rot270( VOption *options = 0 )
throw( VError )
{
return( rot( VIPS_ANGLE_D270, options ) );
}
VImage
dilate( VImage mask, VOption *options = 0 )
throw( VError )
{
return( morph( mask, VIPS_OPERATION_MORPHOLOGY_DILATE,
options ) );
}
VImage
erode( VImage mask, VOption *options = 0 )
throw( VError )
{
return( morph( mask, VIPS_OPERATION_MORPHOLOGY_ERODE,
options ) );
}
VImage
median( int size = 3, VOption *options = 0 )
throw( VError )
{
return( rank( size, size, (size * size) / 2, options ) );
}
VImage
floor( VOption *options = 0 ) floor( VOption *options = 0 )
throw( VError ) throw( VError )
{ {
return( round( VIPS_OPERATION_ROUND_FLOOR, options ) ); return( round( VIPS_OPERATION_ROUND_FLOOR, options ) );
} }
VImage VImage
ceil( VOption *options = 0 ) ceil( VOption *options = 0 )
throw( VError ) throw( VError )
{ {
skipping to change at line 779 skipping to change at line 837
VImage VImage
ifthenelse( double th, double el, VOption *options ) ifthenelse( double th, double el, VOption *options )
throw( VError ) throw( VError )
{ {
return( ifthenelse( to_vector( th ), to_vector( el ), return( ifthenelse( to_vector( th ), to_vector( el ),
options ) ); options ) );
} }
// Operator overloads // Operator overloads
double operator()( int x, int y, int z = 0 ) VImage operator[]( int index )
throw( VError )
{
return( this->extract_band( index ) );
}
std::vector<double> operator()( int x, int y )
{ {
return( this->getpoint( x, y )[z] ); return( this->getpoint( x, y ) );
} }
friend VImage operator+( VImage a, VImage b ) friend VImage operator+( VImage a, VImage b )
throw( VError ) throw( VError )
{ {
return( a.add( b ) ); return( a.add( b ) );
} }
friend VImage operator+( double a, VImage b ) friend VImage operator+( double a, VImage b )
throw( VError ) throw( VError )
 End of changes. 3 change blocks. 
2 lines changed or deleted 66 lines changed or added


 colour.h   colour.h 
skipping to change at line 100 skipping to change at line 100
#define VIPS_E_Z0 (100.0) #define VIPS_E_Z0 (100.0)
#define VIPS_D3250_X0 (105.6590) #define VIPS_D3250_X0 (105.6590)
#define VIPS_D3250_Y0 (100.0) #define VIPS_D3250_Y0 (100.0)
#define VIPS_D3250_Z0 (45.8501) #define VIPS_D3250_Z0 (45.8501)
typedef enum { typedef enum {
VIPS_INTENT_PERCEPTUAL = 0, VIPS_INTENT_PERCEPTUAL = 0,
VIPS_INTENT_RELATIVE, VIPS_INTENT_RELATIVE,
VIPS_INTENT_SATURATION, VIPS_INTENT_SATURATION,
VIPS_INTENT_ABSOLUTE VIPS_INTENT_ABSOLUTE,
VIPS_INTENT_LAST
} VipsIntent; } VipsIntent;
typedef enum { typedef enum {
VIPS_PCS_LAB, VIPS_PCS_LAB,
VIPS_PCS_XYZ, VIPS_PCS_XYZ,
VIPS_PCS_LAST VIPS_PCS_LAST
} VipsPCS; } VipsPCS;
gboolean vips_colourspace_issupported( const VipsImage *image ); gboolean vips_colourspace_issupported( const VipsImage *image );
int vips_colourspace( VipsImage *in, VipsImage **out, int vips_colourspace( VipsImage *in, VipsImage **out,
skipping to change at line 145 skipping to change at line 146
__attribute__((sentinel)); __attribute__((sentinel));
int vips_Lab2XYZ( VipsImage *in, VipsImage **out, ... ) int vips_Lab2XYZ( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_XYZ2Lab( VipsImage *in, VipsImage **out, ... ) int vips_XYZ2Lab( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_XYZ2scRGB( VipsImage *in, VipsImage **out, ... ) int vips_XYZ2scRGB( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_scRGB2sRGB( VipsImage *in, VipsImage **out, ... ) int vips_scRGB2sRGB( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_scRGB2BW( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_sRGB2scRGB( VipsImage *in, VipsImage **out, ... ) int vips_sRGB2scRGB( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_scRGB2XYZ( VipsImage *in, VipsImage **out, ... ) int vips_scRGB2XYZ( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_LCh2CMC( VipsImage *in, VipsImage **out, ... ) int vips_LCh2CMC( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_CMC2LCh( VipsImage *in, VipsImage **out, ... ) int vips_CMC2LCh( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_XYZ2Yxy( VipsImage *in, VipsImage **out, ... ) int vips_XYZ2Yxy( VipsImage *in, VipsImage **out, ... )
skipping to change at line 207 skipping to change at line 210
int vips_col_sRGB2scRGB_8( int r, int g, int b, float *R, float *G, float * B ); int vips_col_sRGB2scRGB_8( int r, int g, int b, float *R, float *G, float * B );
int vips_col_sRGB2scRGB_16( int r, int g, int b, float *R, float *G, float *B ); int vips_col_sRGB2scRGB_16( int r, int g, int b, float *R, float *G, float *B );
int vips_col_scRGB2XYZ( float R, float G, float B, int vips_col_scRGB2XYZ( float R, float G, float B,
float *X, float *Y, float *Z ); float *X, float *Y, float *Z );
int vips_col_XYZ2scRGB( float X, float Y, float Z, int vips_col_XYZ2scRGB( float X, float Y, float Z,
float *R, float *G, float *B ); float *R, float *G, float *B );
int vips_col_scRGB2sRGB_8( float R, float G, float B, int vips_col_scRGB2sRGB_8( float R, float G, float B,
int *r, int *g, int *b, int *r, int *g, int *b, int *og );
int *or_ret );
int vips_col_scRGB2sRGB_16( float R, float G, float B, int vips_col_scRGB2sRGB_16( float R, float G, float B,
int *r, int *g, int *b, int *r, int *g, int *b, int *og );
int *or_ret ); int vips_col_scRGB2BW_16( float R, float G, float B, int *g, int *og );
int vips_col_scRGB2BW_8( float R, float G, float B, int *g, int *og );
float vips_pythagoras( float L1, float a1, float b1, float vips_pythagoras( float L1, float a1, float b1,
float L2, float a2, float b2 ); float L2, float a2, float b2 );
float vips_col_dE00( float vips_col_dE00(
float L1, float a1, float b1, float L2, float a2, float b2 ); float L1, float a1, float b1, float L2, float a2, float b2 );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
 End of changes. 4 change blocks. 
5 lines changed or deleted 8 lines changed or added


 error.h   error.h 
skipping to change at line 56 skipping to change at line 56
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_g_error( GError **error ); void vips_g_error( 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_info_set( gboolean info );
void vips_info( 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_vinfo( 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 );
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 foreign.h   foreign.h 
/* Base type for supported image foreigns. Subclass this to add a new /* Base type for supported image formats. Subclass this to add a new
* foreign. * format.
*/ */
/* /*
This foreign is part of VIPS. This file is part of VIPS.
VIPS is free software; you can redistribute it and/or modify VIPS is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as publishe d by it under the terms of the GNU Lesser General Public License as publishe d by
the Free Software Foundation; either version 2 of the License, or the Free Software Foundation; either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details. GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public Licens e You should have received a copy of the GNU Lesser General Public Licens e
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA 02110-1301 USA
*/ */
/* /*
These foreigns 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_FOREIGN_H #ifndef VIPS_FOREIGN_H
#define VIPS_FOREIGN_H #define VIPS_FOREIGN_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
skipping to change at line 143 skipping to change at line 143
*/ */
gboolean sequential; 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 file or a memory buffer. This must be set by ->load().
*/ */
VipsImage *real; VipsImage *real;
/* Set this to tag the operation as nocache. /* Set this to tag the operation as nocache.
*/ */
gboolean nocache; gboolean nocache;
} VipsForeignLoad; } VipsForeignLoad;
typedef struct _VipsForeignLoadClass { typedef struct _VipsForeignLoadClass {
VipsForeignClass parent_class; VipsForeignClass parent_class;
skipping to change at line 221 skipping to change at line 221
int (*load)( VipsForeignLoad *load ); int (*load)( VipsForeignLoad *load );
} VipsForeignLoadClass; } VipsForeignLoadClass;
GType vips_foreign_load_get_type( void ); GType vips_foreign_load_get_type( void );
const char *vips_foreign_find_load( const char *filename ); const char *vips_foreign_find_load( const char *filename );
const char *vips_foreign_find_load_buffer( void *data, size_t size ); const char *vips_foreign_find_load_buffer( void *data, size_t size );
VipsForeignFlags vips_foreign_flags( const char *loader, const char *filena me ); VipsForeignFlags vips_foreign_flags( const char *loader, const char *filena me );
gboolean vips_foreign_is_a( const char *loader, const char *filename ); gboolean vips_foreign_is_a( const char *loader, const char *filename );
gboolean vips_foreign_is_a_buffer( const char *loader, void *data, size_t s ize );
#define VIPS_TYPE_FOREIGN_SAVE (vips_foreign_save_get_type()) #define VIPS_TYPE_FOREIGN_SAVE (vips_foreign_save_get_type())
#define VIPS_FOREIGN_SAVE( obj ) \ #define VIPS_FOREIGN_SAVE( obj ) \
(G_TYPE_CHECK_INSTANCE_CAST( (obj), \ (G_TYPE_CHECK_INSTANCE_CAST( (obj), \
VIPS_TYPE_FOREIGN_SAVE, VipsForeignSave )) VIPS_TYPE_FOREIGN_SAVE, VipsForeignSave ))
#define VIPS_FOREIGN_SAVE_CLASS( klass ) \ #define VIPS_FOREIGN_SAVE_CLASS( klass ) \
(G_TYPE_CHECK_CLASS_CAST( (klass), \ (G_TYPE_CHECK_CLASS_CAST( (klass), \
VIPS_TYPE_FOREIGN_SAVE, VipsForeignSaveClass)) VIPS_TYPE_FOREIGN_SAVE, VipsForeignSaveClass))
#define VIPS_IS_FOREIGN_SAVE( obj ) \ #define VIPS_IS_FOREIGN_SAVE( obj ) \
(G_TYPE_CHECK_INSTANCE_TYPE( (obj), VIPS_TYPE_FOREIGN_SAVE )) (G_TYPE_CHECK_INSTANCE_TYPE( (obj), VIPS_TYPE_FOREIGN_SAVE ))
skipping to change at line 242 skipping to change at line 243
(G_TYPE_CHECK_CLASS_TYPE( (klass), VIPS_TYPE_FOREIGN_SAVE )) (G_TYPE_CHECK_CLASS_TYPE( (klass), VIPS_TYPE_FOREIGN_SAVE ))
#define VIPS_FOREIGN_SAVE_GET_CLASS( obj ) \ #define VIPS_FOREIGN_SAVE_GET_CLASS( obj ) \
(G_TYPE_INSTANCE_GET_CLASS( (obj), \ (G_TYPE_INSTANCE_GET_CLASS( (obj), \
VIPS_TYPE_FOREIGN_SAVE, VipsForeignSaveClass )) VIPS_TYPE_FOREIGN_SAVE, VipsForeignSaveClass ))
/** /**
* VipsSaveable: * VipsSaveable:
* @VIPS_SAVEABLE_MONO: 1 band (eg. CSV) * @VIPS_SAVEABLE_MONO: 1 band (eg. CSV)
* @VIPS_SAVEABLE_RGB: 1 or 3 bands (eg. PPM) * @VIPS_SAVEABLE_RGB: 1 or 3 bands (eg. PPM)
* @VIPS_SAVEABLE_RGBA: 1, 2, 3 or 4 bands (eg. PNG) * @VIPS_SAVEABLE_RGBA: 1, 2, 3 or 4 bands (eg. PNG)
* @VIPS_SAVEABLE_RGBA_ONLY: 3 or 4 bands (eg. WEBP)
* @VIPS_SAVEABLE_RGB_CMYK: 1, 3 or 4 bands (eg. JPEG) * @VIPS_SAVEABLE_RGB_CMYK: 1, 3 or 4 bands (eg. JPEG)
* @VIPS_SAVEABLE_ANY: any number of bands (eg. TIFF) * @VIPS_SAVEABLE_ANY: any number of bands (eg. TIFF)
* *
* See also: #VipsForeignSave. * See also: #VipsForeignSave.
*/ */
typedef enum { typedef enum {
VIPS_SAVEABLE_MONO, VIPS_SAVEABLE_MONO,
VIPS_SAVEABLE_RGB, VIPS_SAVEABLE_RGB,
VIPS_SAVEABLE_RGBA, VIPS_SAVEABLE_RGBA,
VIPS_SAVEABLE_RGBA_ONLY,
VIPS_SAVEABLE_RGB_CMYK, VIPS_SAVEABLE_RGB_CMYK,
VIPS_SAVEABLE_ANY, VIPS_SAVEABLE_ANY,
VIPS_SAVEABLE_LAST VIPS_SAVEABLE_LAST
} VipsSaveable; } VipsSaveable;
typedef struct _VipsForeignSave { typedef struct _VipsForeignSave {
VipsForeign parent_object; VipsForeign parent_object;
/* Don't attach metadata. /* Don't attach metadata.
*/ */
skipping to change at line 317 skipping to change at line 320
* Default NONE TRUE, RAD and LABQ FALSE. * Default NONE TRUE, RAD and LABQ FALSE.
*/ */
gboolean coding[VIPS_CODING_LAST]; gboolean coding[VIPS_CODING_LAST];
} VipsForeignSaveClass; } VipsForeignSaveClass;
GType vips_foreign_save_get_type( void ); GType vips_foreign_save_get_type( void );
const char *vips_foreign_find_save( const char *filename ); const char *vips_foreign_find_save( const char *filename );
const char *vips_foreign_find_save_buffer( const char *suffix ); const char *vips_foreign_find_save_buffer( const char *suffix );
int vips_vipsload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel));
int vips_vipssave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel));
int vips_openslideload( const char *filename, VipsImage **out, ... ) int vips_openslideload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_jpegload( const char *filename, VipsImage **out, ... ) int vips_jpegload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
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));
skipping to change at line 438 skipping to change at line 446
int vips_matrixload( const char *filename, VipsImage **out, ... ) int vips_matrixload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_matrixsave( VipsImage *in, const char *filename, ... ) int vips_matrixsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_matrixprint( VipsImage *in, ... ) int vips_matrixprint( VipsImage *in, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_magickload( const char *filename, VipsImage **out, ... ) int vips_magickload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_magickload_buffer( void *buf, size_t len, VipsImage **out, ... )
__attribute__((sentinel));
/** /**
* VipsForeignPngFilter: * VipsForeignPngFilter:
* @VIPS_FOREIGN_PNG_FILTER_NONE: no filtering * @VIPS_FOREIGN_PNG_FILTER_NONE: no filtering
* @VIPS_FOREIGN_PNG_FILTER_SUB: difference to the left * @VIPS_FOREIGN_PNG_FILTER_SUB: difference to the left
* @VIPS_FOREIGN_PNG_FILTER_UP: difference up * @VIPS_FOREIGN_PNG_FILTER_UP: difference up
* @VIPS_FOREIGN_PNG_FILTER_AVG: average of left and up * @VIPS_FOREIGN_PNG_FILTER_AVG: average of left and up
* @VIPS_FOREIGN_PNG_FILTER_PAETH: pick best neighbor predictor automatical ly * @VIPS_FOREIGN_PNG_FILTER_PAETH: pick best neighbor predictor automatical ly
* @VIPS_FOREIGN_PNG_FILTER_ALL: adaptive * @VIPS_FOREIGN_PNG_FILTER_ALL: adaptive
* *
 End of changes. 9 change blocks. 
5 lines changed or deleted 15 lines changed or added


 gate.h   gate.h 
skipping to change at line 66 skipping to change at line 66
} G_STMT_END } G_STMT_END
#define VIPS_GATE_FREE( SIZE ) \ #define VIPS_GATE_FREE( SIZE ) \
G_STMT_START { \ G_STMT_START { \
if( vips__thread_profile ) \ if( vips__thread_profile ) \
vips__thread_malloc_free( -((gint64) (SIZE)) ); \ vips__thread_malloc_free( -((gint64) (SIZE)) ); \
} G_STMT_END } G_STMT_END
extern gboolean vips__thread_profile; extern gboolean vips__thread_profile;
void vips_profile_set( gboolean profile );
void vips__thread_profile_attach( const char *thread_name ); void vips__thread_profile_attach( const char *thread_name );
void vips__thread_profile_detach( void ); void vips__thread_profile_detach( void );
void vips__thread_profile_stop( void ); void vips__thread_profile_stop( void );
void vips__thread_gate_start( const char *gate_name ); void vips__thread_gate_start( const char *gate_name );
void vips__thread_gate_stop( const char *gate_name ); void vips__thread_gate_stop( const char *gate_name );
void vips__thread_malloc_free( gint64 size ); void vips__thread_malloc_free( gint64 size );
#endif /*VIPS_GATE_H*/ #endif /*VIPS_GATE_H*/
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 image.h   image.h 
skipping to change at line 92 skipping to change at line 92
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_MATRIX = 27, VIPS_INTERPRETATION_MATRIX = 27,
VIPS_INTERPRETATION_scRGB = 28 VIPS_INTERPRETATION_scRGB = 28,
VIPS_INTERPRETATION_LAST = 29
} VipsInterpretation; } VipsInterpretation;
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,
skipping to change at line 353 skipping to change at line 354
*/ */
void (*minimise)( VipsImage *image ); void (*minimise)( VipsImage *image );
} VipsImageClass; } VipsImageClass;
GType vips_image_get_type( void ); GType vips_image_get_type( void );
/* Has to be guint64 and not size_t/off_t since we have to be able to addre ss /* Has to be guint64 and not size_t/off_t since we have to be able to addre ss
* huge images on platforms with 32-bit files. * huge images on platforms with 32-bit files.
*/ */
extern const guint64 vips__image_sizeof_bandformat[];
/* Pixel address calculation macros. /* Pixel address calculation macros.
*/ */
#define VIPS_IMAGE_SIZEOF_ELEMENT( I ) \ #define VIPS_IMAGE_SIZEOF_ELEMENT( I ) \
(vips__image_sizeof_bandformat[(I)->BandFmt]) (vips_format_sizeof((I)->BandFmt))
#define VIPS_IMAGE_SIZEOF_PEL( I ) \ #define VIPS_IMAGE_SIZEOF_PEL( I ) \
(VIPS_IMAGE_SIZEOF_ELEMENT( I ) * (I)->Bands) (VIPS_IMAGE_SIZEOF_ELEMENT( I ) * (I)->Bands)
#define VIPS_IMAGE_SIZEOF_LINE( I ) \ #define VIPS_IMAGE_SIZEOF_LINE( I ) \
(VIPS_IMAGE_SIZEOF_PEL( I ) * (I)->Xsize) (VIPS_IMAGE_SIZEOF_PEL( I ) * (I)->Xsize)
#define VIPS_IMAGE_SIZEOF_IMAGE( I ) \ #define VIPS_IMAGE_SIZEOF_IMAGE( I ) \
(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)
skipping to change at line 411 skipping to change at line 410
((VIPS_IMAGE( I )->BandFmt == VIPS_FORMAT_DOUBLE && \ ((VIPS_IMAGE( I )->BandFmt == VIPS_FORMAT_DOUBLE && \
VIPS_IMAGE( I )->Bands == 1) ? \ VIPS_IMAGE( I )->Bands == 1) ? \
((double *) VIPS_IMAGE_ADDR( I, X, Y )) : \ ((double *) VIPS_IMAGE_ADDR( I, X, Y )) : \
(fprintf( stderr, "VIPS_MATRIX: not a matrix image\n" ), \ (fprintf( stderr, "VIPS_MATRIX: not a matrix image\n" ), \
(double *) NULL)) (double *) NULL))
#else /*!VIPS_DEBUG*/ #else /*!VIPS_DEBUG*/
#define VIPS_MATRIX( I, X, Y ) \ #define VIPS_MATRIX( I, X, Y ) \
((double *) VIPS_IMAGE_ADDR( I, X, Y )) ((double *) VIPS_IMAGE_ADDR( I, X, Y ))
#endif /*VIPS_DEBUG*/ #endif /*VIPS_DEBUG*/
void vips_progress_set( gboolean progress );
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_set_progress( VipsImage *image, gboolean progress ); void vips_image_set_progress( VipsImage *image, gboolean progress );
char *vips_filename_get_filename( const char *vips_filename ); char *vips_filename_get_filename( const char *vips_filename );
char *vips_filename_get_options( const char *vips_filename ); char *vips_filename_get_options( const char *vips_filename );
VipsImage *vips_image_new( void ); VipsImage *vips_image_new( void );
skipping to change at line 459 skipping to change at line 460
int vips_image_decode_predict( VipsImage *in, int vips_image_decode_predict( VipsImage *in,
int *bands, VipsBandFormat *format ); int *bands, VipsBandFormat *format );
int vips_image_decode( VipsImage *in, VipsImage **out ); int vips_image_decode( VipsImage *in, VipsImage **out );
int vips_image_encode( VipsImage *in, VipsImage **out, VipsCoding coding ); int vips_image_encode( VipsImage *in, VipsImage **out, VipsCoding coding );
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 );
VipsImage *vips_image_copy_memory( VipsImage *image );
int vips_image_wio_input( VipsImage *image ); int vips_image_wio_input( VipsImage *image );
int vips_image_pio_input( VipsImage *image ); int vips_image_pio_input( VipsImage *image );
int vips_image_pio_output( VipsImage *image ); int vips_image_pio_output( VipsImage *image );
int vips_image_inplace( VipsImage *image ); int vips_image_inplace( VipsImage *image );
int vips_image_write_prepare( VipsImage *image ); int vips_image_write_prepare( VipsImage *image );
int vips_image_write_line( VipsImage *image, int ypos, VipsPel *linebuffer ); int vips_image_write_line( VipsImage *image, int ypos, VipsPel *linebuffer );
gboolean vips_band_format_isint( VipsBandFormat format ); gboolean vips_band_format_isint( VipsBandFormat format );
gboolean vips_band_format_isuint( VipsBandFormat format ); gboolean vips_band_format_isuint( VipsBandFormat format );
 End of changes. 5 change blocks. 
4 lines changed or deleted 6 lines changed or added


 region.h   region.h 
skipping to change at line 117 skipping to change at line 117
int vips_region_region( VipsRegion *reg, VipsRegion *dest, int vips_region_region( VipsRegion *reg, VipsRegion *dest,
VipsRect *r, int x, int y ); VipsRect *r, int x, int y );
int vips_region_equalsregion( VipsRegion *reg1, VipsRegion *reg2 ); int vips_region_equalsregion( VipsRegion *reg1, VipsRegion *reg2 );
int vips_region_position( VipsRegion *reg, int x, int y ); int vips_region_position( VipsRegion *reg, int x, int y );
void vips_region_paint( VipsRegion *reg, VipsRect *r, int value ); void vips_region_paint( VipsRegion *reg, VipsRect *r, int value );
void vips_region_paint_pel( VipsRegion *reg, VipsRect *r, VipsPel *ink ); void vips_region_paint_pel( VipsRegion *reg, VipsRect *r, VipsPel *ink );
void vips_region_black( VipsRegion *reg ); void vips_region_black( VipsRegion *reg );
void vips_region_copy( VipsRegion *reg, VipsRegion *dest, void vips_region_copy( VipsRegion *reg, VipsRegion *dest,
VipsRect *r, int x, int y ); VipsRect *r, int x, int y );
int vips_region_shrink( VipsRegion *from, VipsRegion *to, VipsRect *target );
int vips_region_prepare( VipsRegion *reg, VipsRect *r ); int vips_region_prepare( VipsRegion *reg, VipsRect *r );
int vips_region_prepare_to( VipsRegion *reg, int vips_region_prepare_to( VipsRegion *reg,
VipsRegion *dest, VipsRect *r, int x, int y ); VipsRegion *dest, VipsRect *r, int x, int y );
int vips_region_prepare_many( VipsRegion **reg, VipsRect *r ); int vips_region_prepare_many( VipsRegion **reg, VipsRect *r );
void vips_region_invalidate( VipsRegion *reg ); void vips_region_invalidate( VipsRegion *reg );
void vips_region_dump_all( void ); void vips_region_dump_all( void );
 End of changes. 1 change blocks. 
0 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.42.3" #define VIPS_VERSION "8.0.0"
#define VIPS_VERSION_STRING "7.42.3-Sat Feb 14 00:17:20 MSK 2015" #define VIPS_VERSION_STRING "8.0.0-Sat Apr 25 00:09:24 MSK 2015"
#define VIPS_MAJOR_VERSION (7) #define VIPS_MAJOR_VERSION (8)
#define VIPS_MINOR_VERSION (42) #define VIPS_MINOR_VERSION (0)
#define VIPS_MICRO_VERSION (3) #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 ""
#define VIPS_ENABLE_DEPRECATED 1 #define VIPS_ENABLE_DEPRECATED 1
#endif /*VIPS_VERSION_H*/ #endif /*VIPS_VERSION_H*/
 End of changes. 1 change blocks. 
5 lines changed or deleted 5 lines changed or added


 vips-operators.h   vips-operators.h 
skipping to change at line 229 skipping to change at line 229
static VImage webpload_buffer( VipsBlob * buffer , VOption *options = 0 ) static VImage webpload_buffer( VipsBlob * buffer , VOption *options = 0 )
throw( VError ); throw( VError );
static VImage tiffload( char * filename , VOption *options = 0 ) static VImage tiffload( char * filename , VOption *options = 0 )
throw( VError ); throw( VError );
static VImage tiffload_buffer( VipsBlob * buffer , VOption *options = 0 ) static VImage tiffload_buffer( VipsBlob * buffer , VOption *options = 0 )
throw( VError ); throw( VError );
static VImage openslideload( char * filename , VOption *options = 0 ) static VImage openslideload( char * filename , VOption *options = 0 )
throw( VError ); throw( VError );
static VImage magickload( char * filename , VOption *options = 0 ) static VImage magickload( char * filename , VOption *options = 0 )
throw( VError ); throw( VError );
static VImage magickload_buffer( VipsBlob * buffer , VOption *options = 0 )
throw( VError );
static VImage fitsload( char * filename , VOption *options = 0 ) static VImage fitsload( char * filename , VOption *options = 0 )
throw( VError ); throw( VError );
static VImage openexrload( char * filename , VOption *options = 0 ) static VImage openexrload( char * filename , VOption *options = 0 )
throw( VError ); throw( VError );
void radsave( char * filename , VOption *options = 0 ) void radsave( char * filename , VOption *options = 0 )
throw( VError ); throw( VError );
void ppmsave( char * filename , VOption *options = 0 ) void ppmsave( char * filename , VOption *options = 0 )
throw( VError ); throw( VError );
void csvsave( char * filename , VOption *options = 0 ) void csvsave( char * filename , VOption *options = 0 )
throw( VError ); throw( VError );
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 vips.h   vips.h 
skipping to change at line 136 skipping to change at line 136
#include <vips/interpolate.h> #include <vips/interpolate.h>
#include <vips/semaphore.h> #include <vips/semaphore.h>
#include <vips/threadpool.h> #include <vips/threadpool.h>
#include <vips/header.h> #include <vips/header.h>
#include <vips/operation.h> #include <vips/operation.h>
#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/conversion.h> #include <vips/conversion.h>
#include <vips/convolution.h> #include <vips/convolution.h>
#include <vips/morphology.h> #include <vips/morphology.h>
#include <vips/mosaicing.h> #include <vips/mosaicing.h>
#include <vips/histogram.h> #include <vips/histogram.h>
#include <vips/freqfilt.h> #include <vips/freqfilt.h>
#include <vips/resample.h> #include <vips/resample.h>
#include <vips/colour.h> #include <vips/colour.h>
#include <vips/draw.h> #include <vips/draw.h>
#include <vips/create.h> #include <vips/create.h>
 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 185 skipping to change at line 185
#define IM_IMAGE_SIZEOF_LINE VIPS_IMAGE_SIZEOF_LINE #define IM_IMAGE_SIZEOF_LINE VIPS_IMAGE_SIZEOF_LINE
#define IM_REGION_LSKIP VIPS_REGION_LSKIP #define IM_REGION_LSKIP VIPS_REGION_LSKIP
#define IM_REGION_ADDR VIPS_REGION_ADDR #define IM_REGION_ADDR VIPS_REGION_ADDR
#define IM_REGION_ADDR_TOPLEFT VIPS_REGION_ADDR_TOPLEFT #define IM_REGION_ADDR_TOPLEFT VIPS_REGION_ADDR_TOPLEFT
#define IM_REGION_N_ELEMENTS VIPS_REGION_N_ELEMENTS #define IM_REGION_N_ELEMENTS VIPS_REGION_N_ELEMENTS
#define IM_REGION_SIZEOF_LINE VIPS_REGION_SIZEOF_LINE #define IM_REGION_SIZEOF_LINE VIPS_REGION_SIZEOF_LINE
/* Renamed externs. /* Renamed externs.
*/ */
extern const guint64 vips__image_sizeof_bandformat[];
#define im__sizeof_bandfmt vips__image_sizeof_bandformat #define im__sizeof_bandfmt vips__image_sizeof_bandformat
/* Renamed functions. /* Renamed functions.
*/ */
#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
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 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/