Improve symbol visibility (#2688)
* Improve symbol visibility * Decorate required internal symbols with VIPS_API * Remove a couple of stray header decls * Incorporate review comment - Ensure symbol visibility is also set on static libraries. - Prefer to use `cc.has_function_attribute('visibility:hidden')`. * Don't export internal deprecated symbols * Move deprecated symbols to vips7compat.h * `IM_FORMAT_H` -> `VIPS_FORMAT_H` * Move `vips_window_ref` compat stub to `vips7compat.c` * Disable deprecation warnings internally * `vips_image_get_kill` -> `vips_image_iskilled` * Ensure API compatibility * Add missing include directives * Move `vips__init` decl to vips7compat * Move `vips__get_sizeof_vipsobject` to vips7compat * Fix introspection build * Fix 2 introspection warnings * Ensure compatibility with vipsdisp /usr/bin/ld: tilesource.o: in function `tile_source_new_from_source': vipsdisp/tilesource.c:1627: undefined reference to `vips__region_no_ownership'
This commit is contained in:
parent
0c3092fa94
commit
07edfe37b1
@ -36,7 +36,9 @@
|
||||
|
||||
/* Define VIPS_CPLUSPLUS_EXPORTS to build a DLL using MSVC.
|
||||
*/
|
||||
#ifdef _MSC_VER
|
||||
#ifdef _VIPS_PUBLIC
|
||||
# define VIPS_CPLUSPLUS_API _VIPS_PUBLIC
|
||||
#elif defined(_MSC_VER)
|
||||
# ifdef VIPS_CPLUSPLUS_EXPORTS
|
||||
# define VIPS_CPLUSPLUS_API __declspec(dllexport)
|
||||
# else
|
||||
|
@ -9,6 +9,7 @@ libvips_cpp_lib = library('vips-cpp',
|
||||
dependencies: libvips_dep,
|
||||
include_directories: libvips_cpp_includedir,
|
||||
version: library_version,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
install: true,
|
||||
)
|
||||
|
||||
|
@ -55,6 +55,7 @@ arithmetic_lib = static_library('arithmetic',
|
||||
arithmetic_sources,
|
||||
arithmetic_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += arithmetic_lib
|
||||
|
@ -46,6 +46,7 @@ colour_lib = static_library('colour',
|
||||
colour_sources,
|
||||
colour_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += colour_lib
|
||||
|
@ -54,6 +54,7 @@ conversion_lib = static_library('conversion',
|
||||
conversion_headers,
|
||||
dependencies: libvips_deps,
|
||||
c_args: [ '-Wno-unknown-pragmas' ],
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += conversion_lib
|
||||
|
@ -28,6 +28,7 @@ convolution_lib = static_library('convolution',
|
||||
convolution_sources,
|
||||
convolution_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += convolution_lib
|
||||
|
@ -41,6 +41,7 @@ create_lib = static_library('create',
|
||||
create_sources,
|
||||
create_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += create_lib
|
||||
|
@ -95,6 +95,8 @@ libvips_sources += deprecated_sources
|
||||
deprecated_lib = static_library('deprecated',
|
||||
deprecated_sources,
|
||||
dependencies: libvips_deps,
|
||||
c_args: [ '-DVIPS_DISABLE_DEPRECATION_WARNINGS' ],
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += deprecated_lib
|
||||
|
@ -5765,3 +5765,19 @@ vips__ink_to_vector( const char *domain, VipsImage *im, VipsPel *ink, int *n )
|
||||
return( result );
|
||||
}
|
||||
|
||||
/* Old API. Just a compat stub now.
|
||||
*/
|
||||
VipsWindow *
|
||||
vips_window_ref( VipsImage *im, int top, int height )
|
||||
{
|
||||
return( NULL );
|
||||
}
|
||||
|
||||
/* Deprecated.
|
||||
*/
|
||||
size_t
|
||||
vips__get_sizeof_vipsobject( void )
|
||||
{
|
||||
return( sizeof( VipsObject ) );
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,7 @@ draw_lib = static_library('draw',
|
||||
draw_sources,
|
||||
draw_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += draw_lib
|
||||
|
@ -127,6 +127,7 @@ foreign_lib = static_library('foreign',
|
||||
foreign_sources,
|
||||
foreign_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += foreign_lib
|
||||
|
@ -17,6 +17,7 @@ freqfilt_lib = static_library('freqfilt',
|
||||
freqfilt_sources,
|
||||
freqfilt_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += freqfilt_lib
|
||||
|
@ -26,6 +26,7 @@ histogram_lib = static_library('histogram',
|
||||
histogram_sources,
|
||||
histogram_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += histogram_lib
|
||||
|
@ -63,18 +63,27 @@ typedef struct {
|
||||
*(channel select) */
|
||||
} IMAGE_BOX;
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_extract( IMAGE *, IMAGE *, IMAGE_BOX * );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_measure( IMAGE *im, IMAGE_BOX *box, int h, int v,
|
||||
int *sel, int nsel, const char *name );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
gboolean im_isuint( IMAGE *im );
|
||||
VIPS_DEPRECATED
|
||||
gboolean im_isint( IMAGE *im );
|
||||
VIPS_DEPRECATED
|
||||
gboolean im_isfloat( IMAGE *im );
|
||||
VIPS_DEPRECATED
|
||||
gboolean im_isscalar( IMAGE *im );
|
||||
VIPS_DEPRECATED
|
||||
gboolean im_iscomplex( IMAGE *im );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_c2ps( IMAGE *in, IMAGE *out );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_clip( IMAGE *in, IMAGE *out );
|
||||
|
||||
#define MASK_IDEAL_HIGHPASS IM_MASK_IDEAL_HIGHPASS
|
||||
@ -111,7 +120,9 @@ typedef enum {
|
||||
IM_ARCH_MSB_FIRST
|
||||
} im_arch_type;
|
||||
|
||||
VIPS_DEPRECATED
|
||||
gboolean im_isnative( im_arch_type arch );
|
||||
VIPS_DEPRECATED
|
||||
int im_copy_from( IMAGE *in, IMAGE *out, im_arch_type architecture );
|
||||
|
||||
/* Backwards compatibility macros.
|
||||
@ -121,16 +132,22 @@ int im_copy_from( IMAGE *in, IMAGE *out, im_arch_type architecture );
|
||||
|
||||
/* Deprecated API.
|
||||
*/
|
||||
VIPS_DEPRECATED_FOR(vips_error)
|
||||
void im_errormsg( const char *fmt, ... )
|
||||
__attribute__((format(printf, 1, 2)));
|
||||
VIPS_DEPRECATED_FOR(vips_verror)
|
||||
void im_verrormsg( const char *fmt, va_list ap );
|
||||
VIPS_DEPRECATED_FOR(vips_error_system)
|
||||
void im_errormsg_system( int err, const char *fmt, ... )
|
||||
__attribute__((format(printf, 2, 3)));
|
||||
VIPS_DEPRECATED_FOR(g_info)
|
||||
void im_diagnostics( const char *fmt, ... )
|
||||
__attribute__((format(printf, 1, 2)));
|
||||
VIPS_DEPRECATED_FOR(g_warning)
|
||||
void im_warning( const char *fmt, ... )
|
||||
__attribute__((format(printf, 1, 2)));
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_iterate( VipsImage *im,
|
||||
VipsStartFn start, im_generate_fn generate, VipsStopFn stop,
|
||||
void *a, void *b
|
||||
@ -138,45 +155,67 @@ int im_iterate( VipsImage *im,
|
||||
|
||||
/* Async rendering.
|
||||
*/
|
||||
VIPS_DEPRECATED_FOR(vips_sink_screen)
|
||||
int im_render_priority( VipsImage *in, VipsImage *out, VipsImage *mask,
|
||||
int width, int height, int max,
|
||||
int priority,
|
||||
void (*notify)( VipsImage *, VipsRect *, void * ), void *client );
|
||||
VIPS_DEPRECATED_FOR(vips_sink_screen)
|
||||
int im_cache( VipsImage *in, VipsImage *out, int width, int height, int max );
|
||||
|
||||
/* Deprecated operations.
|
||||
*/
|
||||
VIPS_DEPRECATED
|
||||
int im_cmulnorm( IMAGE *in1, IMAGE *in2, IMAGE *out );
|
||||
VIPS_DEPRECATED
|
||||
int im_fav4( IMAGE **, IMAGE * );
|
||||
VIPS_DEPRECATED
|
||||
int im_gadd( double, IMAGE *, double, IMAGE *, double, IMAGE *);
|
||||
VIPS_DEPRECATED
|
||||
int im_litecor( IMAGE *, IMAGE *, IMAGE *, int, double );
|
||||
VIPS_DEPRECATED_FOR(vips_sink_screen)
|
||||
int im_render_fade( IMAGE *in, IMAGE *out, IMAGE *mask,
|
||||
int width, int height, int max,
|
||||
int fps, int steps,
|
||||
int priority,
|
||||
void (*notify)( IMAGE *, VipsRect *, void * ), void *client );
|
||||
VIPS_DEPRECATED_FOR(vips_sink_screen)
|
||||
int im_render( IMAGE *in, IMAGE *out, IMAGE *mask,
|
||||
int width, int height, int max,
|
||||
void (*notify)( IMAGE *, VipsRect *, void * ), void *client );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_cooc_matrix( IMAGE *im, IMAGE *m,
|
||||
int xp, int yp, int xs, int ys, int dx, int dy, int flag );
|
||||
VIPS_DEPRECATED
|
||||
int im_cooc_asm( IMAGE *m, double *asmoment );
|
||||
VIPS_DEPRECATED
|
||||
int im_cooc_contrast( IMAGE *m, double *contrast );
|
||||
VIPS_DEPRECATED
|
||||
int im_cooc_correlation( IMAGE *m, double *correlation );
|
||||
VIPS_DEPRECATED
|
||||
int im_cooc_entropy( IMAGE *m, double *entropy );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_glds_matrix( IMAGE *im, IMAGE *m,
|
||||
int xpos, int ypos, int xsize, int ysize, int dx, int dy );
|
||||
VIPS_DEPRECATED
|
||||
int im_glds_asm( IMAGE *m, double *asmoment );
|
||||
VIPS_DEPRECATED
|
||||
int im_glds_contrast( IMAGE *m, double *contrast );
|
||||
VIPS_DEPRECATED
|
||||
int im_glds_entropy( IMAGE *m, double *entropy );
|
||||
VIPS_DEPRECATED
|
||||
int im_glds_mean( IMAGE *m, double *mean );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_dif_std(IMAGE *im, int xpos, int ypos, int xsize, int ysize, int dx, int dy, double *pmean, double *pstd);
|
||||
VIPS_DEPRECATED
|
||||
int im_simcontr( IMAGE *out, int xsize, int ysize );
|
||||
VIPS_DEPRECATED
|
||||
int im_spatres( IMAGE *in, IMAGE *out, int step );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_stretch3( IMAGE *in, IMAGE *out, double dx, double dy );
|
||||
|
||||
/* Renamed operations.
|
||||
@ -184,118 +223,184 @@ int im_stretch3( IMAGE *in, IMAGE *out, double dx, double dy );
|
||||
|
||||
/* arithmetic
|
||||
*/
|
||||
VIPS_DEPRECATED_FOR(vips_remainder_const)
|
||||
int im_remainderconst_vec( IMAGE *in, IMAGE *out, int n, double *c );
|
||||
|
||||
/* boolean
|
||||
*/
|
||||
VIPS_DEPRECATED_FOR(vips_andimage_const1)
|
||||
int im_andconst( IMAGE *, IMAGE *, double );
|
||||
VIPS_DEPRECATED_FOR(vips_andimage_const)
|
||||
int im_and_vec( IMAGE *, IMAGE *, int, double * );
|
||||
VIPS_DEPRECATED_FOR(vips_orimage_const1)
|
||||
int im_orconst( IMAGE *, IMAGE *, double );
|
||||
VIPS_DEPRECATED_FOR(vips_orimage_const)
|
||||
int im_or_vec( IMAGE *, IMAGE *, int, double * );
|
||||
VIPS_DEPRECATED_FOR(vips_eorimage_const1)
|
||||
int im_eorconst( IMAGE *, IMAGE *, double );
|
||||
VIPS_DEPRECATED_FOR(vips_eorimage_const)
|
||||
int im_eor_vec( IMAGE *, IMAGE *, int, double * );
|
||||
|
||||
/* mosaicing
|
||||
*/
|
||||
VIPS_DEPRECATED_FOR(vips_affine)
|
||||
int im_affine( IMAGE *in, IMAGE *out,
|
||||
double a, double b, double c, double d, double dx, double dy,
|
||||
int ox, int oy, int ow, int oh );
|
||||
VIPS_DEPRECATED_FOR(vips_similarity)
|
||||
int im_similarity( IMAGE *in, IMAGE *out,
|
||||
double a, double b, double dx, double dy );
|
||||
VIPS_DEPRECATED_FOR(vips_similarity)
|
||||
int im_similarity_area( IMAGE *in, IMAGE *out,
|
||||
double a, double b, double dx, double dy,
|
||||
int ox, int oy, int ow, int oh );
|
||||
|
||||
/* colour
|
||||
*/
|
||||
VIPS_DEPRECATED_FOR(vips_icc_export)
|
||||
int im_icc_export( IMAGE *in, IMAGE *out,
|
||||
const char *output_profile_filename, int intent );
|
||||
|
||||
/* conversion
|
||||
*/
|
||||
VIPS_DEPRECATED_FOR(vips_cast)
|
||||
int im_clip2dcm( IMAGE *in, IMAGE *out );
|
||||
VIPS_DEPRECATED_FOR(vips_cast)
|
||||
int im_clip2cm( IMAGE *in, IMAGE *out );
|
||||
VIPS_DEPRECATED_FOR(vips_cast)
|
||||
int im_clip2us( IMAGE *in, IMAGE *out );
|
||||
VIPS_DEPRECATED_FOR(vips_cast)
|
||||
int im_clip2ui( IMAGE *in, IMAGE *out );
|
||||
VIPS_DEPRECATED_FOR(vips_cast)
|
||||
int im_clip2s( IMAGE *in, IMAGE *out );
|
||||
VIPS_DEPRECATED_FOR(vips_cast)
|
||||
int im_clip2i( IMAGE *in, IMAGE *out );
|
||||
VIPS_DEPRECATED_FOR(vips_cast)
|
||||
int im_clip2d( IMAGE *in, IMAGE *out );
|
||||
VIPS_DEPRECATED_FOR(vips_cast)
|
||||
int im_clip2f( IMAGE *in, IMAGE *out );
|
||||
VIPS_DEPRECATED_FOR(vips_cast)
|
||||
int im_clip2c( IMAGE *in, IMAGE *out );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_slice( IMAGE *in, IMAGE *out, double, double );
|
||||
VIPS_DEPRECATED
|
||||
int im_thresh( IMAGE *in, IMAGE *out, double );
|
||||
|
||||
VIPS_DEPRECATED_FOR(printf)
|
||||
int im_print( const char *message );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_convsub( IMAGE *in, IMAGE *out, INTMASK *mask, int xskip, int yskip );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_bernd( const char *tiffname, int x, int y, int w, int h );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_resize_linear( IMAGE *, IMAGE *, int, int );
|
||||
|
||||
VIPS_DEPRECATED_FOR(vips_convf)
|
||||
int im_convf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
|
||||
VIPS_DEPRECATED_FOR(vips_convsep)
|
||||
int im_convsepf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
|
||||
VIPS_DEPRECATED
|
||||
int im_conv_raw( IMAGE *in, IMAGE *out, INTMASK *mask );
|
||||
VIPS_DEPRECATED
|
||||
int im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
|
||||
VIPS_DEPRECATED
|
||||
int im_convsep_raw( IMAGE *in, IMAGE *out, INTMASK *mask );
|
||||
VIPS_DEPRECATED
|
||||
int im_convsepf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
|
||||
VIPS_DEPRECATED
|
||||
int im_fastcor_raw( IMAGE *in, IMAGE *ref, IMAGE *out );
|
||||
VIPS_DEPRECATED
|
||||
int im_spcor_raw( IMAGE *in, IMAGE *ref, IMAGE *out );
|
||||
VIPS_DEPRECATED
|
||||
int im_gradcor_raw( IMAGE *in, IMAGE *ref, IMAGE *out );
|
||||
VIPS_DEPRECATED
|
||||
int im_contrast_surface_raw( IMAGE *in, IMAGE *out,
|
||||
int half_win_size, int spacing );
|
||||
|
||||
VIPS_DEPRECATED_FOR(vips_stdif)
|
||||
int im_stdif_raw( IMAGE *in, IMAGE *out,
|
||||
double a, double m0, double b, double s0, int xwin, int ywin );
|
||||
VIPS_DEPRECATED_FOR(vips_hist_local)
|
||||
int im_lhisteq_raw( IMAGE *in, IMAGE *out, int xwin, int ywin );
|
||||
|
||||
VIPS_DEPRECATED_FOR(vips_morph)
|
||||
int im_erode_raw( IMAGE *in, IMAGE *out, INTMASK *m );
|
||||
VIPS_DEPRECATED_FOR(vips_morph)
|
||||
int im_dilate_raw( IMAGE *in, IMAGE *out, INTMASK *m );
|
||||
VIPS_DEPRECATED
|
||||
int im_rank_raw( IMAGE *in, IMAGE *out, int xsize, int ysize, int order );
|
||||
|
||||
/* inplace
|
||||
*/
|
||||
VIPS_DEPRECATED_FOR(vips_draw_circle)
|
||||
int im_circle( IMAGE *im, int cx, int cy, int radius, int intensity );
|
||||
VIPS_DEPRECATED_FOR(vips_draw_line1)
|
||||
int im_line( IMAGE *, int, int, int, int, int );
|
||||
VIPS_DEPRECATED_FOR(vips_labelregions)
|
||||
int im_segment( IMAGE *test, IMAGE *mask, int *segments );
|
||||
VIPS_DEPRECATED_FOR(vips_draw_rect)
|
||||
int im_paintrect( IMAGE *im, VipsRect *r, PEL *ink );
|
||||
VIPS_DEPRECATED_FOR(vips_draw_image)
|
||||
int im_insertplace( IMAGE *main, IMAGE *sub, int x, int y );
|
||||
|
||||
VIPS_DEPRECATED_FOR(vips_draw_flood)
|
||||
int im_flood_copy( IMAGE *in, IMAGE *out, int x, int y, PEL *ink );
|
||||
VIPS_DEPRECATED_FOR(vips_draw_flood)
|
||||
int im_flood_blob_copy( IMAGE *in, IMAGE *out, int x, int y, PEL *ink );
|
||||
VIPS_DEPRECATED_FOR(vips_draw_flood)
|
||||
int im_flood_other_copy( IMAGE *test, IMAGE *mark, IMAGE *out,
|
||||
int x, int y, int serial );
|
||||
|
||||
VIPS_DEPRECATED_FOR(vips_draw_flood)
|
||||
int im_flood( IMAGE *im, int x, int y, PEL *ink, VipsRect *dout );
|
||||
VIPS_DEPRECATED_FOR(vips_draw_flood)
|
||||
int im_flood_blob( IMAGE *im, int x, int y, PEL *ink, VipsRect *dout );
|
||||
VIPS_DEPRECATED_FOR(vips_draw_flood)
|
||||
int im_flood_other( IMAGE *test, IMAGE *mark,
|
||||
int x, int y, int serial, VipsRect *dout );
|
||||
|
||||
VIPS_DEPRECATED_FOR(vips_draw_line)
|
||||
int im_fastline( IMAGE *im, int x1, int y1, int x2, int y2, PEL *pel );
|
||||
VIPS_DEPRECATED_FOR(vips_draw_line)
|
||||
int im_fastlineuser( IMAGE *im,
|
||||
int x1, int y1, int x2, int y2,
|
||||
VipsPlotFn fn, void *client1, void *client2, void *client3 );
|
||||
|
||||
VIPS_DEPRECATED_FOR(vips_draw_mask)
|
||||
int im_plotmask( IMAGE *im, int ix, int iy, PEL *ink, PEL *mask, VipsRect *r );
|
||||
VIPS_DEPRECATED_FOR(vips_getpoint)
|
||||
int im_readpoint( IMAGE *im, int x, int y, PEL *pel );
|
||||
VIPS_DEPRECATED_FOR(vips_draw_point)
|
||||
int im_plotpoint( IMAGE *im, int x, int y, PEL *pel );
|
||||
|
||||
VIPS_DEPRECATED_FOR(vips_draw_smudge)
|
||||
int im_smudge( IMAGE *image, int ix, int iy, VipsRect *r );
|
||||
VIPS_DEPRECATED
|
||||
int im_smear( IMAGE *im, int ix, int iy, VipsRect *r );
|
||||
|
||||
VIPS_DEPRECATED_FOR(g_warning)
|
||||
void vips_warn( const char *domain, const char *fmt, ... )
|
||||
__attribute__((format(printf, 2, 3)));
|
||||
VIPS_DEPRECATED_FOR(g_warning)
|
||||
void vips_vwarn( const char *domain, const char *fmt, va_list ap );
|
||||
VIPS_DEPRECATED
|
||||
void vips_info_set( gboolean info );
|
||||
VIPS_DEPRECATED_FOR(g_info)
|
||||
void vips_info( const char *domain, const char *fmt, ... )
|
||||
__attribute__((format(printf, 2, 3)));
|
||||
VIPS_DEPRECATED_FOR(g_info)
|
||||
void vips_vinfo( const char *domain, const char *fmt, va_list ap );
|
||||
|
||||
VIPS_DEPRECATED_FOR(vips_autorot)
|
||||
VipsAngle vips_autorot_get_angle( VipsImage *image );
|
||||
|
||||
/* iofuncs
|
||||
*/
|
||||
VIPS_DEPRECATED_FOR(g_free)
|
||||
int vips_free( void *buf );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -191,266 +191,376 @@ typedef enum {
|
||||
VIPS_OPERATION_COMPLEXGET_LAST
|
||||
} VipsOperationComplexget;
|
||||
|
||||
VIPS_API
|
||||
int vips_add( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_sum( VipsImage **in, VipsImage **out, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_subtract( VipsImage *in1, VipsImage *in2, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_multiply( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_divide( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_linear( VipsImage *in, VipsImage **out,
|
||||
const double *a, const double *b, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_linear1( VipsImage *in, VipsImage **out, double a, double b, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_remainder( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_remainder_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_remainder_const1( VipsImage *in, VipsImage **out,
|
||||
double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_invert( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_abs( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_sign( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_round( VipsImage *in, VipsImage **out, VipsOperationRound round, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_floor( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_ceil( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rint( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_math( VipsImage *in, VipsImage **out,
|
||||
VipsOperationMath math, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_sin( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cos( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_tan( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_asin( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_acos( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_atan( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_exp( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_exp10( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_log( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_log10( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_sinh( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cosh( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_tanh( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_asinh( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_acosh( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_atanh( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_complex( VipsImage *in, VipsImage **out,
|
||||
VipsOperationComplex cmplx, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_polar( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rect( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_conj( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_complex2( VipsImage *left, VipsImage *right, VipsImage **out,
|
||||
VipsOperationComplex2 cmplx, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cross_phase( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_complexget( VipsImage *in, VipsImage **out,
|
||||
VipsOperationComplexget get, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_real( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_imag( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_complexform( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_relational( VipsImage *left, VipsImage *right, VipsImage **out,
|
||||
VipsOperationRelational relational, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_equal( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_notequal( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_less( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_lesseq( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_more( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_moreeq( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_relational_const( VipsImage *in, VipsImage **out,
|
||||
VipsOperationRelational relational, const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_equal_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_notequal_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_less_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_lesseq_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_more_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_moreeq_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_relational_const1( VipsImage *in, VipsImage **out,
|
||||
VipsOperationRelational relational, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_equal_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_notequal_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_less_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_lesseq_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_more_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_moreeq_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_boolean( VipsImage *left, VipsImage *right, VipsImage **out,
|
||||
VipsOperationBoolean boolean, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_andimage( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_orimage( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_eorimage( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_lshift( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rshift( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_boolean_const( VipsImage *in, VipsImage **out,
|
||||
VipsOperationBoolean boolean, const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_andimage_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_orimage_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_eorimage_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_lshift_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rshift_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_boolean_const1( VipsImage *in, VipsImage **out,
|
||||
VipsOperationBoolean boolean, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_andimage_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_orimage_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_eorimage_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_lshift_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rshift_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_math2( VipsImage *left, VipsImage *right, VipsImage **out,
|
||||
VipsOperationMath2 math2, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_pow( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_wop( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_atan2( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_math2_const( VipsImage *in, VipsImage **out,
|
||||
VipsOperationMath2 math2, const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_pow_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_wop_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_atan2_const( VipsImage *in, VipsImage **out,
|
||||
const double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_math2_const1( VipsImage *in, VipsImage **out,
|
||||
VipsOperationMath2 math2, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_pow_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_wop_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_atan2_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_avg( VipsImage *in, double *out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_deviate( VipsImage *in, double *out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_min( VipsImage *in, double *out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_max( VipsImage *in, double *out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_stats( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_measure( VipsImage *in, VipsImage **out, int h, int v, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_find_trim( VipsImage *in,
|
||||
int *left, int *top, int *width, int *height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_getpoint( VipsImage *in, double **vector, int *n, int x, int y, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_find( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_find_ndim( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_find_indexed( VipsImage *in, VipsImage *index,
|
||||
VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hough_line( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hough_circle( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_project( VipsImage *in, VipsImage **columns, VipsImage **rows, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_profile( VipsImage *in, VipsImage **columns, VipsImage **rows, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
|
@ -34,6 +34,28 @@
|
||||
#ifndef VIPS_BASIC_H
|
||||
#define VIPS_BASIC_H
|
||||
|
||||
/* Defined in config.h
|
||||
*/
|
||||
#ifdef _VIPS_PUBLIC
|
||||
# define VIPS_API _VIPS_PUBLIC extern
|
||||
#else
|
||||
# define VIPS_API extern
|
||||
#endif
|
||||
|
||||
/* VIPS_DISABLE_DEPRECATION_WARNINGS:
|
||||
*
|
||||
* Disable deprecation warnings from VIPS API.
|
||||
*
|
||||
* Must be defined before including `vips/vips.h`.
|
||||
*/
|
||||
#ifdef VIPS_DISABLE_DEPRECATION_WARNINGS
|
||||
# define VIPS_DEPRECATED VIPS_API
|
||||
# define VIPS_DEPRECATED_FOR(f) VIPS_API
|
||||
#else
|
||||
# define VIPS_DEPRECATED G_DEPRECATED VIPS_API
|
||||
# define VIPS_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) VIPS_API
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /*__cplusplus*/
|
||||
@ -68,13 +90,17 @@ typedef enum {
|
||||
|
||||
/* Just for testing.
|
||||
*/
|
||||
VIPS_API
|
||||
char *vips_path_filename7( const char *path );
|
||||
VIPS_API
|
||||
char *vips_path_mode7( const char *path );
|
||||
|
||||
struct _VipsImage;
|
||||
typedef struct _VipsImage VipsImage;
|
||||
struct _VipsRegion;
|
||||
typedef struct _VipsRegion VipsRegion;
|
||||
struct _VipsBuf;
|
||||
typedef struct _VipsBuf VipsBuf;
|
||||
struct _VipsSource;
|
||||
typedef struct _VipsSource VipsSource;
|
||||
struct _VipsTarget;
|
||||
|
@ -33,6 +33,7 @@
|
||||
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
#include <vips/basic.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -43,7 +44,7 @@ extern "C" {
|
||||
* writes.
|
||||
*/
|
||||
|
||||
typedef struct _VipsBuf {
|
||||
struct _VipsBuf {
|
||||
/* All fields are private.
|
||||
*/
|
||||
/*< private >*/
|
||||
@ -53,37 +54,61 @@ typedef struct _VipsBuf {
|
||||
gboolean full; /* String has filled, block writes */
|
||||
int lasti; /* For read-recent */
|
||||
gboolean dynamic; /* We own the string with malloc() */
|
||||
} VipsBuf;
|
||||
};
|
||||
|
||||
#define VIPS_BUF_STATIC( TEXT ) \
|
||||
{ &TEXT[0], sizeof( TEXT ), 0, FALSE, 0, FALSE }
|
||||
|
||||
/* Init and append to one of the above.
|
||||
*/
|
||||
VIPS_API
|
||||
void vips_buf_rewind( VipsBuf *buf );
|
||||
VIPS_API
|
||||
void vips_buf_destroy( VipsBuf *buf );
|
||||
VIPS_API
|
||||
void vips_buf_init( VipsBuf *buf );
|
||||
VIPS_API
|
||||
void vips_buf_set_static( VipsBuf *buf, char *base, int mx );
|
||||
VIPS_API
|
||||
void vips_buf_set_dynamic( VipsBuf *buf, int mx );
|
||||
VIPS_API
|
||||
void vips_buf_init_static( VipsBuf *buf, char *base, int mx );
|
||||
VIPS_API
|
||||
void vips_buf_init_dynamic( VipsBuf *buf, int mx );
|
||||
VIPS_API
|
||||
gboolean vips_buf_appendns( VipsBuf *buf, const char *str, int sz );
|
||||
VIPS_API
|
||||
gboolean vips_buf_appends( VipsBuf *buf, const char *str );
|
||||
VIPS_API
|
||||
gboolean vips_buf_appendf( VipsBuf *buf, const char *fmt, ... )
|
||||
__attribute__((format(printf, 2, 3)));
|
||||
VIPS_API
|
||||
gboolean vips_buf_vappendf( VipsBuf *buf, const char *fmt, va_list ap );
|
||||
VIPS_API
|
||||
gboolean vips_buf_appendc( VipsBuf *buf, char ch );
|
||||
VIPS_API
|
||||
gboolean vips_buf_appendsc( VipsBuf *buf, gboolean quote, const char *str );
|
||||
VIPS_API
|
||||
gboolean vips_buf_appendgv( VipsBuf *buf, GValue *value );
|
||||
VIPS_API
|
||||
gboolean vips_buf_append_size( VipsBuf *buf, size_t n );
|
||||
VIPS_API
|
||||
gboolean vips_buf_removec( VipsBuf *buf, char ch );
|
||||
VIPS_API
|
||||
gboolean vips_buf_change( VipsBuf *buf, const char *o, const char *n );
|
||||
VIPS_API
|
||||
gboolean vips_buf_is_empty( VipsBuf *buf );
|
||||
VIPS_API
|
||||
gboolean vips_buf_is_full( VipsBuf *buf );
|
||||
VIPS_API
|
||||
const char *vips_buf_all( VipsBuf *buf );
|
||||
VIPS_API
|
||||
const char *vips_buf_firstline( VipsBuf *buf );
|
||||
VIPS_API
|
||||
gboolean vips_buf_appendg( VipsBuf *buf, double g );
|
||||
VIPS_API
|
||||
gboolean vips_buf_appendd( VipsBuf *buf, int d );
|
||||
VIPS_API
|
||||
int vips_buf_len( VipsBuf *buf );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -107,131 +107,195 @@ typedef enum {
|
||||
VIPS_PCS_LAST
|
||||
} VipsPCS;
|
||||
|
||||
VIPS_API
|
||||
gboolean vips_colourspace_issupported( const VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_colourspace( VipsImage *in, VipsImage **out,
|
||||
VipsInterpretation space, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_LabQ2sRGB( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rad2float( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_float2rad( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_LabS2LabQ( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_LabQ2LabS( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_LabQ2Lab( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_Lab2LabQ( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_LCh2Lab( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_Lab2LCh( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_Yxy2Lab( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_CMC2XYZ( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_Lab2XYZ( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_XYZ2Lab( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_XYZ2scRGB( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_scRGB2sRGB( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_scRGB2BW( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_sRGB2scRGB( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_scRGB2XYZ( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_HSV2sRGB( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_sRGB2HSV( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_LCh2CMC( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_CMC2LCh( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_XYZ2Yxy( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_Yxy2XYZ( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_LabS2Lab( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_Lab2LabS( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_CMYK2XYZ( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_XYZ2CMYK( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_profile_load( const char *name, VipsBlob **profile, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_icc_present( void );
|
||||
VIPS_API
|
||||
int vips_icc_transform( VipsImage *in, VipsImage **out,
|
||||
const char *output_profile, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_icc_import( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_icc_export( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_icc_ac2rc( VipsImage *in, VipsImage **out,
|
||||
const char *profile_filename );
|
||||
VIPS_API
|
||||
gboolean vips_icc_is_compatible_profile( VipsImage *image,
|
||||
const void *data, size_t data_length );
|
||||
|
||||
VIPS_API
|
||||
int vips_dE76( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_dE00( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_dECMC( VipsImage *left, VipsImage *right, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
void vips_col_Lab2XYZ( float L, float a, float b,
|
||||
float *X, float *Y, float *Z );
|
||||
VIPS_API
|
||||
void vips_col_XYZ2Lab( float X, float Y, float Z,
|
||||
float *L, float *a, float *b );
|
||||
VIPS_API
|
||||
double vips_col_ab2h( double a, double b );
|
||||
VIPS_API
|
||||
void vips_col_ab2Ch( float a, float b, float *C, float *h );
|
||||
VIPS_API
|
||||
void vips_col_Ch2ab( float C, float h, float *a, float *b );
|
||||
|
||||
VIPS_API
|
||||
float vips_col_L2Lcmc( float L );
|
||||
VIPS_API
|
||||
float vips_col_C2Ccmc( float C );
|
||||
VIPS_API
|
||||
float vips_col_Ch2hcmc( float C, float h );
|
||||
|
||||
VIPS_API
|
||||
void vips_col_make_tables_CMC( void );
|
||||
VIPS_API
|
||||
float vips_col_Lcmc2L( float Lcmc );
|
||||
VIPS_API
|
||||
float vips_col_Ccmc2C( float Ccmc );
|
||||
VIPS_API
|
||||
float vips_col_Chcmc2h( float C, float hcmc );
|
||||
|
||||
VIPS_API
|
||||
int vips_col_sRGB2scRGB_8( int r, int g, int b, float *R, float *G, float *B );
|
||||
VIPS_API
|
||||
int vips_col_sRGB2scRGB_16( int r, int g, int b, float *R, float *G, float *B );
|
||||
VIPS_API
|
||||
int vips_col_sRGB2scRGB_8_noclip( int r, int g, int b,
|
||||
float *R, float *G, float *B );
|
||||
VIPS_API
|
||||
int vips_col_sRGB2scRGB_16_noclip( int r, int g, int b,
|
||||
float *R, float *G, float *B );
|
||||
|
||||
VIPS_API
|
||||
int vips_col_scRGB2XYZ( float R, float G, float B,
|
||||
float *X, float *Y, float *Z );
|
||||
VIPS_API
|
||||
int vips_col_XYZ2scRGB( float X, float Y, float Z,
|
||||
float *R, float *G, float *B );
|
||||
|
||||
VIPS_API
|
||||
int vips_col_scRGB2sRGB_8( float R, float G, float B,
|
||||
int *r, int *g, int *b, int *og );
|
||||
VIPS_API
|
||||
int vips_col_scRGB2sRGB_16( float R, float G, float B,
|
||||
int *r, int *g, int *b, int *og );
|
||||
VIPS_API
|
||||
int vips_col_scRGB2BW_16( float R, float G, float B, int *g, int *og );
|
||||
VIPS_API
|
||||
int vips_col_scRGB2BW_8( float R, float G, float B, int *g, int *og );
|
||||
|
||||
VIPS_API
|
||||
float vips_pythagoras( float L1, float a1, float b1,
|
||||
float L2, float a2, float b2 );
|
||||
VIPS_API
|
||||
float vips_col_dE00(
|
||||
float L1, float a1, float b1, float L2, float a2, float b2 );
|
||||
|
||||
|
@ -90,11 +90,15 @@ typedef struct _VipsConnectionClass {
|
||||
|
||||
} VipsConnectionClass;
|
||||
|
||||
VIPS_API
|
||||
GType vips_connection_get_type( void );
|
||||
|
||||
VIPS_API
|
||||
const char *vips_connection_filename( VipsConnection *connection );
|
||||
VIPS_API
|
||||
const char *vips_connection_nick( VipsConnection *connection );
|
||||
|
||||
VIPS_API
|
||||
void vips_pipe_read_limit_set( gint64 limit );
|
||||
|
||||
#define VIPS_TYPE_SOURCE (vips_source_get_type())
|
||||
@ -211,27 +215,46 @@ typedef struct _VipsSourceClass {
|
||||
|
||||
} VipsSourceClass;
|
||||
|
||||
VIPS_API
|
||||
GType vips_source_get_type( void );
|
||||
|
||||
VIPS_API
|
||||
VipsSource *vips_source_new_from_descriptor( int descriptor );
|
||||
VIPS_API
|
||||
VipsSource *vips_source_new_from_file( const char *filename );
|
||||
VIPS_API
|
||||
VipsSource *vips_source_new_from_blob( VipsBlob *blob );
|
||||
VIPS_API
|
||||
VipsSource *vips_source_new_from_memory( const void *data, size_t size );
|
||||
VIPS_API
|
||||
VipsSource *vips_source_new_from_options( const char *options );
|
||||
|
||||
VIPS_API
|
||||
void vips_source_minimise( VipsSource *source );
|
||||
VIPS_API
|
||||
int vips_source_unminimise( VipsSource *source );
|
||||
VIPS_API
|
||||
int vips_source_decode( VipsSource *source );
|
||||
VIPS_API
|
||||
gint64 vips_source_read( VipsSource *source, void *data, size_t length );
|
||||
VIPS_API
|
||||
gboolean vips_source_is_mappable( VipsSource *source );
|
||||
VIPS_API
|
||||
gboolean vips_source_is_file( VipsSource *source );
|
||||
VIPS_API
|
||||
const void *vips_source_map( VipsSource *source, size_t *length );
|
||||
VIPS_API
|
||||
VipsBlob *vips_source_map_blob( VipsSource *source );
|
||||
VIPS_API
|
||||
gint64 vips_source_seek( VipsSource *source, gint64 offset, int whence );
|
||||
VIPS_API
|
||||
int vips_source_rewind( VipsSource *source );
|
||||
VIPS_API
|
||||
gint64 vips_source_sniff_at_most( VipsSource *source,
|
||||
unsigned char **data, size_t length );
|
||||
VIPS_API
|
||||
unsigned char *vips_source_sniff( VipsSource *source, size_t length );
|
||||
VIPS_API
|
||||
gint64 vips_source_length( VipsSource *source );
|
||||
|
||||
#define VIPS_TYPE_SOURCE_CUSTOM (vips_source_custom_get_type())
|
||||
@ -269,7 +292,9 @@ typedef struct _VipsSourceCustomClass {
|
||||
|
||||
} VipsSourceCustomClass;
|
||||
|
||||
VIPS_API
|
||||
GType vips_source_custom_get_type( void );
|
||||
VIPS_API
|
||||
VipsSourceCustom *vips_source_custom_new( void );
|
||||
|
||||
/* A GInputStream that wraps a VipsSource. This lets us eg.
|
||||
@ -307,6 +332,7 @@ typedef struct _VipsGInputStreamClass {
|
||||
|
||||
} VipsGInputStreamClass;
|
||||
|
||||
VIPS_API
|
||||
GInputStream *vips_g_input_stream_new_from_source( VipsSource *source );
|
||||
|
||||
/* A VipsSource that wraps a GInputStream. This lets us eg. load PNGs from
|
||||
@ -347,6 +373,7 @@ typedef struct _VipsSourceGInputStreamClass {
|
||||
|
||||
} VipsSourceGInputStreamClass;
|
||||
|
||||
VIPS_API
|
||||
VipsSourceGInputStream *vips_source_g_input_stream_new( GInputStream *stream );
|
||||
|
||||
#define VIPS_TYPE_TARGET (vips_target_get_type())
|
||||
@ -416,25 +443,37 @@ typedef struct _VipsTargetClass {
|
||||
|
||||
} VipsTargetClass;
|
||||
|
||||
VIPS_API
|
||||
GType vips_target_get_type( void );
|
||||
|
||||
VIPS_API
|
||||
VipsTarget *vips_target_new_to_descriptor( int descriptor );
|
||||
VIPS_API
|
||||
VipsTarget *vips_target_new_to_file( const char *filename );
|
||||
VIPS_API
|
||||
VipsTarget *vips_target_new_to_memory( void );
|
||||
VIPS_API
|
||||
int vips_target_write( VipsTarget *target, const void *data, size_t length );
|
||||
VIPS_API
|
||||
void vips_target_finish( VipsTarget *target );
|
||||
VIPS_API
|
||||
unsigned char *vips_target_steal( VipsTarget *target, size_t *length );
|
||||
VIPS_API
|
||||
char *vips_target_steal_text( VipsTarget *target );
|
||||
|
||||
VIPS_API
|
||||
int vips_target_putc( VipsTarget *target, int ch );
|
||||
#define VIPS_TARGET_PUTC( S, C ) ( \
|
||||
(S)->write_point < VIPS_TARGET_BUFFER_SIZE ? \
|
||||
((S)->output_buffer[(S)->write_point++] = (C), 0) : \
|
||||
vips_target_putc( (S), (C) ) \
|
||||
)
|
||||
VIPS_API
|
||||
int vips_target_writes( VipsTarget *target, const char *str );
|
||||
VIPS_API
|
||||
int vips_target_writef( VipsTarget *target, const char *fmt, ... )
|
||||
__attribute__((format(printf, 2, 3)));
|
||||
VIPS_API
|
||||
int vips_target_write_amp( VipsTarget *target, const char *str );
|
||||
|
||||
#define VIPS_TYPE_TARGET_CUSTOM (vips_target_custom_get_type())
|
||||
@ -473,7 +512,9 @@ typedef struct _VipsTargetCustomClass {
|
||||
|
||||
} VipsTargetCustomClass;
|
||||
|
||||
VIPS_API
|
||||
GType vips_target_custom_get_type( void );
|
||||
VIPS_API
|
||||
VipsTargetCustom *vips_target_custom_new( void );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -134,153 +134,219 @@ typedef enum {
|
||||
VIPS_BLEND_MODE_LAST
|
||||
} VipsBlendMode;
|
||||
|
||||
VIPS_API
|
||||
int vips_copy( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_tilecache( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_linecache( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_sequential( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cache( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_copy_file( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_embed( VipsImage *in, VipsImage **out,
|
||||
int x, int y, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_gravity( VipsImage *in, VipsImage **out,
|
||||
VipsCompassDirection direction, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_flip( VipsImage *in, VipsImage **out, VipsDirection direction, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_insert( VipsImage *main, VipsImage *sub, VipsImage **out,
|
||||
int x, int y, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_join( VipsImage *in1, VipsImage *in2, VipsImage **out,
|
||||
VipsDirection direction, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_arrayjoin( VipsImage **in, VipsImage **out, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_extract_area( VipsImage *in, VipsImage **out,
|
||||
int left, int top, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_crop( VipsImage *in, VipsImage **out,
|
||||
int left, int top, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_smartcrop( VipsImage *in, VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_extract_band( VipsImage *in, VipsImage **out, int band, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_replicate( VipsImage *in, VipsImage **out, int across, int down, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_grid( VipsImage *in, VipsImage **out,
|
||||
int tile_height, int across, int down, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_transpose3d( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_wrap( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rot( VipsImage *in, VipsImage **out, VipsAngle angle, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rot90( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rot180( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rot270( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rot45( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
void vips_autorot_remove_angle( VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_autorot( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_zoom( VipsImage *in, VipsImage **out, int xfac, int yfac, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_subsample( VipsImage *in, VipsImage **out, int xfac, int yfac, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_cast( VipsImage *in, VipsImage **out, VipsBandFormat format, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cast_uchar( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cast_char( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cast_ushort( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cast_short( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cast_uint( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cast_int( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cast_float( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cast_double( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cast_complex( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_cast_dpcomplex( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_scale( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_msb( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_byteswap( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_bandjoin( VipsImage **in, VipsImage **out, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_bandjoin2( VipsImage *in1, VipsImage *in2, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_bandjoin_const( VipsImage *in, VipsImage **out, double *c, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_bandjoin_const1( VipsImage *in, VipsImage **out, double c, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_bandrank( VipsImage **in, VipsImage **out, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_bandfold( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_bandunfold( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_bandbool( VipsImage *in, VipsImage **out,
|
||||
VipsOperationBoolean boolean, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_bandand( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_bandor( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_bandeor( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_bandmean( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_recomb( VipsImage *in, VipsImage **out, VipsImage *m, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_ifthenelse( VipsImage *cond, VipsImage *in1, VipsImage *in2,
|
||||
VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_switch( VipsImage **tests, VipsImage **out, int n, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_flatten( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_addalpha( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_premultiply( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_unpremultiply( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_composite( VipsImage **in, VipsImage **out, int n, int *mode, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_composite2( VipsImage *base, VipsImage *overlay, VipsImage **out,
|
||||
VipsBlendMode mode, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_falsecolour( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_gamma( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
|
@ -45,33 +45,46 @@ typedef enum {
|
||||
VIPS_COMBINE_LAST
|
||||
} VipsCombine;
|
||||
|
||||
VIPS_API
|
||||
int vips_conv( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_convf( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_convi( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_conva( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_convsep( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_convasep( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_compass( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_gaussblur( VipsImage *in, VipsImage **out, double sigma, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_sharpen( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_spcor( VipsImage *in, VipsImage *ref, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_fastcor( VipsImage *in, VipsImage *ref, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_sobel( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_canny( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
|
@ -38,84 +38,111 @@
|
||||
extern "C" {
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
VIPS_API
|
||||
int vips_black( VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_xyz( VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_grey( VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_gaussmat( VipsImage **out, double sigma, double min_ampl, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_logmat( VipsImage **out, double sigma, double min_ampl, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_text( VipsImage **out, const char *text, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_gaussnoise( VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_eye( VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_sines( VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_zone( VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_identity( VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_buildlut( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_invertlut( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_tonelut( VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_mask_ideal( VipsImage **out, int width, int height,
|
||||
double frequency_cutoff, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_mask_ideal_ring( VipsImage **out, int width, int height,
|
||||
double frequency_cutoff, double ringwidth, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_mask_ideal_band( VipsImage **out, int width, int height,
|
||||
double frequency_cutoff_x, double frequency_cutoff_y,
|
||||
double radius, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_mask_butterworth( VipsImage **out, int width, int height,
|
||||
double order,
|
||||
double frequency_cutoff, double amplitude_cutoff, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_mask_butterworth_ring( VipsImage **out, int width, int height,
|
||||
double order,
|
||||
double frequency_cutoff, double amplitude_cutoff,
|
||||
double ringwidth, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_mask_butterworth_band( VipsImage **out, int width, int height,
|
||||
double order,
|
||||
double frequency_cutoff_x, double frequency_cutoff_y, double radius,
|
||||
double amplitude_cutoff, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_mask_gaussian( VipsImage **out, int width, int height,
|
||||
double frequency_cutoff, double amplitude_cutoff, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_mask_gaussian_ring( VipsImage **out, int width, int height,
|
||||
double frequency_cutoff, double amplitude_cutoff,
|
||||
double ringwidth, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_mask_gaussian_band( VipsImage **out, int width, int height,
|
||||
double frequency_cutoff_x, double frequency_cutoff_y, double radius,
|
||||
double amplitude_cutoff, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_mask_fractal( VipsImage **out, int width, int height,
|
||||
double fractal_dimension, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_fractsurf( VipsImage **out,
|
||||
int width, int height, double fractal_dimension, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_worley( VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_perlin( VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
|
@ -61,23 +61,39 @@ typedef struct _VipsDbuf {
|
||||
|
||||
} VipsDbuf;
|
||||
|
||||
VIPS_API
|
||||
void vips_dbuf_destroy( VipsDbuf *dbuf );
|
||||
VIPS_API
|
||||
void vips_dbuf_init( VipsDbuf *dbuf );
|
||||
VIPS_API
|
||||
gboolean vips_dbuf_minimum_size( VipsDbuf *dbuf, size_t size );
|
||||
VIPS_API
|
||||
gboolean vips_dbuf_allocate( VipsDbuf *dbuf, size_t size );
|
||||
VIPS_API
|
||||
size_t vips_dbuf_read( VipsDbuf *dbuf, unsigned char *data, size_t size );
|
||||
VIPS_API
|
||||
unsigned char *vips_dbuf_get_write( VipsDbuf *dbuf, size_t *size );
|
||||
VIPS_API
|
||||
gboolean vips_dbuf_write( VipsDbuf *dbuf,
|
||||
const unsigned char *data, size_t size );
|
||||
VIPS_API
|
||||
gboolean vips_dbuf_writef( VipsDbuf *dbuf, const char *fmt, ... )
|
||||
__attribute__((format(printf, 2, 3)));
|
||||
VIPS_API
|
||||
gboolean vips_dbuf_write_amp( VipsDbuf *dbuf, const char *str );
|
||||
VIPS_API
|
||||
void vips_dbuf_reset( VipsDbuf *dbuf );
|
||||
VIPS_API
|
||||
void vips_dbuf_destroy( VipsDbuf *dbuf );
|
||||
VIPS_API
|
||||
gboolean vips_dbuf_seek( VipsDbuf *dbuf, off_t offset, int whence );
|
||||
VIPS_API
|
||||
void vips_dbuf_truncate( VipsDbuf *dbuf );
|
||||
VIPS_API
|
||||
off_t vips_dbuf_tell( VipsDbuf *dbuf );
|
||||
VIPS_API
|
||||
unsigned char *vips_dbuf_string( VipsDbuf *dbuf, size_t *size );
|
||||
VIPS_API
|
||||
unsigned char *vips_dbuf_steal( VipsDbuf *dbuf, size_t *size );
|
||||
|
||||
#endif /*VIPS_DBUF_H*/
|
||||
|
@ -266,33 +266,44 @@ int im__gprint( im_object obj ); /* GValue */
|
||||
|
||||
/* Add a plug-in package.
|
||||
*/
|
||||
VIPS_DEPRECATED
|
||||
im_package *im_load_plugin( const char *name );
|
||||
VIPS_DEPRECATED
|
||||
int im_load_plugins( const char *fmt, ... )
|
||||
__attribute__((format(printf, 1, 2)));
|
||||
|
||||
/* Close all plug-ins.
|
||||
*/
|
||||
VIPS_DEPRECATED
|
||||
int im_close_plugins( void );
|
||||
|
||||
/* Loop over all loaded packages.
|
||||
*/
|
||||
VIPS_DEPRECATED
|
||||
void *im_map_packages( VipsSListMap2Fn fn, void *a );
|
||||
|
||||
/* Convenience functions for finding packages, functions, etc.
|
||||
*/
|
||||
VIPS_DEPRECATED
|
||||
im_function *im_find_function( const char *name );
|
||||
VIPS_DEPRECATED
|
||||
im_package *im_find_package( const char *name );
|
||||
VIPS_DEPRECATED
|
||||
im_package *im_package_of_function( const char *name );
|
||||
|
||||
/* Allocate space for, and free im_object argument lists.
|
||||
*/
|
||||
VIPS_DEPRECATED
|
||||
int im_free_vargv( im_function *fn, im_object *vargv );
|
||||
VIPS_DEPRECATED
|
||||
int im_allocate_vargv( im_function *fn, im_object *vargv );
|
||||
|
||||
/* Run a VIPS command by name.
|
||||
*/
|
||||
VIPS_DEPRECATED
|
||||
int im_run_command( char *name, int argc, char **argv );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int vips__input_interpolate_init( im_object *obj, char *str );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -48,46 +48,60 @@ typedef enum {
|
||||
VIPS_COMBINE_MODE_LAST
|
||||
} VipsCombineMode;
|
||||
|
||||
VIPS_API
|
||||
int vips_draw_rect( VipsImage *image,
|
||||
double *ink, int n, int left, int top, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_draw_rect1( VipsImage *image,
|
||||
double ink, int left, int top, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_draw_point( VipsImage *image, double *ink, int n, int x, int y, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_draw_point1( VipsImage *image, double ink, int x, int y, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_draw_image( VipsImage *image, VipsImage *sub, int x, int y, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_draw_mask( VipsImage *image,
|
||||
double *ink, int n, VipsImage *mask, int x, int y, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_draw_mask1( VipsImage *image,
|
||||
double ink, VipsImage *mask, int x, int y, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_draw_line( VipsImage *image,
|
||||
double *ink, int n, int x1, int y1, int x2, int y2, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_draw_line1( VipsImage *image,
|
||||
double ink, int x1, int y1, int x2, int y2, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_draw_circle( VipsImage *image,
|
||||
double *ink, int n, int cx, int cy, int radius, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_draw_circle1( VipsImage *image,
|
||||
double ink, int cx, int cy, int radius, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_draw_flood( VipsImage *image, double *ink, int n, int x, int y, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_draw_flood1( VipsImage *image, double ink, int x, int y, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_draw_smudge( VipsImage *image,
|
||||
int left, int top, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
|
@ -11,6 +11,7 @@ G_BEGIN_DECLS
|
||||
/*** END file-production ***/
|
||||
|
||||
/*** BEGIN value-header ***/
|
||||
VIPS_API
|
||||
GType @enum_name@_get_type (void) G_GNUC_CONST;
|
||||
#define VIPS_TYPE_@ENUMSHORT@ (@enum_name@_get_type())
|
||||
/*** END value-header ***/
|
||||
|
@ -1,6 +1,9 @@
|
||||
/*** BEGIN file-header ***/
|
||||
/* auto-generated enums for vips introspection */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif /*HAVE_CONFIG_H*/
|
||||
#include <vips/vips.h>
|
||||
/*** END file-header ***/
|
||||
|
||||
|
@ -11,6 +11,7 @@ G_BEGIN_DECLS
|
||||
/*** END file-production ***/
|
||||
|
||||
/*** BEGIN value-header ***/
|
||||
VIPS_API
|
||||
GType @enum_name@_get_type (void) G_GNUC_CONST;
|
||||
#define VIPS_TYPE_@ENUMSHORT@ (@enum_name@_get_type())
|
||||
/*** END value-header ***/
|
||||
|
@ -35,59 +35,103 @@
|
||||
extern "C" {
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
VIPS_API
|
||||
const char *vips_error_buffer( void );
|
||||
VIPS_API
|
||||
char *vips_error_buffer_copy( void );
|
||||
VIPS_API
|
||||
void vips_error_clear( void );
|
||||
|
||||
VIPS_API
|
||||
void vips_error_freeze( void );
|
||||
VIPS_API
|
||||
void vips_error_thaw( void );
|
||||
|
||||
VIPS_API
|
||||
void vips_error( const char *domain, const char *fmt, ... )
|
||||
__attribute__((format(printf, 2, 3)));
|
||||
VIPS_API
|
||||
void vips_verror( const char *domain, const char *fmt, va_list ap );
|
||||
VIPS_API
|
||||
void vips_error_system( int err, const char *domain, const char *fmt, ... )
|
||||
__attribute__((format(printf, 3, 4)));
|
||||
VIPS_API
|
||||
void vips_verror_system( int err, const char *domain,
|
||||
const char *fmt, va_list ap );
|
||||
VIPS_API
|
||||
void vips_error_g( GError **error );
|
||||
VIPS_API
|
||||
void vips_g_error( GError **error );
|
||||
|
||||
VIPS_API
|
||||
void vips_error_exit( const char *fmt, ... )
|
||||
__attribute__((noreturn, format(printf, 1, 2)));
|
||||
|
||||
VIPS_API
|
||||
int vips_check_uncoded( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_coding( const char *domain, VipsImage *im, VipsCoding coding );
|
||||
VIPS_API
|
||||
int vips_check_coding_known( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_coding_noneorlabq( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_coding_same( const char *domain, VipsImage *im1, VipsImage *im2 );
|
||||
VIPS_API
|
||||
int vips_check_mono( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_bands( const char *domain, VipsImage *im, int bands );
|
||||
VIPS_API
|
||||
int vips_check_bands_1or3( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_bands_atleast( const char *domain, VipsImage *im, int bands );
|
||||
VIPS_API
|
||||
int vips_check_bands_1orn( const char *domain, VipsImage *im1, VipsImage *im2 );
|
||||
VIPS_API
|
||||
int vips_check_bands_1orn_unary( const char *domain, VipsImage *im, int n );
|
||||
VIPS_API
|
||||
int vips_check_bands_same( const char *domain, VipsImage *im1, VipsImage *im2 );
|
||||
VIPS_API
|
||||
int vips_check_bandno( const char *domain, VipsImage *im, int bandno );
|
||||
|
||||
VIPS_API
|
||||
int vips_check_int( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_uint( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_uintorf( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_noncomplex( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_complex( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_twocomponents( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_format( const char *domain, VipsImage *im, VipsBandFormat fmt );
|
||||
VIPS_API
|
||||
int vips_check_u8or16( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_8or16( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_u8or16orf( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_format_same( const char *domain, VipsImage *im1, VipsImage *im2 );
|
||||
VIPS_API
|
||||
int vips_check_size_same( const char *domain, VipsImage *im1, VipsImage *im2 );
|
||||
VIPS_API
|
||||
int vips_check_oddsquare( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_vector_length( const char *domain, int n, int len );
|
||||
VIPS_API
|
||||
int vips_check_vector( const char *domain, int n, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_hist( const char *domain, VipsImage *im );
|
||||
VIPS_API
|
||||
int vips_check_matrix( const char *domain, VipsImage *im, VipsImage **out );
|
||||
VIPS_API
|
||||
int vips_check_separable( const char *domain, VipsImage *im );
|
||||
|
||||
VIPS_API
|
||||
int vips_check_precision_intfloat( const char *domain,
|
||||
VipsPrecision precision );
|
||||
|
||||
|
@ -84,11 +84,13 @@ typedef struct _VipsForeignClass {
|
||||
|
||||
/* Don't put spaces around void here, it breaks gtk-doc.
|
||||
*/
|
||||
VIPS_API
|
||||
GType vips_foreign_get_type(void);
|
||||
|
||||
/* Map over and find formats. This uses type introspection to loop over
|
||||
* subclasses of VipsForeign.
|
||||
*/
|
||||
VIPS_API
|
||||
void *vips_foreign_map( const char *base,
|
||||
VipsSListMap2Fn fn, void *a, void *b );
|
||||
|
||||
@ -263,19 +265,28 @@ typedef struct _VipsForeignLoadClass {
|
||||
|
||||
/* Don't put spaces around void here, it breaks gtk-doc.
|
||||
*/
|
||||
VIPS_API
|
||||
GType vips_foreign_load_get_type(void);
|
||||
|
||||
VIPS_API
|
||||
const char *vips_foreign_find_load( const char *filename );
|
||||
VIPS_API
|
||||
const char *vips_foreign_find_load_buffer( const void *data, size_t size );
|
||||
VIPS_API
|
||||
const char *vips_foreign_find_load_source( VipsSource *source );
|
||||
|
||||
VIPS_API
|
||||
VipsForeignFlags vips_foreign_flags( const char *loader, const char *filename );
|
||||
VIPS_API
|
||||
gboolean vips_foreign_is_a( const char *loader, const char *filename );
|
||||
VIPS_API
|
||||
gboolean vips_foreign_is_a_buffer( const char *loader,
|
||||
const void *data, size_t size );
|
||||
VIPS_API
|
||||
gboolean vips_foreign_is_a_source( const char *loader,
|
||||
VipsSource *source );
|
||||
|
||||
VIPS_API
|
||||
void vips_foreign_load_invalidate( VipsImage *image );
|
||||
|
||||
#define VIPS_TYPE_FOREIGN_SAVE (vips_foreign_save_get_type())
|
||||
@ -376,24 +387,35 @@ typedef struct _VipsForeignSaveClass {
|
||||
|
||||
/* Don't put spaces around void here, it breaks gtk-doc.
|
||||
*/
|
||||
VIPS_API
|
||||
GType vips_foreign_save_get_type(void);
|
||||
|
||||
VIPS_API
|
||||
const char *vips_foreign_find_save( const char *filename );
|
||||
VIPS_API
|
||||
gchar **vips_foreign_get_suffixes( void );
|
||||
VIPS_API
|
||||
const char *vips_foreign_find_save_buffer( const char *suffix );
|
||||
VIPS_API
|
||||
const char *vips_foreign_find_save_target( const char *suffix );
|
||||
|
||||
VIPS_API
|
||||
int vips_vipsload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_vipsload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_vipssave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_vipssave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_openslideload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_openslideload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
@ -429,19 +451,26 @@ typedef enum {
|
||||
VIPS_FOREIGN_JPEG_SUBSAMPLE_LAST
|
||||
} VipsForeignJpegSubsample;
|
||||
|
||||
VIPS_API
|
||||
int vips_jpegload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jpegload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jpegload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_jpegsave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jpegsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jpegsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jpegsave_mime( VipsImage *in, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
@ -466,19 +495,26 @@ typedef enum {
|
||||
VIPS_FOREIGN_WEBP_PRESET_LAST
|
||||
} VipsForeignWebpPreset;
|
||||
|
||||
VIPS_API
|
||||
int vips_webpload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_webpload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_webpload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_webpsave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_webpsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_webpsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_webpsave_mime( VipsImage *in, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
@ -546,62 +582,87 @@ typedef enum {
|
||||
VIPS_FOREIGN_TIFF_RESUNIT_LAST
|
||||
} VipsForeignTiffResunit;
|
||||
|
||||
VIPS_API
|
||||
int vips_tiffload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_tiffload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_tiffload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_tiffsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_tiffsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_openexrload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_fitsload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_fitssave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_analyzeload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_rawload( const char *filename, VipsImage **out,
|
||||
int width, int height, int bands, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rawsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rawsave_fd( VipsImage *in, int fd, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_csvload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_csvload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_csvsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_csvsave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_matrixload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_matrixload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_matrixsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_matrixsave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_matrixprint( VipsImage *in, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_magickload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_magickload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_magicksave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_magicksave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
@ -626,16 +687,22 @@ typedef enum /*< flags >*/ {
|
||||
VIPS_FOREIGN_PNG_FILTER_ALL = 0xF8
|
||||
} VipsForeignPngFilter;
|
||||
|
||||
VIPS_API
|
||||
int vips_pngload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_pngload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_pngload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_pngsave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_pngsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_pngsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
@ -664,104 +731,149 @@ typedef enum {
|
||||
VIPS_FOREIGN_PPM_FORMAT_LAST
|
||||
} VipsForeignPpmFormat;
|
||||
|
||||
VIPS_API
|
||||
int vips_ppmload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_ppmload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_ppmsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_ppmsave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_matload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_radload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_radload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_radload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_radsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_radsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_radsave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_pdfload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_pdfload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_pdfload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_svgload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_svgload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_svgload_string( const char *str, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_svgload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_gifload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_gifload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_gifload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_gifsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_gifsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_gifsave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_heifload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_heifload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_heifload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_heifsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_heifsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_heifsave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_niftiload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_niftiload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_niftisave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_jp2kload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jp2kload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jp2kload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jp2ksave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jp2ksave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jp2ksave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_jxlload_source( VipsSource *source, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jxlload_buffer( void *buf, size_t len, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jxlload( const char *filename, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jxlsave( VipsImage *in, const char *filename, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jxlsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_jxlsave_target( VipsImage *in, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
@ -814,8 +926,10 @@ typedef enum {
|
||||
VIPS_FOREIGN_DZ_CONTAINER_LAST
|
||||
} VipsForeignDzContainer;
|
||||
|
||||
VIPS_API
|
||||
int vips_dzsave( VipsImage *in, const char *name, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_dzsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
|
@ -29,8 +29,8 @@
|
||||
|
||||
*/
|
||||
|
||||
#ifndef IM_FORMAT_H
|
||||
#define IM_FORMAT_H
|
||||
#ifndef VIPS_FORMAT_H
|
||||
#define VIPS_FORMAT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -104,76 +104,32 @@ typedef struct _VipsFormatClass {
|
||||
const char **suffs;
|
||||
} VipsFormatClass;
|
||||
|
||||
VIPS_API
|
||||
GType vips_format_get_type( void );
|
||||
|
||||
/* Map over and find formats. This uses type introspection to loop over
|
||||
* subclasses of VipsFormat.
|
||||
*/
|
||||
VIPS_API
|
||||
void *vips_format_map( VipsSListMap2Fn fn, void *a, void *b );
|
||||
VIPS_API
|
||||
VipsFormatClass *vips_format_for_file( const char *filename );
|
||||
VIPS_API
|
||||
VipsFormatClass *vips_format_for_name( const char *filename );
|
||||
|
||||
VIPS_API
|
||||
VipsFormatFlags vips_format_get_flags( VipsFormatClass *format,
|
||||
const char *filename );
|
||||
|
||||
/* Read/write an image convenience functions.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips_format_read( const char *filename, VipsImage *out );
|
||||
VIPS_API
|
||||
int vips_format_write( VipsImage *in, const char *filename );
|
||||
|
||||
/* Low-level read/write operations.
|
||||
*/
|
||||
int im_jpeg2vips( const char *filename, VipsImage *out );
|
||||
int im_bufjpeg2vips( void *buf, size_t len,
|
||||
VipsImage *out, gboolean header_only );
|
||||
int im_vips2jpeg( VipsImage *in, const char *filename );
|
||||
int im_vips2mimejpeg( VipsImage *in, int qfac );
|
||||
int im_vips2bufjpeg( VipsImage *in, VipsImage *out,
|
||||
int qfac, char **obuf, int *olen );
|
||||
|
||||
int im_tiff2vips( const char *filename, VipsImage *out );
|
||||
int im_vips2tiff( VipsImage *in, const char *filename );
|
||||
int im_tile_cache( VipsImage *in, VipsImage *out,
|
||||
int tile_width, int tile_height, int max_tiles );
|
||||
|
||||
int im_magick2vips( const char *filename, VipsImage *out );
|
||||
int im_bufmagick2vips( void *buf, size_t len,
|
||||
VipsImage *out, gboolean header_only );
|
||||
|
||||
int im_exr2vips( const char *filename, VipsImage *out );
|
||||
|
||||
int im_ppm2vips( const char *filename, VipsImage *out );
|
||||
int im_vips2ppm( VipsImage *in, const char *filename );
|
||||
|
||||
int im_analyze2vips( const char *filename, VipsImage *out );
|
||||
|
||||
int im_csv2vips( const char *filename, VipsImage *out );
|
||||
int im_vips2csv( VipsImage *in, const char *filename );
|
||||
|
||||
int im_png2vips( const char *filename, VipsImage *out );
|
||||
int im_vips2png( VipsImage *in, const char *filename );
|
||||
int im_vips2bufpng( VipsImage *in, VipsImage *out,
|
||||
int compression, int interlace, char **obuf, size_t *olen );
|
||||
|
||||
int im_webp2vips( const char *filename, VipsImage *out );
|
||||
int im_vips2webp( VipsImage *in, const char *filename );
|
||||
|
||||
int im_raw2vips( const char *filename, VipsImage *out,
|
||||
int width, int height, int bpp, int offset );
|
||||
int im_vips2raw( VipsImage *in, int fd );
|
||||
|
||||
int im_mat2vips( const char *filename, VipsImage *out );
|
||||
|
||||
int im_rad2vips( const char *filename, VipsImage *out );
|
||||
int im_vips2rad( VipsImage *in, const char *filename );
|
||||
|
||||
int im_fits2vips( const char *filename, VipsImage *out );
|
||||
int im_vips2fits( VipsImage *in, const char *filename );
|
||||
|
||||
int im_vips2dz( VipsImage *in, const char *filename );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
#endif /*IM_FORMAT_H*/
|
||||
#endif /*VIPS_FORMAT_H*/
|
||||
|
@ -38,17 +38,22 @@
|
||||
extern "C" {
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
VIPS_API
|
||||
int vips_fwfft( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_invfft( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_freqmult( VipsImage *in, VipsImage *mask, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_spectrum( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_phasecor( VipsImage *in1, VipsImage *in2, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
|
@ -63,6 +63,7 @@ G_STMT_START { \
|
||||
|
||||
extern gboolean vips__thread_profile;
|
||||
|
||||
VIPS_API
|
||||
void vips_profile_set( gboolean profile );
|
||||
|
||||
void vips__thread_profile_attach( const char *thread_name );
|
||||
|
@ -38,38 +38,50 @@ extern "C" {
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
typedef int (*VipsRegionWrite)( VipsRegion *region, VipsRect *area, void *a );
|
||||
VIPS_API
|
||||
int vips_sink_disc( VipsImage *im, VipsRegionWrite write_fn, void *a );
|
||||
|
||||
VIPS_API
|
||||
int vips_sink( VipsImage *im,
|
||||
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
|
||||
void *a, void *b );
|
||||
VIPS_API
|
||||
int vips_sink_tile( VipsImage *im,
|
||||
int tile_width, int tile_height,
|
||||
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
|
||||
void *a, void *b );
|
||||
|
||||
typedef void (*VipsSinkNotify)( VipsImage *im, VipsRect *rect, void *a );
|
||||
VIPS_API
|
||||
int vips_sink_screen( VipsImage *in, VipsImage *out, VipsImage *mask,
|
||||
int tile_width, int tile_height, int max_tiles,
|
||||
int priority,
|
||||
VipsSinkNotify notify_fn, void *a );
|
||||
|
||||
VIPS_API
|
||||
int vips_sink_memory( VipsImage *im );
|
||||
|
||||
VIPS_API
|
||||
void *vips_start_one( VipsImage *out, void *a, void *b );
|
||||
VIPS_API
|
||||
int vips_stop_one( void *seq, void *a, void *b );
|
||||
VIPS_API
|
||||
void *vips_start_many( VipsImage *out, void *a, void *b );
|
||||
VIPS_API
|
||||
int vips_stop_many( void *seq, void *a, void *b );
|
||||
VIPS_API
|
||||
VipsImage **vips_allocate_input_array( VipsImage *out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_image_generate( VipsImage *image,
|
||||
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
|
||||
void *a, void *b
|
||||
);
|
||||
void *a, void *b );
|
||||
|
||||
VIPS_API
|
||||
int vips_image_pipeline_array( VipsImage *image,
|
||||
VipsDemandStyle hint, VipsImage **in );
|
||||
VIPS_API
|
||||
int vips_image_pipelinev( VipsImage *image, VipsDemandStyle hint, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
|
@ -157,89 +157,143 @@ extern "C" {
|
||||
*/
|
||||
#define VIPS_META_N_SUBIFDS "n-subifds"
|
||||
|
||||
VIPS_API
|
||||
guint64 vips_format_sizeof( VipsBandFormat format );
|
||||
VIPS_API
|
||||
guint64 vips_format_sizeof_unsafe( VipsBandFormat format );
|
||||
|
||||
VIPS_API
|
||||
int vips_image_get_width( const VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_get_height( const VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_get_bands( const VipsImage *image );
|
||||
VIPS_API
|
||||
VipsBandFormat vips_image_get_format( const VipsImage *image );
|
||||
VIPS_API
|
||||
double vips_image_get_format_max( VipsBandFormat format );
|
||||
VIPS_API
|
||||
VipsBandFormat vips_image_guess_format( const VipsImage *image );
|
||||
VIPS_API
|
||||
VipsCoding vips_image_get_coding( const VipsImage *image );
|
||||
VIPS_API
|
||||
VipsInterpretation vips_image_get_interpretation( const VipsImage *image );
|
||||
VIPS_API
|
||||
VipsInterpretation vips_image_guess_interpretation( const VipsImage *image );
|
||||
VIPS_API
|
||||
double vips_image_get_xres( const VipsImage *image );
|
||||
VIPS_API
|
||||
double vips_image_get_yres( const VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_get_xoffset( const VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_get_yoffset( const VipsImage *image );
|
||||
VIPS_API
|
||||
const char *vips_image_get_filename( const VipsImage *image );
|
||||
VIPS_API
|
||||
const char *vips_image_get_mode( const VipsImage *image );
|
||||
VIPS_API
|
||||
double vips_image_get_scale( const VipsImage *image );
|
||||
VIPS_API
|
||||
double vips_image_get_offset( const VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_get_page_height( VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_get_n_pages( VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_get_n_subifds( VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_get_orientation( VipsImage *image );
|
||||
VIPS_API
|
||||
gboolean vips_image_get_orientation_swap( VipsImage *image );
|
||||
VIPS_API
|
||||
const void *vips_image_get_data( VipsImage *image );
|
||||
|
||||
VIPS_API
|
||||
void vips_image_init_fields( VipsImage *image,
|
||||
int xsize, int ysize, int bands,
|
||||
VipsBandFormat format, VipsCoding coding,
|
||||
VipsInterpretation interpretation,
|
||||
double xres, double yres );
|
||||
|
||||
VIPS_API
|
||||
void vips_image_set( VipsImage *image, const char *name, GValue *value );
|
||||
VIPS_API
|
||||
int vips_image_get( const VipsImage *image,
|
||||
const char *name, GValue *value_copy );
|
||||
VIPS_API
|
||||
int vips_image_get_as_string( const VipsImage *image,
|
||||
const char *name, char **out );
|
||||
VIPS_API
|
||||
GType vips_image_get_typeof( const VipsImage *image, const char *name );
|
||||
VIPS_API
|
||||
gboolean vips_image_remove( VipsImage *image, const char *name );
|
||||
typedef void *(*VipsImageMapFn)( VipsImage *image,
|
||||
const char *name, GValue *value, void *a );
|
||||
VIPS_API
|
||||
void *vips_image_map( VipsImage *image, VipsImageMapFn fn, void *a );
|
||||
VIPS_API
|
||||
gchar **vips_image_get_fields( VipsImage *image );
|
||||
|
||||
VIPS_API
|
||||
void vips_image_set_area( VipsImage *image,
|
||||
const char *name, VipsCallbackFn free_fn, void *data );
|
||||
VIPS_API
|
||||
int vips_image_get_area( const VipsImage *image,
|
||||
const char *name, const void **data );
|
||||
VIPS_API
|
||||
void vips_image_set_blob( VipsImage *image,
|
||||
const char *name,
|
||||
VipsCallbackFn free_fn, const void *data, size_t length );
|
||||
VIPS_API
|
||||
void vips_image_set_blob_copy( VipsImage *image,
|
||||
const char *name, const void *data, size_t length );
|
||||
VIPS_API
|
||||
int vips_image_get_blob( const VipsImage *image,
|
||||
const char *name, const void **data, size_t *length );
|
||||
|
||||
VIPS_API
|
||||
int vips_image_get_int( const VipsImage *image, const char *name, int *out );
|
||||
VIPS_API
|
||||
void vips_image_set_int( VipsImage *image, const char *name, int i );
|
||||
VIPS_API
|
||||
int vips_image_get_double( const VipsImage *image,
|
||||
const char *name, double *out );
|
||||
VIPS_API
|
||||
void vips_image_set_double( VipsImage *image, const char *name, double d );
|
||||
VIPS_API
|
||||
int vips_image_get_string( const VipsImage *image,
|
||||
const char *name, const char **out );
|
||||
VIPS_API
|
||||
void vips_image_set_string( VipsImage *image,
|
||||
const char *name, const char *str );
|
||||
VIPS_API
|
||||
void vips_image_print_field( const VipsImage *image, const char *name );
|
||||
VIPS_API
|
||||
int vips_image_get_image( const VipsImage *image,
|
||||
const char *name, VipsImage **out );
|
||||
VIPS_API
|
||||
void vips_image_set_image( VipsImage *image, const char *name, VipsImage *im );
|
||||
VIPS_API
|
||||
void vips_image_set_array_int( VipsImage *image, const char *name,
|
||||
const int *array, int n );
|
||||
VIPS_API
|
||||
int vips_image_get_array_int( VipsImage *image, const char *name,
|
||||
int **out, int *n );
|
||||
VIPS_API
|
||||
int vips_image_get_array_double( VipsImage *image, const char *name,
|
||||
double **out, int *n );
|
||||
VIPS_API
|
||||
void vips_image_set_array_double( VipsImage *image, const char *name,
|
||||
const double *array, int n );
|
||||
|
||||
VIPS_API
|
||||
int vips_image_history_printf( VipsImage *image, const char *format, ... )
|
||||
__attribute__((format(printf, 2, 3)));
|
||||
VIPS_API
|
||||
int vips_image_history_args( VipsImage *image,
|
||||
const char *name, int argc, char *argv[] );
|
||||
VIPS_API
|
||||
const char *vips_image_get_history( VipsImage *image );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -38,30 +38,42 @@
|
||||
extern "C" {
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
VIPS_API
|
||||
int vips_maplut( VipsImage *in, VipsImage **out, VipsImage *lut, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_percent( VipsImage *in, double percent, int *threshold, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_stdif( VipsImage *in, VipsImage **out, int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_cum( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_norm( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_equal( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_plot( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_match( VipsImage *in, VipsImage *ref, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_local( VipsImage *in, VipsImage **out,
|
||||
int width, int height, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_ismonotonic( VipsImage *in, gboolean *out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_hist_entropy( VipsImage *in, double *out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_case( VipsImage *index, VipsImage **cases, VipsImage **out, int n,
|
||||
... )
|
||||
__attribute__((sentinel));
|
||||
|
@ -364,6 +364,7 @@ typedef struct _VipsImageClass {
|
||||
|
||||
/* Don't put spaces around void here, it breaks gtk-doc.
|
||||
*/
|
||||
VIPS_API
|
||||
GType vips_image_get_type(void);
|
||||
|
||||
/* Has to be guint64 and not size_t/off_t since we have to be able to address
|
||||
@ -426,111 +427,175 @@ GType vips_image_get_type(void);
|
||||
((double *) VIPS_IMAGE_ADDR( I, X, Y ))
|
||||
#endif /*VIPS_DEBUG*/
|
||||
|
||||
VIPS_API
|
||||
void vips_progress_set( gboolean progress );
|
||||
|
||||
VIPS_API
|
||||
void vips_image_invalidate_all( VipsImage *image );
|
||||
|
||||
VIPS_API
|
||||
void vips_image_minimise_all( VipsImage *image );
|
||||
|
||||
VIPS_API
|
||||
gboolean vips_image_is_sequential( VipsImage *image );
|
||||
|
||||
VIPS_API
|
||||
void vips_image_set_progress( VipsImage *image, gboolean progress );
|
||||
VIPS_API
|
||||
gboolean vips_image_iskilled( VipsImage *image );
|
||||
VIPS_API
|
||||
void vips_image_set_kill( VipsImage *image, gboolean kill );
|
||||
|
||||
VIPS_API
|
||||
char *vips_filename_get_filename( const char *vips_filename );
|
||||
VIPS_API
|
||||
char *vips_filename_get_options( const char *vips_filename );
|
||||
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new( void );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_memory( void );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_memory( void );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_from_file( const char *name, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_from_file_RW( const char *filename );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_from_file_raw( const char *filename,
|
||||
int xsize, int ysize, int bands, guint64 offset );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_from_memory( const void *data, size_t size,
|
||||
int width, int height, int bands, VipsBandFormat format );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_from_memory_copy( const void *data, size_t size,
|
||||
int width, int height, int bands, VipsBandFormat format );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_from_buffer( const void *buf, size_t len,
|
||||
const char *option_string, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_from_source( VipsSource *source,
|
||||
const char *option_string, ... ) __attribute__((sentinel));
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_matrix( int width, int height );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_matrixv( int width, int height, ... );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_matrix_from_array( int width, int height,
|
||||
const double *array, int size );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_matrix_from_array( int width, int height,
|
||||
const double *array, int size );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_from_image( VipsImage *image,
|
||||
const double *c, int n );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_from_image1( VipsImage *image, double c );
|
||||
|
||||
VIPS_API
|
||||
void vips_image_set_delete_on_close( VipsImage *image,
|
||||
gboolean delete_on_close );
|
||||
VIPS_API
|
||||
guint64 vips_get_disc_threshold( void );
|
||||
VIPS_API
|
||||
VipsImage *vips_image_new_temp_file( const char *format );
|
||||
|
||||
VIPS_API
|
||||
int vips_image_write( VipsImage *image, VipsImage *out );
|
||||
VIPS_API
|
||||
int vips_image_write_to_file( VipsImage *image, const char *name, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_image_write_to_buffer( VipsImage *in,
|
||||
const char *suffix, void **buf, size_t *size, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_image_write_to_target( VipsImage *in,
|
||||
const char *suffix, VipsTarget *target, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
void *vips_image_write_to_memory( VipsImage *in, size_t *size );
|
||||
|
||||
VIPS_API
|
||||
int vips_image_decode_predict( VipsImage *in,
|
||||
int *bands, VipsBandFormat *format );
|
||||
VIPS_API
|
||||
int vips_image_decode( VipsImage *in, VipsImage **out );
|
||||
VIPS_API
|
||||
int vips_image_encode( VipsImage *in, VipsImage **out, VipsCoding coding );
|
||||
|
||||
VIPS_API
|
||||
gboolean vips_image_isMSBfirst( VipsImage *image );
|
||||
VIPS_API
|
||||
gboolean vips_image_isfile( VipsImage *image );
|
||||
VIPS_API
|
||||
gboolean vips_image_ispartial( VipsImage *image );
|
||||
VIPS_API
|
||||
gboolean vips_image_hasalpha( VipsImage *image );
|
||||
|
||||
VIPS_API
|
||||
VipsImage *vips_image_copy_memory( VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_wio_input( VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_pio_input( VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_pio_output( VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_inplace( VipsImage *image );
|
||||
VIPS_API
|
||||
int vips_image_write_prepare( VipsImage *image );
|
||||
|
||||
VIPS_API
|
||||
int vips_image_write_line( VipsImage *image, int ypos, VipsPel *linebuffer );
|
||||
|
||||
VIPS_API
|
||||
gboolean vips_band_format_isint( VipsBandFormat format );
|
||||
VIPS_API
|
||||
gboolean vips_band_format_isuint( VipsBandFormat format );
|
||||
VIPS_API
|
||||
gboolean vips_band_format_is8bit( VipsBandFormat format );
|
||||
VIPS_API
|
||||
gboolean vips_band_format_isfloat( VipsBandFormat format );
|
||||
VIPS_API
|
||||
gboolean vips_band_format_iscomplex( VipsBandFormat format );
|
||||
|
||||
VIPS_API
|
||||
int vips_system( const char *cmd_format, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
/* Defined in type.c but declared here, since they use VipsImage.
|
||||
*/
|
||||
VIPS_API
|
||||
VipsArrayImage *vips_array_image_new( VipsImage **array, int n );
|
||||
VIPS_API
|
||||
VipsArrayImage *vips_array_image_newv( int n, ... );
|
||||
VIPS_API
|
||||
VipsArrayImage *vips_array_image_new_from_string( const char *string,
|
||||
VipsAccess flags );
|
||||
VIPS_API
|
||||
VipsArrayImage *vips_array_image_empty( void );
|
||||
VIPS_API
|
||||
VipsArrayImage *vips_array_image_append( VipsArrayImage *array,
|
||||
VipsImage *image );
|
||||
VIPS_API
|
||||
VipsImage **vips_array_image_get( VipsArrayImage *array, int *n );
|
||||
VIPS_API
|
||||
VipsImage **vips_value_get_array_image( const GValue *value, int *n );
|
||||
VIPS_API
|
||||
void vips_value_set_array_image( GValue *value, int n );
|
||||
|
||||
/* Defined in reorder.c, but really a function on image.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips_reorder_prepare_many( VipsImage *image,
|
||||
VipsRegion **regions, VipsRect *r );
|
||||
VIPS_API
|
||||
void vips_reorder_margin_hint( VipsImage *image, int margin );
|
||||
|
||||
VIPS_API
|
||||
void vips_image_free_buffer( VipsImage *image, void *buffer );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -93,7 +93,13 @@ typedef struct _VipsMeta {
|
||||
GValue value; /* copy of value */
|
||||
} VipsMeta;
|
||||
|
||||
/* TODO(kleisauke): VIPS_API is required by the magick module.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips__exif_parse( VipsImage *image );
|
||||
/* TODO(kleisauke): VIPS_API is required by the heif module.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips__exif_update( VipsImage *image );
|
||||
|
||||
void vips_check_init( void );
|
||||
@ -151,7 +157,19 @@ int vips__object_leak( void );
|
||||
*/
|
||||
int vips__open_image_read( const char *filename );
|
||||
int vips__open_image_write( const char *filename, gboolean temp );
|
||||
|
||||
/* im_image_open_input() needs to have this visible.
|
||||
*/
|
||||
#if VIPS_ENABLE_DEPRECATED
|
||||
VIPS_API
|
||||
#endif
|
||||
int vips_image_open_input( VipsImage *image );
|
||||
|
||||
/* im_image_open_output() needs to have this visible.
|
||||
*/
|
||||
#if VIPS_ENABLE_DEPRECATED
|
||||
VIPS_API
|
||||
#endif
|
||||
int vips_image_open_output( VipsImage *image );
|
||||
|
||||
void vips__link_break_all( VipsImage *im );
|
||||
@ -161,9 +179,27 @@ void *vips__link_map( VipsImage *image, gboolean upstream,
|
||||
gboolean vips__mmap_supported( int fd );
|
||||
void *vips__mmap( int fd, int writeable, size_t length, gint64 offset );
|
||||
int vips__munmap( const void *start, size_t length );
|
||||
int vips_mapfile( VipsImage * );
|
||||
int vips_mapfilerw( VipsImage * );
|
||||
int vips_remapfilerw( VipsImage * );
|
||||
|
||||
/* im_mapfile() needs to have this visible.
|
||||
*/
|
||||
#if VIPS_ENABLE_DEPRECATED
|
||||
VIPS_API
|
||||
#endif
|
||||
int vips_mapfile( VipsImage *image );
|
||||
|
||||
/* im_mapfilerw() needs to have this visible.
|
||||
*/
|
||||
#if VIPS_ENABLE_DEPRECATED
|
||||
VIPS_API
|
||||
#endif
|
||||
int vips_mapfilerw( VipsImage *image );
|
||||
|
||||
/* im_remapfilerw() needs to have this visible.
|
||||
*/
|
||||
#if VIPS_ENABLE_DEPRECATED
|
||||
VIPS_API
|
||||
#endif
|
||||
int vips_remapfilerw( VipsImage *image );
|
||||
|
||||
void vips__buffer_init( void );
|
||||
void vips__buffer_shutdown( void );
|
||||
@ -172,11 +208,26 @@ void vips__copy_4byte( int swap, unsigned char *to, unsigned char *from );
|
||||
void vips__copy_2byte( gboolean swap, unsigned char *to, unsigned char *from );
|
||||
|
||||
guint32 vips__file_magic( const char *filename );
|
||||
/* TODO(kleisauke): VIPS_API is required by vipsheader.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips__has_extension_block( VipsImage *im );
|
||||
/* TODO(kleisauke): VIPS_API is required by vipsheader.
|
||||
*/
|
||||
VIPS_API
|
||||
void *vips__read_extension_block( VipsImage *im, int *size );
|
||||
/* TODO(kleisauke): VIPS_API is required by vipsedit.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips__write_extension_block( VipsImage *im, void *buf, int size );
|
||||
int vips__writehist( VipsImage *image );
|
||||
/* TODO(kleisauke): VIPS_API is required by vipsedit.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips__read_header_bytes( VipsImage *im, unsigned char *from );
|
||||
/* TODO(kleisauke): VIPS_API is required by vipsedit.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips__write_header_bytes( VipsImage *im, unsigned char *to );
|
||||
int vips__image_meta_copy( VipsImage *dst, const VipsImage *src );
|
||||
|
||||
@ -186,6 +237,12 @@ int vips_image_written( VipsImage *image );
|
||||
void vips_image_preeval( VipsImage *image );
|
||||
void vips_image_eval( VipsImage *image, guint64 processed );
|
||||
void vips_image_posteval( VipsImage *image );
|
||||
|
||||
/* im_openout() needs to have this visible.
|
||||
*/
|
||||
#if VIPS_ENABLE_DEPRECATED
|
||||
VIPS_API
|
||||
#endif
|
||||
VipsImage *vips_image_new_mode( const char *filename, const char *mode );
|
||||
|
||||
int vips__formatalike_vec( VipsImage **in, VipsImage **out, int n );
|
||||
@ -206,6 +263,9 @@ int vips__bandalike( const char *domain,
|
||||
VipsPel *vips__vector_to_pels( const char *domain,
|
||||
int bands, VipsBandFormat format, VipsCoding coding,
|
||||
double *real, double *imag, int n );
|
||||
/* TODO(kleisauke): VIPS_API is required by the poppler module.
|
||||
*/
|
||||
VIPS_API
|
||||
VipsPel *vips__vector_to_ink( const char *domain,
|
||||
VipsImage *im, double *real, double *imag, int n );
|
||||
|
||||
@ -248,6 +308,9 @@ void vips_mosaicing_operation_init( void );
|
||||
void vips_cimg_operation_init( void );
|
||||
|
||||
guint64 vips__parse_size( const char *size_string );
|
||||
/* TODO(kleisauke): VIPS_API is required by vipsthumbnail.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips__substitute( char *buf, size_t len, char *sub );
|
||||
|
||||
int vips_check_coding_labq( const char *domain, VipsImage *im );
|
||||
@ -258,6 +321,9 @@ int vips__byteswap_bool( VipsImage *in, VipsImage **out, gboolean swap );
|
||||
|
||||
char *vips__xml_properties( VipsImage *image );
|
||||
|
||||
/* TODO(kleisauke): VIPS_API is required by the poppler module.
|
||||
*/
|
||||
VIPS_API
|
||||
void vips__premultiplied_bgra2rgba( guint32 * restrict p, int n );
|
||||
void vips__bgra2rgba( guint32 * restrict p, int n );
|
||||
void vips__Lab2LabQ_vec( VipsPel *out, float *in, int width );
|
||||
|
@ -94,11 +94,16 @@ typedef struct _VipsInterpolateClass {
|
||||
|
||||
/* Don't put spaces around void here, it breaks gtk-doc.
|
||||
*/
|
||||
VIPS_API
|
||||
GType vips_interpolate_get_type(void);
|
||||
VIPS_API
|
||||
void vips_interpolate( VipsInterpolate *interpolate,
|
||||
void *out, VipsRegion *in, double x, double y );
|
||||
VIPS_API
|
||||
VipsInterpolateMethod vips_interpolate_get_method( VipsInterpolate *interpolate );
|
||||
VIPS_API
|
||||
int vips_interpolate_get_window_size( VipsInterpolate *interpolate );
|
||||
VIPS_API
|
||||
int vips_interpolate_get_window_offset( VipsInterpolate *interpolate );
|
||||
|
||||
/* How many bits of precision we keep for transformations, ie. how many
|
||||
@ -117,12 +122,15 @@ int vips_interpolate_get_window_offset( VipsInterpolate *interpolate );
|
||||
|
||||
/* Convenience: return static interpolators, no need to unref.
|
||||
*/
|
||||
VIPS_API
|
||||
VipsInterpolate *vips_interpolate_nearest_static( void );
|
||||
VIPS_API
|
||||
VipsInterpolate *vips_interpolate_bilinear_static( void );
|
||||
|
||||
/* Convenience: make an interpolator from a nickname. g_object_unref() when
|
||||
* you're done with it.
|
||||
*/
|
||||
VIPS_API
|
||||
VipsInterpolate *vips_interpolate_new( const char *nickname );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -61,60 +61,99 @@ typedef struct im__DOUBLEMASK {
|
||||
|
||||
#define IM_MASK( M, X, Y ) ((M)->coeff[(X) + (Y) * (M)->xsize])
|
||||
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_create_imask( const char *filename, int xsize, int ysize );
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_create_imaskv( const char *filename, int xsize, int ysize, ... );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_create_dmask( const char *filename, int xsize, int ysize );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_create_dmaskv( const char *filename, int xsize, int ysize, ... );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_read_imask( const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_read_dmask( const char *filename );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
void im_print_imask( INTMASK *in );
|
||||
VIPS_DEPRECATED
|
||||
void im_print_dmask( DOUBLEMASK *in );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_write_imask( INTMASK *in );
|
||||
VIPS_DEPRECATED
|
||||
int im_write_dmask( DOUBLEMASK *in );
|
||||
VIPS_DEPRECATED
|
||||
int im_write_imask_name( INTMASK *in, const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
int im_write_dmask_name( DOUBLEMASK *in, const char *filename );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_free_imask( INTMASK *in );
|
||||
VIPS_DEPRECATED
|
||||
int im_free_dmask( DOUBLEMASK *in );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_log_imask( const char *filename, double sigma, double min_ampl );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_log_dmask( const char *filename, double sigma, double min_ampl );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_gauss_imask( const char *filename, double sigma, double min_ampl );
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_gauss_imask_sep( const char *filename,
|
||||
double sigma, double min_ampl );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_gauss_dmask( const char *filename,
|
||||
double sigma, double min_ampl );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_gauss_dmask_sep( const char *filename,
|
||||
double sigma, double min_ampl );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_dup_imask( INTMASK *in, const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_dup_dmask( DOUBLEMASK *in, const char *filename );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_scale_dmask( DOUBLEMASK *in, const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
void im_norm_dmask( DOUBLEMASK *mask );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_imask2dmask( INTMASK *in, const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_dmask2imask( DOUBLEMASK *in, const char *filename );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_rotate_imask90( INTMASK *in, const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_rotate_imask45( INTMASK *in, const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_rotate_dmask90( DOUBLEMASK *in, const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_rotate_dmask45( DOUBLEMASK *in, const char *filename );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_mattrn( DOUBLEMASK *in, const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_matcat( DOUBLEMASK *top, DOUBLEMASK *bottom,
|
||||
const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_matmul( DOUBLEMASK *in1, DOUBLEMASK *in2, const char *filename );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_lu_decomp( const DOUBLEMASK *mat, const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
int im_lu_solve( const DOUBLEMASK *lu, double *vec );
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_matinv( const DOUBLEMASK *mat, const char *filename );
|
||||
VIPS_DEPRECATED
|
||||
int im_matinv_inplace( DOUBLEMASK *mat );
|
||||
|
||||
VIPS_DEPRECATED
|
||||
DOUBLEMASK *im_local_dmask( struct _VipsImage *out, DOUBLEMASK *mask );
|
||||
VIPS_DEPRECATED
|
||||
INTMASK *im_local_imask( struct _VipsImage *out, INTMASK *mask );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -64,21 +64,31 @@ G_STMT_START { \
|
||||
#define VIPS_ARRAY( OBJ, N, T ) \
|
||||
((T *) vips_malloc( VIPS_OBJECT( OBJ ), (N) * sizeof( T )))
|
||||
|
||||
VIPS_API
|
||||
void *vips_malloc( VipsObject *object, size_t size );
|
||||
VIPS_API
|
||||
char *vips_strdup( VipsObject *object, const char *str );
|
||||
|
||||
VIPS_API
|
||||
void vips_tracked_free( void *s );
|
||||
VIPS_API
|
||||
void *vips_tracked_malloc( size_t size );
|
||||
VIPS_API
|
||||
size_t vips_tracked_get_mem( void );
|
||||
VIPS_API
|
||||
size_t vips_tracked_get_mem_highwater( void );
|
||||
VIPS_API
|
||||
int vips_tracked_get_allocs( void );
|
||||
|
||||
VIPS_API
|
||||
int vips_tracked_open( const char *pathname, int flags, int mode );
|
||||
VIPS_API
|
||||
int vips_tracked_close( int fd );
|
||||
VIPS_API
|
||||
int vips_tracked_get_files( void );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
#endif /*IM_MEMORY_H*/
|
||||
#endif /*VIPS_MEMORY_H*/
|
||||
|
@ -44,19 +44,25 @@ typedef enum {
|
||||
VIPS_OPERATION_MORPHOLOGY_LAST
|
||||
} VipsOperationMorphology;
|
||||
|
||||
VIPS_API
|
||||
int vips_morph( VipsImage *in, VipsImage **out, VipsImage *mask,
|
||||
VipsOperationMorphology morph, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rank( VipsImage *in, VipsImage **out,
|
||||
int width, int height, int index, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_median( VipsImage *in, VipsImage **out, int size, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_countlines( VipsImage *in, double *nolines,
|
||||
VipsDirection direction, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_labelregions( VipsImage *in, VipsImage **mask, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_fill_nearest( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
|
@ -38,30 +38,37 @@
|
||||
extern "C" {
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
VIPS_API
|
||||
int vips_merge( VipsImage *ref, VipsImage *sec, VipsImage **out,
|
||||
VipsDirection direction, int dx, int dy, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_mosaic( VipsImage *ref, VipsImage *sec, VipsImage **out,
|
||||
VipsDirection direction, int xref, int yref, int xsec, int ysec, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_mosaic1( VipsImage *ref, VipsImage *sec, VipsImage **out,
|
||||
VipsDirection direction,
|
||||
int xr1, int yr1, int xs1, int ys1,
|
||||
int xr2, int yr2, int xs2, int ys2, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_match( VipsImage *ref, VipsImage *sec, VipsImage **out,
|
||||
int xr1, int yr1, int xs1, int ys1,
|
||||
int xr2, int yr2, int xs2, int ys2, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_globalbalance( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_remosaic( VipsImage *in, VipsImage **out,
|
||||
const char *old_str, const char *new_str, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_matrixinvert( VipsImage *m, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
|
@ -302,29 +302,38 @@ typedef struct _VipsArgumentInstance {
|
||||
*/
|
||||
typedef GHashTable VipsArgumentTable;
|
||||
|
||||
VIPS_API
|
||||
int vips_argument_get_id( void );
|
||||
void vips__object_set_member( VipsObject *object, GParamSpec *pspec,
|
||||
GObject **member, GObject *argument );
|
||||
typedef void *(*VipsArgumentMapFn)( VipsObject *object, GParamSpec *pspec,
|
||||
VipsArgumentClass *argument_class,
|
||||
VipsArgumentInstance *argument_instance, void *a, void *b );
|
||||
VIPS_API
|
||||
void *vips_argument_map( VipsObject *object,
|
||||
VipsArgumentMapFn fn, void *a, void *b );
|
||||
VIPS_API
|
||||
int vips_object_get_args( VipsObject *object,
|
||||
const char ***names, int **flags, int *n_args );
|
||||
typedef void *(*VipsArgumentClassMapFn)( VipsObjectClass *object_class,
|
||||
GParamSpec *pspec,
|
||||
VipsArgumentClass *argument_class, void *a, void *b );
|
||||
VIPS_API
|
||||
void *vips_argument_class_map( VipsObjectClass *object_class,
|
||||
VipsArgumentClassMapFn fn, void *a, void *b );
|
||||
VIPS_API
|
||||
gboolean vips_argument_class_needsstring( VipsArgumentClass *argument_class );
|
||||
VIPS_API
|
||||
int vips_object_get_argument( VipsObject *object, const char *name,
|
||||
GParamSpec **pspec,
|
||||
VipsArgumentClass **argument_class,
|
||||
VipsArgumentInstance **argument_instance );
|
||||
VIPS_API
|
||||
gboolean vips_object_argument_isset( VipsObject *object, const char *name );
|
||||
VIPS_API
|
||||
VipsArgumentFlags vips_object_get_argument_flags( VipsObject *object,
|
||||
const char *name );
|
||||
VIPS_API
|
||||
int vips_object_get_argument_priority( VipsObject *object, const char *name );
|
||||
|
||||
/* We have to loop over an objects args in several places, and we can't always
|
||||
@ -568,83 +577,124 @@ struct _VipsObjectClass {
|
||||
void (*_vips_reserved4)( void );
|
||||
};
|
||||
|
||||
VIPS_API
|
||||
gboolean vips_value_is_null( GParamSpec *psoec, const GValue *value );
|
||||
VIPS_API
|
||||
void vips_object_set_property( GObject *gobject,
|
||||
guint property_id, const GValue *value, GParamSpec *pspec );
|
||||
VIPS_API
|
||||
void vips_object_get_property( GObject *gobject,
|
||||
guint property_id, GValue *value, GParamSpec *pspec );
|
||||
|
||||
VIPS_API
|
||||
void vips_object_preclose( VipsObject *object );
|
||||
VIPS_API
|
||||
int vips_object_build( VipsObject *object );
|
||||
|
||||
VIPS_API
|
||||
void vips_object_summary_class( VipsObjectClass *klass, VipsBuf *buf );
|
||||
VIPS_API
|
||||
void vips_object_summary( VipsObject *object, VipsBuf *buf );
|
||||
VIPS_API
|
||||
void vips_object_dump( VipsObject *object, VipsBuf *buf );
|
||||
|
||||
VIPS_API
|
||||
void vips_object_print_summary_class( VipsObjectClass *klass );
|
||||
VIPS_API
|
||||
void vips_object_print_summary( VipsObject *object );
|
||||
VIPS_API
|
||||
void vips_object_print_dump( VipsObject *object );
|
||||
VIPS_API
|
||||
void vips_object_print_name( VipsObject *object );
|
||||
|
||||
VIPS_API
|
||||
gboolean vips_object_sanity( VipsObject *object );
|
||||
|
||||
/* Don't put spaces around void here, it breaks gtk-doc.
|
||||
*/
|
||||
VIPS_API
|
||||
GType vips_object_get_type(void);
|
||||
|
||||
VIPS_API
|
||||
void vips_object_class_install_argument( VipsObjectClass *cls,
|
||||
GParamSpec *pspec, VipsArgumentFlags flags,
|
||||
int priority, guint offset );
|
||||
VIPS_API
|
||||
int vips_object_set_argument_from_string( VipsObject *object,
|
||||
const char *name, const char *value );
|
||||
VIPS_API
|
||||
gboolean vips_object_argument_needsstring( VipsObject *object,
|
||||
const char *name );
|
||||
VIPS_API
|
||||
int vips_object_get_argument_to_string( VipsObject *object,
|
||||
const char *name, const char *arg );
|
||||
VIPS_API
|
||||
int vips_object_set_required( VipsObject *object, const char *value );
|
||||
|
||||
typedef void *(*VipsObjectSetArguments)( VipsObject *object, void *a, void *b );
|
||||
VIPS_API
|
||||
VipsObject *vips_object_new( GType type,
|
||||
VipsObjectSetArguments set, void *a, void *b );
|
||||
|
||||
VIPS_API
|
||||
int vips_object_set_valist( VipsObject *object, va_list ap );
|
||||
VIPS_API
|
||||
int vips_object_set( VipsObject *object, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_object_set_from_string( VipsObject *object, const char *string );
|
||||
|
||||
VIPS_API
|
||||
VipsObject *vips_object_new_from_string( VipsObjectClass *object_class,
|
||||
const char *p );
|
||||
VIPS_API
|
||||
void vips_object_to_string( VipsObject *object, VipsBuf *buf );
|
||||
|
||||
VIPS_API
|
||||
void *vips_object_map( VipsSListMap2Fn fn, void *a, void *b );
|
||||
|
||||
typedef void *(*VipsTypeMapFn)( GType type, void *a );
|
||||
typedef void *(*VipsTypeMap2Fn)( GType type, void *a, void *b );
|
||||
typedef void *(*VipsClassMapFn)( VipsObjectClass *cls, void *a );
|
||||
VIPS_API
|
||||
void *vips_type_map( GType base, VipsTypeMap2Fn fn, void *a, void *b );
|
||||
VIPS_API
|
||||
void *vips_type_map_all( GType base, VipsTypeMapFn fn, void *a );
|
||||
VIPS_API
|
||||
int vips_type_depth( GType type );
|
||||
VIPS_API
|
||||
GType vips_type_find( const char *basename, const char *nickname );
|
||||
VIPS_API
|
||||
const char *vips_nickname_find( GType type );
|
||||
|
||||
VIPS_API
|
||||
void *vips_class_map_all( GType type, VipsClassMapFn fn, void *a );
|
||||
VIPS_API
|
||||
const VipsObjectClass *vips_class_find( const char *basename,
|
||||
const char *nickname );
|
||||
|
||||
VIPS_API
|
||||
VipsObject **vips_object_local_array( VipsObject *parent, int n );
|
||||
|
||||
VIPS_API
|
||||
void vips_object_local_cb( VipsObject *vobject, GObject *gobject );
|
||||
#define vips_object_local( V, G ) \
|
||||
(g_signal_connect( V, "close", G_CALLBACK( vips_object_local_cb ), G ))
|
||||
|
||||
VIPS_API
|
||||
void vips_object_set_static( VipsObject *object, gboolean static_object );
|
||||
VIPS_API
|
||||
void vips_object_print_all( void );
|
||||
VIPS_API
|
||||
void vips_object_sanity_all( void );
|
||||
|
||||
VIPS_API
|
||||
void vips_object_rewind( VipsObject *object );
|
||||
|
||||
VIPS_API
|
||||
void vips_object_unref_outputs( VipsObject *object );
|
||||
|
||||
VIPS_API
|
||||
const char *vips_object_get_description( VipsObject *object );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -102,47 +102,77 @@ typedef struct _VipsOperationClass {
|
||||
|
||||
/* Don't put spaces around void here, it breaks gtk-doc.
|
||||
*/
|
||||
VIPS_API
|
||||
GType vips_operation_get_type(void);
|
||||
|
||||
VIPS_API
|
||||
VipsOperationFlags vips_operation_get_flags( VipsOperation *operation );
|
||||
VIPS_API
|
||||
void vips_operation_class_print_usage( VipsOperationClass *operation_class );
|
||||
VIPS_API
|
||||
void vips_operation_invalidate( VipsOperation *operation );
|
||||
|
||||
VIPS_API
|
||||
int vips_operation_call_valist( VipsOperation *operation, va_list ap );
|
||||
VIPS_API
|
||||
VipsOperation *vips_operation_new( const char *name );
|
||||
VIPS_API
|
||||
int vips_call_required_optional( VipsOperation **operation,
|
||||
va_list required, va_list optional );
|
||||
VIPS_API
|
||||
int vips_call( const char *operation_name, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_call_split( const char *operation_name, va_list optional, ... );
|
||||
VIPS_API
|
||||
int vips_call_split_option_string( const char *operation_name,
|
||||
const char *option_string, va_list optional, ... );
|
||||
|
||||
VIPS_API
|
||||
void vips_call_options( GOptionGroup *group, VipsOperation *operation );
|
||||
VIPS_API
|
||||
int vips_call_argv( VipsOperation *operation, int argc, char **argv );
|
||||
|
||||
VIPS_API
|
||||
void vips_cache_drop_all( void );
|
||||
VIPS_API
|
||||
VipsOperation *vips_cache_operation_lookup( VipsOperation *operation );
|
||||
VIPS_API
|
||||
void vips_cache_operation_add( VipsOperation *operation );
|
||||
VIPS_API
|
||||
int vips_cache_operation_buildp( VipsOperation **operation );
|
||||
VIPS_API
|
||||
VipsOperation *vips_cache_operation_build( VipsOperation *operation );
|
||||
VIPS_API
|
||||
void vips_cache_print( void );
|
||||
VIPS_API
|
||||
void vips_cache_set_max( int max );
|
||||
VIPS_API
|
||||
void vips_cache_set_max_mem( size_t max_mem );
|
||||
VIPS_API
|
||||
int vips_cache_get_max( void );
|
||||
VIPS_API
|
||||
int vips_cache_get_size( void );
|
||||
VIPS_API
|
||||
size_t vips_cache_get_max_mem( void );
|
||||
VIPS_API
|
||||
int vips_cache_get_max_files( void );
|
||||
VIPS_API
|
||||
void vips_cache_set_max_files( int max_files );
|
||||
VIPS_API
|
||||
void vips_cache_set_dump( gboolean dump );
|
||||
VIPS_API
|
||||
void vips_cache_set_trace( gboolean trace );
|
||||
|
||||
/* Part of threadpool, really, but we want these in a header that gets scanned
|
||||
* for our typelib.
|
||||
*/
|
||||
VIPS_API
|
||||
void vips_concurrency_set( int concurrency );
|
||||
VIPS_API
|
||||
int vips_concurrency_get( void );
|
||||
|
||||
VIPS_API
|
||||
void vips_operation_block_set( const char *name, gboolean state );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -71,7 +71,9 @@ typedef struct {
|
||||
size_t length; /* Size of window */
|
||||
} VipsWindow;
|
||||
|
||||
VIPS_API
|
||||
int vips_window_unref( VipsWindow *window );
|
||||
VIPS_API
|
||||
void vips_window_print( VipsWindow *window );
|
||||
|
||||
/* Per-thread buffer state. Held in a GPrivate.
|
||||
@ -114,14 +116,22 @@ typedef struct _VipsBuffer {
|
||||
size_t bsize; /* Size of private malloc() */
|
||||
} VipsBuffer;
|
||||
|
||||
VIPS_API
|
||||
void vips_buffer_dump_all( void );
|
||||
VIPS_API
|
||||
void vips_buffer_done( VipsBuffer *buffer );
|
||||
VIPS_API
|
||||
void vips_buffer_undone( VipsBuffer *buffer );
|
||||
VIPS_API
|
||||
void vips_buffer_unref( VipsBuffer *buffer );
|
||||
VIPS_API
|
||||
VipsBuffer *vips_buffer_new( struct _VipsImage *im, VipsRect *area );
|
||||
VIPS_API
|
||||
VipsBuffer *vips_buffer_ref( struct _VipsImage *im, VipsRect *area );
|
||||
VIPS_API
|
||||
VipsBuffer *vips_buffer_unref_ref( VipsBuffer *buffer,
|
||||
struct _VipsImage *im, VipsRect *area );
|
||||
VIPS_API
|
||||
void vips_buffer_print( VipsBuffer *buffer );
|
||||
|
||||
void vips__render_shutdown( void );
|
||||
@ -155,33 +165,48 @@ typedef enum _RegionType {
|
||||
struct _VipsRegion;
|
||||
void vips__region_take_ownership( struct _VipsRegion *reg );
|
||||
void vips__region_check_ownership( struct _VipsRegion *reg );
|
||||
/* TODO(kleisauke): VIPS_API is required by vipsdisp.
|
||||
*/
|
||||
VIPS_API
|
||||
void vips__region_no_ownership( struct _VipsRegion *reg );
|
||||
|
||||
typedef int (*VipsRegionFillFn)( struct _VipsRegion *, void * );
|
||||
VIPS_API
|
||||
int vips_region_fill( struct _VipsRegion *reg,
|
||||
const VipsRect *r, VipsRegionFillFn fn, void *a );
|
||||
|
||||
int vips__image_wio_output( struct _VipsImage *image );
|
||||
int vips__image_pio_output( struct _VipsImage *image );
|
||||
|
||||
/* VIPS_ARGUMENT_FOR_ALL() needs to have this visible.
|
||||
*/
|
||||
VIPS_API
|
||||
VipsArgumentInstance *vips__argument_get_instance(
|
||||
VipsArgumentClass *argument_class,
|
||||
VipsObject *object);
|
||||
VipsArgument *vips__argument_table_lookup( VipsArgumentTable *table,
|
||||
GParamSpec *pspec);
|
||||
|
||||
/* im_demand_hint_array() needs to have this visible.
|
||||
*/
|
||||
#if VIPS_ENABLE_DEPRECATED
|
||||
VIPS_API
|
||||
#endif
|
||||
void vips__demand_hint_array( struct _VipsImage *image,
|
||||
int hint, struct _VipsImage **in );
|
||||
/* im_cp_desc_array() needs to have this visible.
|
||||
*/
|
||||
#if VIPS_ENABLE_DEPRECATED
|
||||
VIPS_API
|
||||
#endif
|
||||
int vips__image_copy_fields_array( struct _VipsImage *out,
|
||||
struct _VipsImage *in[] );
|
||||
|
||||
void vips__region_count_pixels( struct _VipsRegion *region, const char *nickname );
|
||||
VIPS_API
|
||||
void vips_region_dump_all( void );
|
||||
|
||||
/* Deprecated.
|
||||
*/
|
||||
int vips__init( const char *argv0 );
|
||||
size_t vips__get_sizeof_vipsobject( void );
|
||||
VIPS_API
|
||||
int vips_region_prepare_many( struct _VipsRegion **reg, const VipsRect *r );
|
||||
|
||||
/* Handy for debugging.
|
||||
@ -190,7 +215,8 @@ int vips__view_image( struct _VipsImage *image );
|
||||
|
||||
/* Pre 8.7 libvipses used this for allocating argument ids.
|
||||
*/
|
||||
extern int _vips__argument_id;
|
||||
VIPS_API
|
||||
int _vips__argument_id;
|
||||
|
||||
void vips__meta_init( void );
|
||||
|
||||
|
@ -50,17 +50,27 @@ typedef struct _VipsRect {
|
||||
#define VIPS_RECT_HCENTRE(R) ((R)->left + (R)->width / 2)
|
||||
#define VIPS_RECT_VCENTRE(R) ((R)->top + (R)->height / 2)
|
||||
|
||||
VIPS_API
|
||||
gboolean vips_rect_isempty( const VipsRect *r );
|
||||
VIPS_API
|
||||
gboolean vips_rect_includespoint( const VipsRect *r, int x, int y );
|
||||
VIPS_API
|
||||
gboolean vips_rect_includesrect( const VipsRect *r1, const VipsRect *r2 );
|
||||
VIPS_API
|
||||
gboolean vips_rect_equalsrect( const VipsRect *r1, const VipsRect *r2 );
|
||||
VIPS_API
|
||||
gboolean vips_rect_overlapsrect( const VipsRect *r1, const VipsRect *r2 );
|
||||
VIPS_API
|
||||
void vips_rect_marginadjust( VipsRect *r, int n );
|
||||
VIPS_API
|
||||
void vips_rect_intersectrect( const VipsRect *r1, const VipsRect *r2,
|
||||
VipsRect *out );
|
||||
VIPS_API
|
||||
void vips_rect_unionrect( const VipsRect *r1, const VipsRect *r2,
|
||||
VipsRect *out );
|
||||
VIPS_API
|
||||
VipsRect *vips_rect_dup( const VipsRect *r );
|
||||
VIPS_API
|
||||
void vips_rect_normalise( VipsRect *r );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -130,37 +130,56 @@ typedef struct _VipsRegionClass {
|
||||
|
||||
/* Don't put spaces around void here, it breaks gtk-doc.
|
||||
*/
|
||||
VIPS_API
|
||||
GType vips_region_get_type(void);
|
||||
|
||||
VIPS_API
|
||||
VipsRegion *vips_region_new( VipsImage *image );
|
||||
|
||||
VIPS_API
|
||||
int vips_region_buffer( VipsRegion *reg, const VipsRect *r );
|
||||
VIPS_API
|
||||
int vips_region_image( VipsRegion *reg, const VipsRect *r );
|
||||
VIPS_API
|
||||
int vips_region_region( VipsRegion *reg, VipsRegion *dest,
|
||||
const VipsRect *r, int x, int y );
|
||||
VIPS_API
|
||||
int vips_region_equalsregion( VipsRegion *reg1, VipsRegion *reg2 );
|
||||
VIPS_API
|
||||
int vips_region_position( VipsRegion *reg, int x, int y );
|
||||
|
||||
VIPS_API
|
||||
void vips_region_paint( VipsRegion *reg, const VipsRect *r, int value );
|
||||
VIPS_API
|
||||
void vips_region_paint_pel( VipsRegion *reg,
|
||||
const VipsRect *r, const VipsPel *ink );
|
||||
VIPS_API
|
||||
void vips_region_black( VipsRegion *reg );
|
||||
VIPS_API
|
||||
void vips_region_copy( VipsRegion *reg, VipsRegion *dest,
|
||||
const VipsRect *r, int x, int y );
|
||||
VIPS_API
|
||||
int vips_region_shrink_method( VipsRegion *from, VipsRegion *to,
|
||||
const VipsRect *target, VipsRegionShrink method );
|
||||
VIPS_API
|
||||
int vips_region_shrink( VipsRegion *from, VipsRegion *to,
|
||||
const VipsRect *target );
|
||||
|
||||
VIPS_API
|
||||
int vips_region_prepare( VipsRegion *reg, const VipsRect *r );
|
||||
VIPS_API
|
||||
int vips_region_prepare_to( VipsRegion *reg,
|
||||
VipsRegion *dest, const VipsRect *r, int x, int y );
|
||||
|
||||
VIPS_API
|
||||
VipsPel *vips_region_fetch( VipsRegion *region,
|
||||
int left, int top, int width, int height, size_t *len );
|
||||
VIPS_API
|
||||
int vips_region_width( VipsRegion *region );
|
||||
VIPS_API
|
||||
int vips_region_height( VipsRegion *region );
|
||||
|
||||
VIPS_API
|
||||
void vips_region_invalidate( VipsRegion *reg );
|
||||
|
||||
/* Use this to count pixels passing through key points. Handy for spotting bad
|
||||
|
@ -56,47 +56,63 @@ typedef enum {
|
||||
VIPS_SIZE_LAST
|
||||
} VipsSize;
|
||||
|
||||
VIPS_API
|
||||
int vips_shrink( VipsImage *in, VipsImage **out,
|
||||
double hshrink, double vshrink, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_shrinkh( VipsImage *in, VipsImage **out, int hshrink, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_shrinkv( VipsImage *in, VipsImage **out, int vshrink, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_reduce( VipsImage *in, VipsImage **out,
|
||||
double hshrink, double vshrink, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_reduceh( VipsImage *in, VipsImage **out, double hshrink, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_reducev( VipsImage *in, VipsImage **out, double vshrink, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_thumbnail( const char *filename, VipsImage **out, int width, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_thumbnail_buffer( void *buf, size_t len, VipsImage **out,
|
||||
int width, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_thumbnail_image( VipsImage *in, VipsImage **out, int width, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_thumbnail_source( VipsSource *source, VipsImage **out,
|
||||
int width, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_similarity( VipsImage *in, VipsImage **out, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_rotate( VipsImage *in, VipsImage **out, double angle, ... )
|
||||
__attribute__((sentinel));
|
||||
VIPS_API
|
||||
int vips_affine( VipsImage *in, VipsImage **out,
|
||||
double a, double b, double c, double d, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_resize( VipsImage *in, VipsImage **out, double scale, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_mapim( VipsImage *in, VipsImage **out, VipsImage *index, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
VIPS_API
|
||||
int vips_quadratic( VipsImage *in, VipsImage **out, VipsImage *coeff, ... )
|
||||
__attribute__((sentinel));
|
||||
|
||||
|
@ -95,24 +95,30 @@ typedef struct _VipsSbufClass {
|
||||
|
||||
} VipsSbufClass;
|
||||
|
||||
VIPS_API
|
||||
GType vips_sbuf_get_type( void );
|
||||
|
||||
VIPS_API
|
||||
VipsSbuf *vips_sbuf_new_from_source( VipsSource *source );
|
||||
|
||||
VIPS_API
|
||||
void vips_sbuf_unbuffer( VipsSbuf *sbuf );
|
||||
|
||||
VIPS_API
|
||||
int vips_sbuf_getc( VipsSbuf *sbuf );
|
||||
#define VIPS_SBUF_GETC( S ) ( \
|
||||
(S)->read_point < (S)->chars_in_buffer ? \
|
||||
(S)->input_buffer[(S)->read_point++] : \
|
||||
vips_sbuf_getc( S ) \
|
||||
)
|
||||
VIPS_API
|
||||
void vips_sbuf_ungetc( VipsSbuf *sbuf );
|
||||
#define VIPS_SBUF_UNGETC( S ) { \
|
||||
if( (S)->read_point > 0 ) \
|
||||
(S)->read_point -= 1; \
|
||||
}
|
||||
|
||||
VIPS_API
|
||||
int vips_sbuf_require( VipsSbuf *sbuf, int require );
|
||||
#define VIPS_SBUF_REQUIRE( S, R ) ( \
|
||||
(S)->read_point + (R) <= (S)->chars_in_buffer ? \
|
||||
@ -122,9 +128,13 @@ int vips_sbuf_require( VipsSbuf *sbuf, int require );
|
||||
#define VIPS_SBUF_PEEK( S ) ((S)->input_buffer + (S)->read_point)
|
||||
#define VIPS_SBUF_FETCH( S ) ((S)->input_buffer[(S)->read_point++])
|
||||
|
||||
VIPS_API
|
||||
const char *vips_sbuf_get_line( VipsSbuf *sbuf );
|
||||
VIPS_API
|
||||
char *vips_sbuf_get_line_copy( VipsSbuf *sbuf );
|
||||
VIPS_API
|
||||
const char *vips_sbuf_get_non_whitespace( VipsSbuf *sbuf );
|
||||
VIPS_API
|
||||
int vips_sbuf_skip_whitespace( VipsSbuf *sbuf );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -55,11 +55,17 @@ typedef struct {
|
||||
GCond *cond;
|
||||
} VipsSemaphore;
|
||||
|
||||
VIPS_API
|
||||
int vips_semaphore_up( VipsSemaphore *s );
|
||||
VIPS_API
|
||||
int vips_semaphore_down( VipsSemaphore *s );
|
||||
VIPS_API
|
||||
int vips_semaphore_upn( VipsSemaphore *s, int n );
|
||||
VIPS_API
|
||||
int vips_semaphore_downn( VipsSemaphore *s, int n );
|
||||
VIPS_API
|
||||
void vips_semaphore_destroy( VipsSemaphore *s );
|
||||
VIPS_API
|
||||
void vips_semaphore_init( VipsSemaphore *s, int v, char *name );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -39,19 +39,26 @@ extern "C" {
|
||||
/* We need wrappers over g_mutex_new(), it was replaced by g_mutex_init() in
|
||||
* glib 2.32+
|
||||
*/
|
||||
VIPS_API
|
||||
GMutex *vips_g_mutex_new( void );
|
||||
VIPS_API
|
||||
void vips_g_mutex_free( GMutex * );
|
||||
|
||||
/* Same for GCond.
|
||||
*/
|
||||
VIPS_API
|
||||
GCond *vips_g_cond_new( void );
|
||||
VIPS_API
|
||||
void vips_g_cond_free( GCond * );
|
||||
|
||||
/* ... and for GThread.
|
||||
*/
|
||||
VIPS_API
|
||||
GThread *vips_g_thread_new( const char *, GThreadFunc, gpointer );
|
||||
VIPS_API
|
||||
void *vips_g_thread_join( GThread *thread );
|
||||
|
||||
VIPS_API
|
||||
gboolean vips_thread_isworker( void );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -110,12 +110,15 @@ typedef struct _VipsThreadStateClass {
|
||||
|
||||
} VipsThreadStateClass;
|
||||
|
||||
VIPS_API
|
||||
void *vips_thread_state_set( VipsObject *object, void *a, void *b );
|
||||
|
||||
/* Don't put spaces around void here, it breaks gtk-doc.
|
||||
*/
|
||||
VIPS_API
|
||||
GType vips_thread_state_get_type(void);
|
||||
|
||||
VIPS_API
|
||||
VipsThreadState *vips_thread_state_new( VipsImage *im, void *a );
|
||||
|
||||
/* Constructor for per-thread state.
|
||||
@ -139,12 +142,14 @@ typedef int (*VipsThreadpoolWorkFn)( VipsThreadState *state, void *a );
|
||||
*/
|
||||
typedef int (*VipsThreadpoolProgressFn)( void *a );
|
||||
|
||||
VIPS_API
|
||||
int vips_threadpool_run( VipsImage *im,
|
||||
VipsThreadStartFn start,
|
||||
VipsThreadpoolAllocateFn allocate,
|
||||
VipsThreadpoolWorkFn work,
|
||||
VipsThreadpoolProgressFn progress,
|
||||
void *a );
|
||||
VIPS_API
|
||||
void vips_get_tile_size( VipsImage *im,
|
||||
int *tile_width, int *tile_height, int *n_lines );
|
||||
|
||||
|
@ -50,7 +50,9 @@ typedef struct _VipsThing {
|
||||
* The #GType for a #VipsThing.
|
||||
*/
|
||||
#define VIPS_TYPE_THING (vips_thing_get_type())
|
||||
VIPS_API
|
||||
GType vips_thing_get_type(void);
|
||||
VIPS_API
|
||||
VipsThing *vips_thing_new( int i );
|
||||
|
||||
/* A ref-counted area of memory. Can hold arrays of things as well.
|
||||
@ -91,13 +93,20 @@ typedef struct _VipsArea {
|
||||
size_t sizeof_type;
|
||||
} VipsArea;
|
||||
|
||||
VIPS_API
|
||||
VipsArea *vips_area_copy( VipsArea *area );
|
||||
VIPS_API
|
||||
int vips_area_free_cb( void *mem, VipsArea *area );
|
||||
VIPS_API
|
||||
void vips_area_unref( VipsArea *area );
|
||||
|
||||
VIPS_API
|
||||
VipsArea *vips_area_new( VipsCallbackFn free_fn, void *data );
|
||||
VIPS_API
|
||||
VipsArea *vips_area_new_array( GType type, size_t sizeof_type, int n );
|
||||
VIPS_API
|
||||
VipsArea *vips_area_new_array_object( int n );
|
||||
VIPS_API
|
||||
void *vips_area_get_data( VipsArea *area,
|
||||
size_t *length, int *n, GType *type, size_t *sizeof_type );
|
||||
|
||||
@ -125,6 +134,7 @@ void *vips_area_get_data( VipsArea *area,
|
||||
*/
|
||||
#define VIPS_TYPE_AREA (vips_area_get_type())
|
||||
#define VIPS_AREA( X ) ((VipsArea *) (X))
|
||||
VIPS_API
|
||||
GType vips_area_get_type(void);
|
||||
|
||||
/**
|
||||
@ -133,6 +143,7 @@ GType vips_area_get_type(void);
|
||||
* The #GType for a #VipsSaveString.
|
||||
*/
|
||||
#define VIPS_TYPE_SAVE_STRING (vips_save_string_get_type())
|
||||
VIPS_API
|
||||
GType vips_save_string_get_type(void);
|
||||
|
||||
/**
|
||||
@ -146,8 +157,11 @@ typedef struct _VipsRefString {
|
||||
VipsArea area;
|
||||
} VipsRefString;
|
||||
|
||||
VIPS_API
|
||||
VipsRefString *vips_ref_string_new( const char *str );
|
||||
VIPS_API
|
||||
const char *vips_ref_string_get( VipsRefString *refstr, size_t *length );
|
||||
VIPS_API
|
||||
GType vips_ref_string_get_type(void);
|
||||
|
||||
/**
|
||||
@ -161,12 +175,17 @@ typedef struct _VipsBlob {
|
||||
VipsArea area;
|
||||
} VipsBlob;
|
||||
|
||||
VIPS_API
|
||||
VipsBlob *vips_blob_new( VipsCallbackFn free_fn,
|
||||
const void *data, size_t length );
|
||||
VIPS_API
|
||||
VipsBlob *vips_blob_copy( const void *data, size_t length );
|
||||
VIPS_API
|
||||
const void *vips_blob_get( VipsBlob *blob, size_t *length );
|
||||
VIPS_API
|
||||
void vips_blob_set( VipsBlob *blob,
|
||||
VipsCallbackFn free_fn, const void *data, size_t length );
|
||||
VIPS_API
|
||||
GType vips_blob_get_type(void);
|
||||
|
||||
/**
|
||||
@ -180,9 +199,13 @@ typedef struct _VipsArrayDouble {
|
||||
VipsArea area;
|
||||
} VipsArrayDouble;
|
||||
|
||||
VIPS_API
|
||||
VipsArrayDouble *vips_array_double_new( const double *array, int n );
|
||||
VIPS_API
|
||||
VipsArrayDouble *vips_array_double_newv( int n, ... );
|
||||
VIPS_API
|
||||
double *vips_array_double_get( VipsArrayDouble *array, int *n );
|
||||
VIPS_API
|
||||
GType vips_array_double_get_type(void);
|
||||
|
||||
/**
|
||||
@ -196,9 +219,13 @@ typedef struct _VipsArrayInt {
|
||||
VipsArea area;
|
||||
} VipsArrayInt;
|
||||
|
||||
VIPS_API
|
||||
VipsArrayInt *vips_array_int_new( const int *array, int n );
|
||||
VIPS_API
|
||||
VipsArrayInt *vips_array_int_newv( int n, ... );
|
||||
VIPS_API
|
||||
int *vips_array_int_get( VipsArrayInt *array, int *n );
|
||||
VIPS_API
|
||||
GType vips_array_int_get_type(void);
|
||||
|
||||
/**
|
||||
@ -215,36 +242,55 @@ typedef struct _VipsArrayImage {
|
||||
/* See image.h for vips_array_image_new() etc., they need to be declared after
|
||||
* VipsImage.
|
||||
*/
|
||||
VIPS_API
|
||||
GType vips_array_image_get_type(void);
|
||||
|
||||
VIPS_API
|
||||
void vips_value_set_area( GValue *value, VipsCallbackFn free_fn, void *data );
|
||||
VIPS_API
|
||||
void *vips_value_get_area( const GValue *value, size_t *length );
|
||||
|
||||
VIPS_API
|
||||
const char *vips_value_get_save_string( const GValue *value );
|
||||
VIPS_API
|
||||
void vips_value_set_save_string( GValue *value, const char *str );
|
||||
VIPS_API
|
||||
void vips_value_set_save_stringf( GValue *value, const char *fmt, ... )
|
||||
__attribute__((format(printf, 2, 3)));
|
||||
|
||||
VIPS_API
|
||||
const char *vips_value_get_ref_string( const GValue *value, size_t *length );
|
||||
VIPS_API
|
||||
void vips_value_set_ref_string( GValue *value, const char *str );
|
||||
|
||||
VIPS_API
|
||||
void *vips_value_get_blob( const GValue *value, size_t *length );
|
||||
VIPS_API
|
||||
void vips_value_set_blob( GValue *value,
|
||||
VipsCallbackFn free_fn, const void *data, size_t length );
|
||||
VIPS_API
|
||||
void vips_value_set_blob_free( GValue *value, void *data, size_t length );
|
||||
|
||||
VIPS_API
|
||||
void vips_value_set_array( GValue *value,
|
||||
int n, GType type, size_t sizeof_type );
|
||||
VIPS_API
|
||||
void *vips_value_get_array( const GValue *value,
|
||||
int *n, GType *type, size_t *sizeof_type );
|
||||
|
||||
VIPS_API
|
||||
double *vips_value_get_array_double( const GValue *value, int *n );
|
||||
VIPS_API
|
||||
void vips_value_set_array_double( GValue *value, const double *array, int n );
|
||||
|
||||
VIPS_API
|
||||
int *vips_value_get_array_int( const GValue *value, int *n );
|
||||
VIPS_API
|
||||
void vips_value_set_array_int( GValue *value, const int *array, int n );
|
||||
|
||||
VIPS_API
|
||||
GObject **vips_value_get_array_object( const GValue *value, int *n );
|
||||
VIPS_API
|
||||
void vips_value_set_array_object( GValue *value, int n );
|
||||
|
||||
/* See also image.h, that has vips_array_image_get(), vips_array_image_new(),
|
||||
|
@ -215,43 +215,72 @@ G_STMT_START { \
|
||||
*/
|
||||
#define VIPS_PATH_MAX (4096)
|
||||
|
||||
VIPS_API
|
||||
const char *vips_enum_string( GType enm, int value );
|
||||
VIPS_API
|
||||
const char *vips_enum_nick( GType enm, int value );
|
||||
VIPS_API
|
||||
int vips_enum_from_nick( const char *domain, GType type, const char *str );
|
||||
VIPS_API
|
||||
int vips_flags_from_nick( const char *domain, GType type, const char *nick );
|
||||
|
||||
VIPS_API
|
||||
gboolean vips_slist_equal( GSList *l1, GSList *l2 );
|
||||
VIPS_API
|
||||
void *vips_slist_map2( GSList *list, VipsSListMap2Fn fn, void *a, void *b );
|
||||
VIPS_API
|
||||
void *vips_slist_map2_rev( GSList *list, VipsSListMap2Fn fn, void *a, void *b );
|
||||
VIPS_API
|
||||
void *vips_slist_map4( GSList *list,
|
||||
VipsSListMap4Fn fn, void *a, void *b, void *c, void *d );
|
||||
VIPS_API
|
||||
void *vips_slist_fold2( GSList *list, void *start,
|
||||
VipsSListFold2Fn fn, void *a, void *b );
|
||||
VIPS_API
|
||||
GSList *vips_slist_filter( GSList *list, VipsSListMap2Fn fn, void *a, void *b );
|
||||
VIPS_API
|
||||
void vips_slist_free_all( GSList *list );
|
||||
VIPS_API
|
||||
void *vips_map_equal( void *a, void *b );
|
||||
|
||||
VIPS_API
|
||||
void *vips_hash_table_map( GHashTable *hash,
|
||||
VipsSListMap2Fn fn, void *a, void *b );
|
||||
|
||||
VIPS_API
|
||||
char *vips_strncpy( char *dest, const char *src, int n );
|
||||
VIPS_API
|
||||
char *vips_strrstr( const char *haystack, const char *needle );
|
||||
VIPS_API
|
||||
gboolean vips_ispostfix( const char *a, const char *b );
|
||||
VIPS_API
|
||||
gboolean vips_iscasepostfix( const char *a, const char *b );
|
||||
VIPS_API
|
||||
gboolean vips_isprefix( const char *a, const char *b );
|
||||
VIPS_API
|
||||
char *vips_break_token( char *str, const char *brk );
|
||||
|
||||
void vips__chomp( char *str );
|
||||
|
||||
VIPS_API
|
||||
int vips_vsnprintf( char *str, size_t size, const char *format, va_list ap );
|
||||
VIPS_API
|
||||
int vips_snprintf( char *str, size_t size, const char *format, ... )
|
||||
__attribute__((format(printf, 3, 4)));
|
||||
|
||||
VIPS_API
|
||||
int vips_filename_suffix_match( const char *path, const char *suffixes[] );
|
||||
|
||||
VIPS_API
|
||||
gint64 vips_file_length( int fd );
|
||||
/* TODO(kleisauke): VIPS_API is required by vipsedit.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips__write( int fd, const void *buf, size_t count );
|
||||
|
||||
/* TODO(kleisauke): VIPS_API is required by test_connections.
|
||||
*/
|
||||
VIPS_API
|
||||
int vips__open( const char *filename, int flags, int mode );
|
||||
int vips__open_read( const char *filename );
|
||||
FILE *vips__fopen( const char *filename, const char *mode );
|
||||
@ -260,10 +289,16 @@ FILE *vips__file_open_read( const char *filename,
|
||||
const char *fallback_dir, gboolean text_mode );
|
||||
FILE *vips__file_open_write( const char *filename,
|
||||
gboolean text_mode );
|
||||
/* TODO(kleisauke): VIPS_API is required by vipsedit.
|
||||
*/
|
||||
VIPS_API
|
||||
char *vips__file_read( FILE *fp, const char *name, size_t *length_out );
|
||||
char *vips__file_read_name( const char *name, const char *fallback_dir,
|
||||
size_t *length_out );
|
||||
int vips__file_write( void *data, size_t size, size_t nmemb, FILE *stream );
|
||||
/* TODO(kleisauke): VIPS_API is required by the magick module.
|
||||
*/
|
||||
VIPS_API
|
||||
gint64 vips__get_bytes( const char *filename,
|
||||
unsigned char buf[], gint64 len );
|
||||
int vips__fgetc( FILE *fp );
|
||||
@ -275,16 +310,24 @@ GSList *vips__gslist_gvalue_merge( GSList *a, const GSList *b );
|
||||
char *vips__gslist_gvalue_get( const GSList *list );
|
||||
|
||||
gint64 vips__seek_no_error( int fd, gint64 pos, int whence );
|
||||
/* TODO(kleisauke): VIPS_API is required by vipsedit.
|
||||
*/
|
||||
VIPS_API
|
||||
gint64 vips__seek( int fd, gint64 pos, int whence );
|
||||
int vips__ftruncate( int fd, gint64 pos );
|
||||
VIPS_API
|
||||
int vips_existsf( const char *name, ... )
|
||||
__attribute__((format(printf, 1, 2)));
|
||||
VIPS_API
|
||||
int vips_isdirf( const char *name, ... )
|
||||
__attribute__((format(printf, 1, 2)));
|
||||
VIPS_API
|
||||
int vips_mkdirf( const char *name, ... )
|
||||
__attribute__((format(printf, 1, 2)));
|
||||
VIPS_API
|
||||
int vips_rmdirf( const char *name, ... )
|
||||
__attribute__((format(printf, 1, 2)));
|
||||
VIPS_API
|
||||
int vips_rename( const char *old_name, const char *new_name );
|
||||
|
||||
/**
|
||||
@ -323,17 +366,26 @@ const char *vips__token_segment( const char *p, VipsToken *token,
|
||||
const char *vips__token_segment_need( const char *p, VipsToken need_token,
|
||||
char *string, int size );
|
||||
const char *vips__find_rightmost_brackets( const char *p );
|
||||
/* TODO(kleisauke): VIPS_API is required by libvips-cpp and vipsheader.
|
||||
*/
|
||||
VIPS_API
|
||||
void vips__filename_split8( const char *name,
|
||||
char *filename, char *option_string );
|
||||
|
||||
VIPS_API
|
||||
int vips_ispoweroftwo( int p );
|
||||
VIPS_API
|
||||
int vips_amiMSBfirst( void );
|
||||
|
||||
/* TODO(kleisauke): VIPS_API is required by jpegsave_file_fuzzer.
|
||||
*/
|
||||
VIPS_API
|
||||
char *vips__temp_name( const char *format );
|
||||
|
||||
void vips__change_suffix( const char *name, char *out, int mx,
|
||||
const char *new_suff, const char **olds, int nolds );
|
||||
|
||||
VIPS_API
|
||||
char *vips_realpath( const char *path );
|
||||
|
||||
guint32 vips__random( guint32 seed );
|
||||
@ -344,6 +396,7 @@ const char *vips__windows_prefix( void );
|
||||
|
||||
char *vips__get_iso8601( void );
|
||||
|
||||
VIPS_API
|
||||
int vips_strtod( const char *str, double *out );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -116,41 +116,64 @@ typedef struct {
|
||||
*/
|
||||
extern gboolean vips__vector_enabled;
|
||||
|
||||
VIPS_API
|
||||
void vips_vector_init( void );
|
||||
VIPS_API
|
||||
gboolean vips_vector_isenabled( void );
|
||||
VIPS_API
|
||||
void vips_vector_set_enabled( gboolean enabled );
|
||||
|
||||
VIPS_API
|
||||
void vips_vector_free( VipsVector *vector );
|
||||
VIPS_API
|
||||
VipsVector *vips_vector_new( const char *name, int dsize );
|
||||
|
||||
VIPS_API
|
||||
void vips_vector_constant( VipsVector *vector,
|
||||
char *name, int value, int size );
|
||||
VIPS_API
|
||||
void vips_vector_source_scanline( VipsVector *vector,
|
||||
char *name, int line, int size );
|
||||
VIPS_API
|
||||
int vips_vector_source_name( VipsVector *vector, const char *name, int size );
|
||||
VIPS_API
|
||||
void vips_vector_temporary( VipsVector *vector, const char *name, int size );
|
||||
VIPS_API
|
||||
int vips_vector_parameter( VipsVector *vector, const char *name, int size );
|
||||
VIPS_API
|
||||
int vips_vector_destination( VipsVector *vector, const char *name, int size );
|
||||
VIPS_API
|
||||
void vips_vector_asm2( VipsVector *vector,
|
||||
const char *op, const char *a, const char *b );
|
||||
VIPS_API
|
||||
void vips_vector_asm3( VipsVector *vector,
|
||||
const char *op, const char *a, const char *b, const char *c );
|
||||
VIPS_API
|
||||
gboolean vips_vector_full( VipsVector *vector );
|
||||
|
||||
VIPS_API
|
||||
gboolean vips_vector_compile( VipsVector *vector );
|
||||
|
||||
VIPS_API
|
||||
void vips_vector_print( VipsVector *vector );
|
||||
|
||||
VIPS_API
|
||||
void vips_executor_set_program( VipsExecutor *executor,
|
||||
VipsVector *vector, int n );
|
||||
VIPS_API
|
||||
void vips_executor_set_scanline( VipsExecutor *executor,
|
||||
VipsRegion *ir, int x, int y );
|
||||
VIPS_API
|
||||
void vips_executor_set_destination( VipsExecutor *executor, void *value );
|
||||
VIPS_API
|
||||
void vips_executor_set_parameter( VipsExecutor *executor, int var, int value );
|
||||
VIPS_API
|
||||
void vips_executor_set_array( VipsExecutor *executor, int var, void *value );
|
||||
|
||||
VIPS_API
|
||||
void vips_executor_run( VipsExecutor *executor );
|
||||
|
||||
VIPS_API
|
||||
void vips_vector_to_fixed_point( double *in, int *out, int n, int scale );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -38,9 +38,11 @@
|
||||
extern "C" {
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
VIPS_DEPRECATED
|
||||
int im_video_v4l1( VipsImage *im, const char *device,
|
||||
int channel, int brightness, int colour, int contrast, int hue,
|
||||
int ngrabs );
|
||||
VIPS_DEPRECATED
|
||||
int im_video_test( VipsImage *im, int brightness, int error );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -173,22 +173,34 @@ extern "C" {
|
||||
-1 ) : \
|
||||
vips_init( ARGV0 ))
|
||||
|
||||
VIPS_API
|
||||
int vips_init( const char *argv0 );
|
||||
VIPS_API
|
||||
const char *vips_get_argv0( void );
|
||||
VIPS_API
|
||||
const char *vips_get_prgname( void );
|
||||
VIPS_API
|
||||
void vips_shutdown( void );
|
||||
VIPS_API
|
||||
void vips_thread_shutdown( void );
|
||||
|
||||
VIPS_API
|
||||
void vips_add_option_entries( GOptionGroup *option_group );
|
||||
|
||||
VIPS_API
|
||||
void vips_leak_set( gboolean leak );
|
||||
|
||||
VIPS_API
|
||||
void vips_block_untrusted_set( gboolean state );
|
||||
|
||||
VIPS_API
|
||||
const char *vips_version_string( void );
|
||||
VIPS_API
|
||||
int vips_version( int flag );
|
||||
|
||||
VIPS_API
|
||||
const char *vips_guess_prefix( const char *argv0, const char *env_name );
|
||||
VIPS_API
|
||||
const char *vips_guess_libdir( const char *argv0, const char *env_name );
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,9 @@
|
||||
/*** BEGIN file-header ***/
|
||||
/* auto-generated enums for vips introspection */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif /*HAVE_CONFIG_H*/
|
||||
#include <vips/vips.h>
|
||||
/*** END file-header ***/
|
||||
|
||||
|
@ -81,10 +81,17 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#define VIPS_DISABLE_DEPRECATION_WARNINGS
|
||||
#include <vips/vips.h>
|
||||
#include <vips/internal.h>
|
||||
#include <vips/debug.h>
|
||||
|
||||
/* For the vips__image_sizeof_bandformat declaration.
|
||||
*/
|
||||
#if ENABLE_DEPRECATED
|
||||
#include <vips/vips7compat.h>
|
||||
#endif
|
||||
|
||||
/**
|
||||
* SECTION: header
|
||||
* @short_description: get, set and walk image headers
|
||||
|
@ -104,6 +104,7 @@
|
||||
#pragma GCC diagnostic pop
|
||||
#endif /*HAVE_GSF*/
|
||||
|
||||
#define VIPS_DISABLE_DEPRECATION_WARNINGS
|
||||
#include <vips/vips.h>
|
||||
#include <vips/thread.h>
|
||||
#include <vips/internal.h>
|
||||
@ -1303,14 +1304,6 @@ vips_leak_set( gboolean leak )
|
||||
vips__leak = leak;
|
||||
}
|
||||
|
||||
/* Deprecated.
|
||||
*/
|
||||
size_t
|
||||
vips__get_sizeof_vipsobject( void )
|
||||
{
|
||||
return( sizeof( VipsObject ) );
|
||||
}
|
||||
|
||||
static void *
|
||||
vips_block_untrusted_set_operation( VipsOperationClass *class, gboolean *state )
|
||||
{
|
||||
|
@ -79,6 +79,7 @@
|
||||
#endif /*HAVE_UNISTD_H*/
|
||||
|
||||
#include <vips/vips.h>
|
||||
#include <vips/internal.h>
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
#ifndef S_ISREG
|
||||
|
@ -55,6 +55,7 @@ iofuncs_lib = static_library('iofuncs',
|
||||
iofuncs_headers,
|
||||
vipsmarshal,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += iofuncs_lib
|
||||
|
@ -698,7 +698,8 @@ vips_blob_get( VipsBlob *blob, size_t *length )
|
||||
length, NULL, NULL, NULL ) );
|
||||
}
|
||||
|
||||
/* vips_blob_set:
|
||||
/**
|
||||
* vips_blob_set:
|
||||
* @blob: #VipsBlob to set
|
||||
* @free_fn: (scope async) (allow-none): @data will be freed with this function
|
||||
* @data: (array length=length) (element-type guint8) (transfer full): data to store
|
||||
|
@ -343,14 +343,6 @@ vips_window_find( VipsImage *im, int top, int height )
|
||||
return( window );
|
||||
}
|
||||
|
||||
/* Old API. Just a compat stub now.
|
||||
*/
|
||||
VipsWindow *
|
||||
vips_window_ref( VipsImage *im, int top, int height )
|
||||
{
|
||||
return( NULL );
|
||||
}
|
||||
|
||||
/* Update a window to make it enclose top/height.
|
||||
*/
|
||||
VipsWindow *
|
||||
|
@ -23,6 +23,7 @@ libvips_lib = library('vips',
|
||||
link_whole: libvips_components,
|
||||
dependencies: libvips_deps,
|
||||
version: library_version,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
install: true,
|
||||
)
|
||||
|
||||
@ -72,7 +73,7 @@ endif
|
||||
# Keep the autotools convention for shared module suffix because GModule
|
||||
# depends on it: https://gitlab.gnome.org/GNOME/glib/issues/1413
|
||||
module_suffix = []
|
||||
if ['darwin', 'ios'].contains(host_machine.system())
|
||||
if ['darwin', 'ios'].contains(host_os)
|
||||
module_suffix = 'so'
|
||||
endif
|
||||
|
||||
|
@ -17,6 +17,7 @@ morphology_lib = static_library('morphology',
|
||||
morphology_sources,
|
||||
morphology_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += morphology_lib
|
||||
|
@ -31,6 +31,7 @@ mosaicing_lib = static_library('mosaicing',
|
||||
mosaicing_sources,
|
||||
mosaicing_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += mosaicing_lib
|
||||
|
@ -31,6 +31,7 @@ resample_lib = static_library('resample',
|
||||
resample_sources,
|
||||
resample_headers,
|
||||
dependencies: libvips_deps,
|
||||
gnu_symbol_visibility: 'hidden',
|
||||
)
|
||||
|
||||
libvips_components += resample_lib
|
||||
|
18
meson.build
18
meson.build
@ -50,6 +50,7 @@ if get_option('debug')
|
||||
add_project_arguments('-DDEBUG_LEAK', language : ['cpp', 'c'])
|
||||
endif
|
||||
|
||||
host_os = host_machine.system()
|
||||
cc = meson.get_compiler('c')
|
||||
cpp = meson.get_compiler('cpp')
|
||||
|
||||
@ -91,6 +92,18 @@ if modules_enabled
|
||||
cfg_var.set('ENABLE_MODULES', '1')
|
||||
endif
|
||||
|
||||
# Detect and set symbol visibility
|
||||
if get_option('default_library') == 'shared' and (host_os == 'windows' or host_os == 'cygwin')
|
||||
cfg_var.set('DLL_EXPORT', true)
|
||||
if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl'
|
||||
cfg_var.set('_VIPS_PUBLIC', '__declspec(dllexport)')
|
||||
elif cc.has_function_attribute('visibility:hidden')
|
||||
cfg_var.set('_VIPS_PUBLIC', '__attribute__((visibility("default"))) __declspec(dllexport)')
|
||||
endif
|
||||
elif cc.has_function_attribute('visibility:hidden')
|
||||
cfg_var.set('_VIPS_PUBLIC', '__attribute__((visibility("default")))')
|
||||
endif
|
||||
|
||||
# we also need to be able to mix vector and scalar arithmetic
|
||||
vector_arithmetic_check = '''
|
||||
typedef float v4f __attribute__((vector_size(4 * sizeof(float)),aligned(16)));
|
||||
@ -535,10 +548,9 @@ else
|
||||
endif
|
||||
cfg_var.set('HAVE_BIND_TEXTDOMAIN_CODESET', have_bind_textdomain_codeset)
|
||||
|
||||
target_system = target_machine.system()
|
||||
if target_system == 'darwin'
|
||||
if host_os == 'darwin'
|
||||
profile_dir = '/Library/ColorSync/Profiles'
|
||||
elif target_system == 'windows'
|
||||
elif host_os == 'windows'
|
||||
# need double escapes since this will get pasted into a #define in a C
|
||||
# header ... the C:\Windows is usually overwritten with the result of
|
||||
# GetWindowsDirectoryW()
|
||||
|
@ -94,6 +94,7 @@
|
||||
#include <ctype.h>
|
||||
#include <locale.h>
|
||||
|
||||
#define VIPS_DISABLE_DEPRECATION_WARNINGS
|
||||
#include <vips/vips.h>
|
||||
#include <vips/internal.h>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user