From b51f4dab28083ab87495aec975c1d5570da333fc Mon Sep 17 00:00:00 2001 From: John Cupitt Date: Sun, 7 Mar 2021 14:59:31 +0000 Subject: [PATCH] fix make dist --- configure.ac | 1 + cplusplus/include/vips/vips-operators.h | 3914 +++++++++++++++++++++++ po/POTFILES.in | 5 +- 3 files changed, 3919 insertions(+), 1 deletion(-) create mode 100644 cplusplus/include/vips/vips-operators.h diff --git a/configure.ac b/configure.ac index ba534ecb..3d257d8f 100644 --- a/configure.ac +++ b/configure.ac @@ -1348,6 +1348,7 @@ AC_CONFIG_FILES([ libvips/convolution/Makefile libvips/deprecated/Makefile libvips/foreign/Makefile + libvips/foreign/libnsgif/Makefile libvips/freqfilt/Makefile libvips/histogram/Makefile libvips/draw/Makefile diff --git a/cplusplus/include/vips/vips-operators.h b/cplusplus/include/vips/vips-operators.h new file mode 100644 index 00000000..e712335a --- /dev/null +++ b/cplusplus/include/vips/vips-operators.h @@ -0,0 +1,3914 @@ +// headers for vips operations +// Sun Mar 7 02:50:00 PM GMT 2021 +// this file is generated automatically, do not edit! + +/** + * Transform lch to cmc. + * @param options Set of options. + * @return Output image. + */ +VImage CMC2LCh( VOption *options = 0 ) const; + +/** + * Transform cmyk to xyz. + * @param options Set of options. + * @return Output image. + */ +VImage CMYK2XYZ( VOption *options = 0 ) const; + +/** + * Transform hsv to srgb. + * @param options Set of options. + * @return Output image. + */ +VImage HSV2sRGB( VOption *options = 0 ) const; + +/** + * Transform lch to cmc. + * @param options Set of options. + * @return Output image. + */ +VImage LCh2CMC( VOption *options = 0 ) const; + +/** + * Transform lch to lab. + * @param options Set of options. + * @return Output image. + */ +VImage LCh2Lab( VOption *options = 0 ) const; + +/** + * Transform lab to lch. + * @param options Set of options. + * @return Output image. + */ +VImage Lab2LCh( VOption *options = 0 ) const; + +/** + * Transform float lab to labq coding. + * @param options Set of options. + * @return Output image. + */ +VImage Lab2LabQ( VOption *options = 0 ) const; + +/** + * Transform float lab to signed short. + * @param options Set of options. + * @return Output image. + */ +VImage Lab2LabS( VOption *options = 0 ) const; + +/** + * Transform cielab to xyz. + * + * **Optional parameters** + * - **temp** -- Color temperature, std::vector. + * + * @param options Set of options. + * @return Output image. + */ +VImage Lab2XYZ( VOption *options = 0 ) const; + +/** + * Unpack a labq image to float lab. + * @param options Set of options. + * @return Output image. + */ +VImage LabQ2Lab( VOption *options = 0 ) const; + +/** + * Unpack a labq image to short lab. + * @param options Set of options. + * @return Output image. + */ +VImage LabQ2LabS( VOption *options = 0 ) const; + +/** + * Convert a labq image to srgb. + * @param options Set of options. + * @return Output image. + */ +VImage LabQ2sRGB( VOption *options = 0 ) const; + +/** + * Transform signed short lab to float. + * @param options Set of options. + * @return Output image. + */ +VImage LabS2Lab( VOption *options = 0 ) const; + +/** + * Transform short lab to labq coding. + * @param options Set of options. + * @return Output image. + */ +VImage LabS2LabQ( VOption *options = 0 ) const; + +/** + * Transform xyz to cmyk. + * @param options Set of options. + * @return Output image. + */ +VImage XYZ2CMYK( VOption *options = 0 ) const; + +/** + * Transform xyz to lab. + * + * **Optional parameters** + * - **temp** -- Colour temperature, std::vector. + * + * @param options Set of options. + * @return Output image. + */ +VImage XYZ2Lab( VOption *options = 0 ) const; + +/** + * Transform xyz to yxy. + * @param options Set of options. + * @return Output image. + */ +VImage XYZ2Yxy( VOption *options = 0 ) const; + +/** + * Transform xyz to scrgb. + * @param options Set of options. + * @return Output image. + */ +VImage XYZ2scRGB( VOption *options = 0 ) const; + +/** + * Transform yxy to xyz. + * @param options Set of options. + * @return Output image. + */ +VImage Yxy2XYZ( VOption *options = 0 ) const; + +/** + * Absolute value of an image. + * @param options Set of options. + * @return Output image. + */ +VImage abs( VOption *options = 0 ) const; + +/** + * Add two images. + * @param right Right-hand image argument. + * @param options Set of options. + * @return Output image. + */ +VImage add( VImage right, VOption *options = 0 ) const; + +/** + * Affine transform of an image. + * + * **Optional parameters** + * - **interpolate** -- Interpolate pixels with this, VInterpolate. + * - **oarea** -- Area of output to generate, std::vector. + * - **odx** -- Horizontal output displacement, double. + * - **ody** -- Vertical output displacement, double. + * - **idx** -- Horizontal input displacement, double. + * - **idy** -- Vertical input displacement, double. + * - **background** -- Background value, std::vector. + * - **premultiplied** -- Images have premultiplied alpha, bool. + * - **extend** -- How to generate the extra pixels, VipsExtend. + * + * @param matrix Transformation matrix. + * @param options Set of options. + * @return Output image. + */ +VImage affine( std::vector matrix, VOption *options = 0 ) const; + +/** + * Load an analyze6 image. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage analyzeload( const char *filename, VOption *options = 0 ); + +/** + * Join an array of images. + * + * **Optional parameters** + * - **across** -- Number of images across grid, int. + * - **shim** -- Pixels between images, int. + * - **background** -- Colour for new pixels, std::vector. + * - **halign** -- Align on the left, centre or right, VipsAlign. + * - **valign** -- Align on the top, centre or bottom, VipsAlign. + * - **hspacing** -- Horizontal spacing between images, int. + * - **vspacing** -- Vertical spacing between images, int. + * + * @param in Array of input images. + * @param options Set of options. + * @return Output image. + */ +static VImage arrayjoin( std::vector in, VOption *options = 0 ); + +/** + * Autorotate image by exif tag. + * @param options Set of options. + * @return Output image. + */ +VImage autorot( VOption *options = 0 ) const; + +/** + * Find image average. + * @param options Set of options. + * @return Output value. + */ +double avg( VOption *options = 0 ) const; + +/** + * Boolean operation across image bands. + * @param boolean boolean to perform. + * @param options Set of options. + * @return Output image. + */ +VImage bandbool( VipsOperationBoolean boolean, VOption *options = 0 ) const; + +/** + * Fold up x axis into bands. + * + * **Optional parameters** + * - **factor** -- Fold by this factor, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage bandfold( VOption *options = 0 ) const; + +/** + * Bandwise join a set of images. + * @param in Array of input images. + * @param options Set of options. + * @return Output image. + */ +static VImage bandjoin( std::vector in, VOption *options = 0 ); + +/** + * Append a constant band to an image. + * @param c Array of constants to add. + * @param options Set of options. + * @return Output image. + */ +VImage bandjoin_const( std::vector c, VOption *options = 0 ) const; + +/** + * Band-wise average. + * @param options Set of options. + * @return Output image. + */ +VImage bandmean( VOption *options = 0 ) const; + +/** + * Band-wise rank of a set of images. + * + * **Optional parameters** + * - **index** -- Select this band element from sorted list, int. + * + * @param in Array of input images. + * @param options Set of options. + * @return Output image. + */ +static VImage bandrank( std::vector in, VOption *options = 0 ); + +/** + * Unfold image bands into x axis. + * + * **Optional parameters** + * - **factor** -- Unfold by this factor, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage bandunfold( VOption *options = 0 ) const; + +/** + * Make a black image. + * + * **Optional parameters** + * - **bands** -- Number of bands in image, int. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +static VImage black( int width, int height, VOption *options = 0 ); + +/** + * Boolean operation on two images. + * @param right Right-hand image argument. + * @param boolean boolean to perform. + * @param options Set of options. + * @return Output image. + */ +VImage boolean( VImage right, VipsOperationBoolean boolean, VOption *options = 0 ) const; + +/** + * Boolean operations against a constant. + * @param boolean boolean to perform. + * @param c Array of constants. + * @param options Set of options. + * @return Output image. + */ +VImage boolean_const( VipsOperationBoolean boolean, std::vector c, VOption *options = 0 ) const; + +/** + * Build a look-up table. + * @param options Set of options. + * @return Output image. + */ +VImage buildlut( VOption *options = 0 ) const; + +/** + * Byteswap an image. + * @param options Set of options. + * @return Output image. + */ +VImage byteswap( VOption *options = 0 ) const; + +/** + * Cache an image. + * + * **Optional parameters** + * - **max_tiles** -- Maximum number of tiles to cache, int. + * - **tile_height** -- Tile height in pixels, int. + * - **tile_width** -- Tile width in pixels, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage cache( VOption *options = 0 ) const; + +/** + * Canny edge detector. + * + * **Optional parameters** + * - **sigma** -- Sigma of Gaussian, double. + * - **precision** -- Convolve with this precision, VipsPrecision. + * + * @param options Set of options. + * @return Output image. + */ +VImage canny( VOption *options = 0 ) const; + +/** + * Use pixel values to pick cases from an array of images. + * @param cases Array of case images. + * @param options Set of options. + * @return Output image. + */ +VImage case_image( std::vector cases, VOption *options = 0 ) const; + +/** + * Cast an image. + * + * **Optional parameters** + * - **shift** -- Shift integer values up and down, bool. + * + * @param format Format to cast to. + * @param options Set of options. + * @return Output image. + */ +VImage cast( VipsBandFormat format, VOption *options = 0 ) const; + +/** + * Convert to a new colorspace. + * + * **Optional parameters** + * - **source_space** -- Source color space, VipsInterpretation. + * + * @param space Destination color space. + * @param options Set of options. + * @return Output image. + */ +VImage colourspace( VipsInterpretation space, VOption *options = 0 ) const; + +/** + * Convolve with rotating mask. + * + * **Optional parameters** + * - **times** -- Rotate and convolve this many times, int. + * - **angle** -- Rotate mask by this much between convolutions, VipsAngle45. + * - **combine** -- Combine convolution results like this, VipsCombine. + * - **precision** -- Convolve with this precision, VipsPrecision. + * - **layers** -- Use this many layers in approximation, int. + * - **cluster** -- Cluster lines closer than this in approximation, int. + * + * @param mask Input matrix image. + * @param options Set of options. + * @return Output image. + */ +VImage compass( VImage mask, VOption *options = 0 ) const; + +/** + * Perform a complex operation on an image. + * @param cmplx complex to perform. + * @param options Set of options. + * @return Output image. + */ +VImage complex( VipsOperationComplex cmplx, VOption *options = 0 ) const; + +/** + * Complex binary operations on two images. + * @param right Right-hand image argument. + * @param cmplx binary complex operation to perform. + * @param options Set of options. + * @return Output image. + */ +VImage complex2( VImage right, VipsOperationComplex2 cmplx, VOption *options = 0 ) const; + +/** + * Form a complex image from two real images. + * @param right Right-hand image argument. + * @param options Set of options. + * @return Output image. + */ +VImage complexform( VImage right, VOption *options = 0 ) const; + +/** + * Get a component from a complex image. + * @param get complex to perform. + * @param options Set of options. + * @return Output image. + */ +VImage complexget( VipsOperationComplexget get, VOption *options = 0 ) const; + +/** + * Blend an array of images with an array of blend modes. + * + * **Optional parameters** + * - **x** -- Array of x coordinates to join at, std::vector. + * - **y** -- Array of y coordinates to join at, std::vector. + * - **compositing_space** -- Composite images in this colour space, VipsInterpretation. + * - **premultiplied** -- Images have premultiplied alpha, bool. + * + * @param in Array of input images. + * @param mode Array of VipsBlendMode to join with. + * @param options Set of options. + * @return Output image. + */ +static VImage composite( std::vector in, std::vector mode, VOption *options = 0 ); + +/** + * Blend a pair of images with a blend mode. + * + * **Optional parameters** + * - **x** -- x position of overlay, int. + * - **y** -- y position of overlay, int. + * - **compositing_space** -- Composite images in this colour space, VipsInterpretation. + * - **premultiplied** -- Images have premultiplied alpha, bool. + * + * @param overlay Overlay image. + * @param mode VipsBlendMode to join with. + * @param options Set of options. + * @return Output image. + */ +VImage composite2( VImage overlay, VipsBlendMode mode, VOption *options = 0 ) const; + +/** + * Convolution operation. + * + * **Optional parameters** + * - **precision** -- Convolve with this precision, VipsPrecision. + * - **layers** -- Use this many layers in approximation, int. + * - **cluster** -- Cluster lines closer than this in approximation, int. + * + * @param mask Input matrix image. + * @param options Set of options. + * @return Output image. + */ +VImage conv( VImage mask, VOption *options = 0 ) const; + +/** + * Approximate integer convolution. + * + * **Optional parameters** + * - **layers** -- Use this many layers in approximation, int. + * - **cluster** -- Cluster lines closer than this in approximation, int. + * + * @param mask Input matrix image. + * @param options Set of options. + * @return Output image. + */ +VImage conva( VImage mask, VOption *options = 0 ) const; + +/** + * Approximate separable integer convolution. + * + * **Optional parameters** + * - **layers** -- Use this many layers in approximation, int. + * + * @param mask Input matrix image. + * @param options Set of options. + * @return Output image. + */ +VImage convasep( VImage mask, VOption *options = 0 ) const; + +/** + * Float convolution operation. + * @param mask Input matrix image. + * @param options Set of options. + * @return Output image. + */ +VImage convf( VImage mask, VOption *options = 0 ) const; + +/** + * Int convolution operation. + * @param mask Input matrix image. + * @param options Set of options. + * @return Output image. + */ +VImage convi( VImage mask, VOption *options = 0 ) const; + +/** + * Seperable convolution operation. + * + * **Optional parameters** + * - **precision** -- Convolve with this precision, VipsPrecision. + * - **layers** -- Use this many layers in approximation, int. + * - **cluster** -- Cluster lines closer than this in approximation, int. + * + * @param mask Input matrix image. + * @param options Set of options. + * @return Output image. + */ +VImage convsep( VImage mask, VOption *options = 0 ) const; + +/** + * Copy an image. + * + * **Optional parameters** + * - **swap** -- Swap bytes in image between little and big-endian, bool. + * - **width** -- Image width in pixels, int. + * - **height** -- Image height in pixels, int. + * - **bands** -- Number of bands in image, int. + * - **format** -- Pixel format in image, VipsBandFormat. + * - **coding** -- Pixel coding, VipsCoding. + * - **interpretation** -- Pixel interpretation, VipsInterpretation. + * - **xres** -- Horizontal resolution in pixels/mm, double. + * - **yres** -- Vertical resolution in pixels/mm, double. + * - **xoffset** -- Horizontal offset of origin, int. + * - **yoffset** -- Vertical offset of origin, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage copy( VOption *options = 0 ) const; + +/** + * Count lines in an image. + * @param direction Countlines left-right or up-down. + * @param options Set of options. + * @return Number of lines. + */ +double countlines( VipsDirection direction, VOption *options = 0 ) const; + +/** + * Extract an area from an image. + * @param left Left edge of extract area. + * @param top Top edge of extract area. + * @param width Width of extract area. + * @param height Height of extract area. + * @param options Set of options. + * @return Output image. + */ +VImage crop( int left, int top, int width, int height, VOption *options = 0 ) const; + +/** + * Load csv. + * + * **Optional parameters** + * - **skip** -- Skip this many lines at the start of the file, int. + * - **lines** -- Read this many lines from the file, int. + * - **whitespace** -- Set of whitespace characters, const char *. + * - **separator** -- Set of separator characters, const char *. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage csvload( const char *filename, VOption *options = 0 ); + +/** + * Load csv. + * + * **Optional parameters** + * - **skip** -- Skip this many lines at the start of the file, int. + * - **lines** -- Read this many lines from the file, int. + * - **whitespace** -- Set of whitespace characters, const char *. + * - **separator** -- Set of separator characters, const char *. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage csvload_source( VSource source, VOption *options = 0 ); + +/** + * Save image to csv. + * + * **Optional parameters** + * - **separator** -- Separator characters, const char *. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void csvsave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image to csv. + * + * **Optional parameters** + * - **separator** -- Separator characters, const char *. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param target Target to save to. + * @param options Set of options. + */ +void csvsave_target( VTarget target, VOption *options = 0 ) const; + +/** + * Calculate de00. + * @param right Right-hand input image. + * @param options Set of options. + * @return Output image. + */ +VImage dE00( VImage right, VOption *options = 0 ) const; + +/** + * Calculate de76. + * @param right Right-hand input image. + * @param options Set of options. + * @return Output image. + */ +VImage dE76( VImage right, VOption *options = 0 ) const; + +/** + * Calculate decmc. + * @param right Right-hand input image. + * @param options Set of options. + * @return Output image. + */ +VImage dECMC( VImage right, VOption *options = 0 ) const; + +/** + * Find image standard deviation. + * @param options Set of options. + * @return Output value. + */ +double deviate( VOption *options = 0 ) const; + +/** + * Divide two images. + * @param right Right-hand image argument. + * @param options Set of options. + * @return Output image. + */ +VImage divide( VImage right, VOption *options = 0 ) const; + +/** + * Draw a circle on an image. + * + * **Optional parameters** + * - **fill** -- Draw a solid object, bool. + * + * @param ink Color for pixels. + * @param cx Centre of draw_circle. + * @param cy Centre of draw_circle. + * @param radius Radius in pixels. + * @param options Set of options. + */ +void draw_circle( std::vector ink, int cx, int cy, int radius, VOption *options = 0 ) const; + +/** + * Flood-fill an area. + * + * **Optional parameters** + * - **test** -- Test pixels in this image, VImage. + * - **equal** -- DrawFlood while equal to edge, bool. + * + * @param ink Color for pixels. + * @param x DrawFlood start point. + * @param y DrawFlood start point. + * @param options Set of options. + */ +void draw_flood( std::vector ink, int x, int y, VOption *options = 0 ) const; + +/** + * Paint an image into another image. + * + * **Optional parameters** + * - **mode** -- Combining mode, VipsCombineMode. + * + * @param sub Sub-image to insert into main image. + * @param x Draw image here. + * @param y Draw image here. + * @param options Set of options. + */ +void draw_image( VImage sub, int x, int y, VOption *options = 0 ) const; + +/** + * Draw a line on an image. + * @param ink Color for pixels. + * @param x1 Start of draw_line. + * @param y1 Start of draw_line. + * @param x2 End of draw_line. + * @param y2 End of draw_line. + * @param options Set of options. + */ +void draw_line( std::vector ink, int x1, int y1, int x2, int y2, VOption *options = 0 ) const; + +/** + * Draw a mask on an image. + * @param ink Color for pixels. + * @param mask Mask of pixels to draw. + * @param x Draw mask here. + * @param y Draw mask here. + * @param options Set of options. + */ +void draw_mask( std::vector ink, VImage mask, int x, int y, VOption *options = 0 ) const; + +/** + * Paint a rectangle on an image. + * + * **Optional parameters** + * - **fill** -- Draw a solid object, bool. + * + * @param ink Color for pixels. + * @param left Rect to fill. + * @param top Rect to fill. + * @param width Rect to fill. + * @param height Rect to fill. + * @param options Set of options. + */ +void draw_rect( std::vector ink, int left, int top, int width, int height, VOption *options = 0 ) const; + +/** + * Blur a rectangle on an image. + * @param left Rect to fill. + * @param top Rect to fill. + * @param width Rect to fill. + * @param height Rect to fill. + * @param options Set of options. + */ +void draw_smudge( int left, int top, int width, int height, VOption *options = 0 ) const; + +/** + * Save image to deepzoom file. + * + * **Optional parameters** + * - **dirname** -- Directory name to save to, const char *. + * - **basename** -- Base name to save to, const char *. + * - **layout** -- Directory layout, VipsForeignDzLayout. + * - **suffix** -- Filename suffix for tiles, const char *. + * - **overlap** -- Tile overlap in pixels, int. + * - **tile_size** -- Tile size in pixels, int. + * - **tile_height** -- Tile height in pixels, int. + * - **tile_width** -- Tile width in pixels, int. + * - **centre** -- Center image in tile, bool. + * - **depth** -- Pyramid depth, VipsForeignDzDepth. + * - **angle** -- Rotate image during save, VipsAngle. + * - **container** -- Pyramid container type, VipsForeignDzContainer. + * - **properties** -- Write a properties file to the output directory, bool. + * - **compression** -- ZIP deflate compression level, int. + * - **region_shrink** -- Method to shrink regions, VipsRegionShrink. + * - **skip_blanks** -- Skip tiles which are nearly equal to the background, int. + * - **no_strip** -- Don't strip tile metadata, bool. + * - **id** -- Resource ID, const char *. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void dzsave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image to dz buffer. + * + * **Optional parameters** + * - **dirname** -- Directory name to save to, const char *. + * - **basename** -- Base name to save to, const char *. + * - **layout** -- Directory layout, VipsForeignDzLayout. + * - **suffix** -- Filename suffix for tiles, const char *. + * - **overlap** -- Tile overlap in pixels, int. + * - **tile_size** -- Tile size in pixels, int. + * - **tile_height** -- Tile height in pixels, int. + * - **tile_width** -- Tile width in pixels, int. + * - **centre** -- Center image in tile, bool. + * - **depth** -- Pyramid depth, VipsForeignDzDepth. + * - **angle** -- Rotate image during save, VipsAngle. + * - **container** -- Pyramid container type, VipsForeignDzContainer. + * - **properties** -- Write a properties file to the output directory, bool. + * - **compression** -- ZIP deflate compression level, int. + * - **region_shrink** -- Method to shrink regions, VipsRegionShrink. + * - **skip_blanks** -- Skip tiles which are nearly equal to the background, int. + * - **no_strip** -- Don't strip tile metadata, bool. + * - **id** -- Resource ID, const char *. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param options Set of options. + * @return Buffer to save to. + */ +VipsBlob *dzsave_buffer( VOption *options = 0 ) const; + +/** + * Embed an image in a larger image. + * + * **Optional parameters** + * - **extend** -- How to generate the extra pixels, VipsExtend. + * - **background** -- Color for background pixels, std::vector. + * + * @param x Left edge of input in output. + * @param y Top edge of input in output. + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +VImage embed( int x, int y, int width, int height, VOption *options = 0 ) const; + +/** + * Extract an area from an image. + * @param left Left edge of extract area. + * @param top Top edge of extract area. + * @param width Width of extract area. + * @param height Height of extract area. + * @param options Set of options. + * @return Output image. + */ +VImage extract_area( int left, int top, int width, int height, VOption *options = 0 ) const; + +/** + * Extract band from an image. + * + * **Optional parameters** + * - **n** -- Number of bands to extract, int. + * + * @param band Band to extract. + * @param options Set of options. + * @return Output image. + */ +VImage extract_band( int band, VOption *options = 0 ) const; + +/** + * Make an image showing the eye's spatial response. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **factor** -- Maximum spatial frequency, double. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +static VImage eye( int width, int height, VOption *options = 0 ); + +/** + * False-color an image. + * @param options Set of options. + * @return Output image. + */ +VImage falsecolour( VOption *options = 0 ) const; + +/** + * Fast correlation. + * @param ref Input reference image. + * @param options Set of options. + * @return Output image. + */ +VImage fastcor( VImage ref, VOption *options = 0 ) const; + +/** + * Fill image zeros with nearest non-zero pixel. + * @param options Set of options. + * @return Value of nearest non-zero pixel. + */ +VImage fill_nearest( VOption *options = 0 ) const; + +/** + * Search an image for non-edge areas. + * + * **Optional parameters** + * - **threshold** -- Object threshold, double. + * - **background** -- Color for background pixels, std::vector. + * + * @param top Top edge of extract area. + * @param width Width of extract area. + * @param height Height of extract area. + * @param options Set of options. + * @return Left edge of image. + */ +int find_trim( int *top, int *width, int *height, VOption *options = 0 ) const; + +/** + * Load a fits image. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage fitsload( const char *filename, VOption *options = 0 ); + +/** + * Load fits from a source. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage fitsload_source( VSource source, VOption *options = 0 ); + +/** + * Save image to fits file. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void fitssave( const char *filename, VOption *options = 0 ) const; + +/** + * Flatten alpha out of an image. + * + * **Optional parameters** + * - **background** -- Background value, std::vector. + * - **max_alpha** -- Maximum value of alpha channel, double. + * + * @param options Set of options. + * @return Output image. + */ +VImage flatten( VOption *options = 0 ) const; + +/** + * Flip an image. + * @param direction Direction to flip image. + * @param options Set of options. + * @return Output image. + */ +VImage flip( VipsDirection direction, VOption *options = 0 ) const; + +/** + * Transform float rgb to radiance coding. + * @param options Set of options. + * @return Output image. + */ +VImage float2rad( VOption *options = 0 ) const; + +/** + * Make a fractal surface. + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param fractal_dimension Fractal dimension. + * @param options Set of options. + * @return Output image. + */ +static VImage fractsurf( int width, int height, double fractal_dimension, VOption *options = 0 ); + +/** + * Frequency-domain filtering. + * @param mask Input mask image. + * @param options Set of options. + * @return Output image. + */ +VImage freqmult( VImage mask, VOption *options = 0 ) const; + +/** + * Forward fft. + * @param options Set of options. + * @return Output image. + */ +VImage fwfft( VOption *options = 0 ) const; + +/** + * Gamma an image. + * + * **Optional parameters** + * - **exponent** -- Gamma factor, double. + * + * @param options Set of options. + * @return Output image. + */ +VImage gamma( VOption *options = 0 ) const; + +/** + * Gaussian blur. + * + * **Optional parameters** + * - **min_ampl** -- Minimum amplitude of Gaussian, double. + * - **precision** -- Convolve with this precision, VipsPrecision. + * + * @param sigma Sigma of Gaussian. + * @param options Set of options. + * @return Output image. + */ +VImage gaussblur( double sigma, VOption *options = 0 ) const; + +/** + * Make a gaussian image. + * + * **Optional parameters** + * - **separable** -- Generate separable Gaussian, bool. + * - **integer** -- Generate integer Gaussian, bool. + * - **precision** -- Generate with this precision, VipsPrecision. + * + * @param sigma Sigma of Gaussian. + * @param min_ampl Minimum amplitude of Gaussian. + * @param options Set of options. + * @return Output image. + */ +static VImage gaussmat( double sigma, double min_ampl, VOption *options = 0 ); + +/** + * Make a gaussnoise image. + * + * **Optional parameters** + * - **sigma** -- Standard deviation of pixels in generated image, double. + * - **mean** -- Mean of pixels in generated image, double. + * - **seed** -- Random number seed, int. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +static VImage gaussnoise( int width, int height, VOption *options = 0 ); + +/** + * Read a point from an image. + * @param x Point to read. + * @param y Point to read. + * @param options Set of options. + * @return Array of output values. + */ +std::vector getpoint( int x, int y, VOption *options = 0 ) const; + +/** + * Load gif with libnsgif. + * + * **Optional parameters** + * - **n** -- Load this many pages, int. + * - **page** -- Load this page from the file, int. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage gifload( const char *filename, VOption *options = 0 ); + +/** + * Load gif with libnsgif. + * + * **Optional parameters** + * - **n** -- Load this many pages, int. + * - **page** -- Load this page from the file, int. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param buffer Buffer to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage gifload_buffer( VipsBlob *buffer, VOption *options = 0 ); + +/** + * Load gif from source. + * + * **Optional parameters** + * - **n** -- Load this many pages, int. + * - **page** -- Load this page from the file, int. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage gifload_source( VSource source, VOption *options = 0 ); + +/** + * Global balance an image mosaic. + * + * **Optional parameters** + * - **gamma** -- Image gamma, double. + * - **int_output** -- Integer output, bool. + * + * @param options Set of options. + * @return Output image. + */ +VImage globalbalance( VOption *options = 0 ) const; + +/** + * Place an image within a larger image with a certain gravity. + * + * **Optional parameters** + * - **extend** -- How to generate the extra pixels, VipsExtend. + * - **background** -- Color for background pixels, std::vector. + * + * @param direction direction to place image within width/height. + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +VImage gravity( VipsCompassDirection direction, int width, int height, VOption *options = 0 ) const; + +/** + * Make a grey ramp image. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +static VImage grey( int width, int height, VOption *options = 0 ); + +/** + * Grid an image. + * @param tile_height chop into tiles this high. + * @param across number of tiles across. + * @param down number of tiles down. + * @param options Set of options. + * @return Output image. + */ +VImage grid( int tile_height, int across, int down, VOption *options = 0 ) const; + +/** + * Load a heif image. + * + * **Optional parameters** + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **thumbnail** -- Fetch thumbnail image, bool. + * - **autorotate** -- Rotate image using exif orientation, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage heifload( const char *filename, VOption *options = 0 ); + +/** + * Load a heif image. + * + * **Optional parameters** + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **thumbnail** -- Fetch thumbnail image, bool. + * - **autorotate** -- Rotate image using exif orientation, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param buffer Buffer to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage heifload_buffer( VipsBlob *buffer, VOption *options = 0 ); + +/** + * Load a heif image. + * + * **Optional parameters** + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **thumbnail** -- Fetch thumbnail image, bool. + * - **autorotate** -- Rotate image using exif orientation, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage heifload_source( VSource source, VOption *options = 0 ); + +/** + * Save image in heif format. + * + * **Optional parameters** + * - **Q** -- Q factor, int. + * - **lossless** -- Enable lossless compression, bool. + * - **compression** -- Compression format, VipsForeignHeifCompression. + * - **speed** -- CPU effort, int. + * - **subsample_mode** -- Select chroma subsample operation mode, VipsForeignSubsample. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to load from. + * @param options Set of options. + */ +void heifsave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image in heif format. + * + * **Optional parameters** + * - **Q** -- Q factor, int. + * - **lossless** -- Enable lossless compression, bool. + * - **compression** -- Compression format, VipsForeignHeifCompression. + * - **speed** -- CPU effort, int. + * - **subsample_mode** -- Select chroma subsample operation mode, VipsForeignSubsample. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param options Set of options. + * @return Buffer to save to. + */ +VipsBlob *heifsave_buffer( VOption *options = 0 ) const; + +/** + * Save image in heif format. + * + * **Optional parameters** + * - **Q** -- Q factor, int. + * - **lossless** -- Enable lossless compression, bool. + * - **compression** -- Compression format, VipsForeignHeifCompression. + * - **speed** -- CPU effort, int. + * - **subsample_mode** -- Select chroma subsample operation mode, VipsForeignSubsample. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param target Target to save to. + * @param options Set of options. + */ +void heifsave_target( VTarget target, VOption *options = 0 ) const; + +/** + * Form cumulative histogram. + * @param options Set of options. + * @return Output image. + */ +VImage hist_cum( VOption *options = 0 ) const; + +/** + * Estimate image entropy. + * @param options Set of options. + * @return Output value. + */ +double hist_entropy( VOption *options = 0 ) const; + +/** + * Histogram equalisation. + * + * **Optional parameters** + * - **band** -- Equalise with this band, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage hist_equal( VOption *options = 0 ) const; + +/** + * Find image histogram. + * + * **Optional parameters** + * - **band** -- Find histogram of band, int. + * + * @param options Set of options. + * @return Output histogram. + */ +VImage hist_find( VOption *options = 0 ) const; + +/** + * Find indexed image histogram. + * + * **Optional parameters** + * - **combine** -- Combine bins like this, VipsCombine. + * + * @param index Index image. + * @param options Set of options. + * @return Output histogram. + */ +VImage hist_find_indexed( VImage index, VOption *options = 0 ) const; + +/** + * Find n-dimensional image histogram. + * + * **Optional parameters** + * - **bins** -- Number of bins in each dimension, int. + * + * @param options Set of options. + * @return Output histogram. + */ +VImage hist_find_ndim( VOption *options = 0 ) const; + +/** + * Test for monotonicity. + * @param options Set of options. + * @return true if in is monotonic. + */ +bool hist_ismonotonic( VOption *options = 0 ) const; + +/** + * Local histogram equalisation. + * + * **Optional parameters** + * - **max_slope** -- Maximum slope (CLAHE), int. + * + * @param width Window width in pixels. + * @param height Window height in pixels. + * @param options Set of options. + * @return Output image. + */ +VImage hist_local( int width, int height, VOption *options = 0 ) const; + +/** + * Match two histograms. + * @param ref Reference histogram. + * @param options Set of options. + * @return Output image. + */ +VImage hist_match( VImage ref, VOption *options = 0 ) const; + +/** + * Normalise histogram. + * @param options Set of options. + * @return Output image. + */ +VImage hist_norm( VOption *options = 0 ) const; + +/** + * Plot histogram. + * @param options Set of options. + * @return Output image. + */ +VImage hist_plot( VOption *options = 0 ) const; + +/** + * Find hough circle transform. + * + * **Optional parameters** + * - **scale** -- Scale down dimensions by this factor, int. + * - **min_radius** -- Smallest radius to search for, int. + * - **max_radius** -- Largest radius to search for, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage hough_circle( VOption *options = 0 ) const; + +/** + * Find hough line transform. + * + * **Optional parameters** + * - **width** -- horizontal size of parameter space, int. + * - **height** -- Vertical size of parameter space, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage hough_line( VOption *options = 0 ) const; + +/** + * Output to device with icc profile. + * + * **Optional parameters** + * - **pcs** -- Set Profile Connection Space, VipsPCS. + * - **intent** -- Rendering intent, VipsIntent. + * - **output_profile** -- Filename to load output profile from, const char *. + * - **depth** -- Output device space depth in bits, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage icc_export( VOption *options = 0 ) const; + +/** + * Import from device with icc profile. + * + * **Optional parameters** + * - **pcs** -- Set Profile Connection Space, VipsPCS. + * - **intent** -- Rendering intent, VipsIntent. + * - **embedded** -- Use embedded input profile, if available, bool. + * - **input_profile** -- Filename to load input profile from, const char *. + * + * @param options Set of options. + * @return Output image. + */ +VImage icc_import( VOption *options = 0 ) const; + +/** + * Transform between devices with icc profiles. + * + * **Optional parameters** + * - **pcs** -- Set Profile Connection Space, VipsPCS. + * - **intent** -- Rendering intent, VipsIntent. + * - **embedded** -- Use embedded input profile, if available, bool. + * - **input_profile** -- Filename to load input profile from, const char *. + * - **depth** -- Output device space depth in bits, int. + * + * @param output_profile Filename to load output profile from. + * @param options Set of options. + * @return Output image. + */ +VImage icc_transform( const char *output_profile, VOption *options = 0 ) const; + +/** + * Make a 1d image where pixel values are indexes. + * + * **Optional parameters** + * - **bands** -- Number of bands in LUT, int. + * - **ushort** -- Create a 16-bit LUT, bool. + * - **size** -- Size of 16-bit LUT, int. + * + * @param options Set of options. + * @return Output image. + */ +static VImage identity( VOption *options = 0 ); + +/** + * Ifthenelse an image. + * + * **Optional parameters** + * - **blend** -- Blend smoothly between then and else parts, bool. + * + * @param in1 Source for TRUE pixels. + * @param in2 Source for FALSE pixels. + * @param options Set of options. + * @return Output image. + */ +VImage ifthenelse( VImage in1, VImage in2, VOption *options = 0 ) const; + +/** + * Insert image @sub into @main at @x, @y. + * + * **Optional parameters** + * - **expand** -- Expand output to hold all of both inputs, bool. + * - **background** -- Color for new pixels, std::vector. + * + * @param sub Sub-image to insert into main image. + * @param x Left edge of sub in main. + * @param y Top edge of sub in main. + * @param options Set of options. + * @return Output image. + */ +VImage insert( VImage sub, int x, int y, VOption *options = 0 ) const; + +/** + * Invert an image. + * @param options Set of options. + * @return Output image. + */ +VImage invert( VOption *options = 0 ) const; + +/** + * Build an inverted look-up table. + * + * **Optional parameters** + * - **size** -- LUT size to generate, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage invertlut( VOption *options = 0 ) const; + +/** + * Inverse fft. + * + * **Optional parameters** + * - **real** -- Output only the real part of the transform, bool. + * + * @param options Set of options. + * @return Output image. + */ +VImage invfft( VOption *options = 0 ) const; + +/** + * Join a pair of images. + * + * **Optional parameters** + * - **expand** -- Expand output to hold all of both inputs, bool. + * - **shim** -- Pixels between images, int. + * - **background** -- Colour for new pixels, std::vector. + * - **align** -- Align on the low, centre or high coordinate edge, VipsAlign. + * + * @param in2 Second input image. + * @param direction Join left-right or up-down. + * @param options Set of options. + * @return Output image. + */ +VImage join( VImage in2, VipsDirection direction, VOption *options = 0 ) const; + +/** + * Load jpeg from file. + * + * **Optional parameters** + * - **shrink** -- Shrink factor on load, int. + * - **autorotate** -- Rotate image using exif orientation, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage jpegload( const char *filename, VOption *options = 0 ); + +/** + * Load jpeg from buffer. + * + * **Optional parameters** + * - **shrink** -- Shrink factor on load, int. + * - **autorotate** -- Rotate image using exif orientation, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param buffer Buffer to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage jpegload_buffer( VipsBlob *buffer, VOption *options = 0 ); + +/** + * Load image from jpeg source. + * + * **Optional parameters** + * - **shrink** -- Shrink factor on load, int. + * - **autorotate** -- Rotate image using exif orientation, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage jpegload_source( VSource source, VOption *options = 0 ); + +/** + * Save image to jpeg file. + * + * **Optional parameters** + * - **Q** -- Q factor, int. + * - **profile** -- ICC profile to embed, const char *. + * - **optimize_coding** -- Compute optimal Huffman coding tables, bool. + * - **interlace** -- Generate an interlaced (progressive) jpeg, bool. + * - **no_subsample** -- Disable chroma subsample, bool. + * - **trellis_quant** -- Apply trellis quantisation to each 8x8 block, bool. + * - **overshoot_deringing** -- Apply overshooting to samples with extreme values, bool. + * - **optimize_scans** -- Split spectrum of DCT coefficients into separate scans, bool. + * - **quant_table** -- Use predefined quantization table with given index, int. + * - **subsample_mode** -- Select chroma subsample operation mode, VipsForeignSubsample. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void jpegsave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image to jpeg buffer. + * + * **Optional parameters** + * - **Q** -- Q factor, int. + * - **profile** -- ICC profile to embed, const char *. + * - **optimize_coding** -- Compute optimal Huffman coding tables, bool. + * - **interlace** -- Generate an interlaced (progressive) jpeg, bool. + * - **no_subsample** -- Disable chroma subsample, bool. + * - **trellis_quant** -- Apply trellis quantisation to each 8x8 block, bool. + * - **overshoot_deringing** -- Apply overshooting to samples with extreme values, bool. + * - **optimize_scans** -- Split spectrum of DCT coefficients into separate scans, bool. + * - **quant_table** -- Use predefined quantization table with given index, int. + * - **subsample_mode** -- Select chroma subsample operation mode, VipsForeignSubsample. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param options Set of options. + * @return Buffer to save to. + */ +VipsBlob *jpegsave_buffer( VOption *options = 0 ) const; + +/** + * Save image to jpeg mime. + * + * **Optional parameters** + * - **Q** -- Q factor, int. + * - **profile** -- ICC profile to embed, const char *. + * - **optimize_coding** -- Compute optimal Huffman coding tables, bool. + * - **interlace** -- Generate an interlaced (progressive) jpeg, bool. + * - **no_subsample** -- Disable chroma subsample, bool. + * - **trellis_quant** -- Apply trellis quantisation to each 8x8 block, bool. + * - **overshoot_deringing** -- Apply overshooting to samples with extreme values, bool. + * - **optimize_scans** -- Split spectrum of DCT coefficients into separate scans, bool. + * - **quant_table** -- Use predefined quantization table with given index, int. + * - **subsample_mode** -- Select chroma subsample operation mode, VipsForeignSubsample. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param options Set of options. + */ +void jpegsave_mime( VOption *options = 0 ) const; + +/** + * Save image to jpeg target. + * + * **Optional parameters** + * - **Q** -- Q factor, int. + * - **profile** -- ICC profile to embed, const char *. + * - **optimize_coding** -- Compute optimal Huffman coding tables, bool. + * - **interlace** -- Generate an interlaced (progressive) jpeg, bool. + * - **no_subsample** -- Disable chroma subsample, bool. + * - **trellis_quant** -- Apply trellis quantisation to each 8x8 block, bool. + * - **overshoot_deringing** -- Apply overshooting to samples with extreme values, bool. + * - **optimize_scans** -- Split spectrum of DCT coefficients into separate scans, bool. + * - **quant_table** -- Use predefined quantization table with given index, int. + * - **subsample_mode** -- Select chroma subsample operation mode, VipsForeignSubsample. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param target Target to save to. + * @param options Set of options. + */ +void jpegsave_target( VTarget target, VOption *options = 0 ) const; + +/** + * Label regions in an image. + * @param options Set of options. + * @return Mask of region labels. + */ +VImage labelregions( VOption *options = 0 ) const; + +/** + * Calculate (a * in + b). + * + * **Optional parameters** + * - **uchar** -- Output should be uchar, bool. + * + * @param a Multiply by this. + * @param b Add this. + * @param options Set of options. + * @return Output image. + */ +VImage linear( std::vector a, std::vector b, VOption *options = 0 ) const; + +/** + * Cache an image as a set of lines. + * + * **Optional parameters** + * - **tile_height** -- Tile height in pixels, int. + * - **access** -- Expected access pattern, VipsAccess. + * - **threaded** -- Allow threaded access, bool. + * - **persistent** -- Keep cache between evaluations, bool. + * + * @param options Set of options. + * @return Output image. + */ +VImage linecache( VOption *options = 0 ) const; + +/** + * Make a laplacian of gaussian image. + * + * **Optional parameters** + * - **separable** -- Generate separable Logmatian, bool. + * - **integer** -- Generate integer Logmatian, bool. + * - **precision** -- Generate with this precision, VipsPrecision. + * + * @param sigma Radius of Logmatian. + * @param min_ampl Minimum amplitude of Logmatian. + * @param options Set of options. + * @return Output image. + */ +static VImage logmat( double sigma, double min_ampl, VOption *options = 0 ); + +/** + * Load file with imagemagick. + * + * **Optional parameters** + * - **all_frames** -- Read all frames from an image, bool. + * - **density** -- Canvas resolution for rendering vector formats like SVG, const char *. + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage magickload( const char *filename, VOption *options = 0 ); + +/** + * Load buffer with imagemagick. + * + * **Optional parameters** + * - **all_frames** -- Read all frames from an image, bool. + * - **density** -- Canvas resolution for rendering vector formats like SVG, const char *. + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param buffer Buffer to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage magickload_buffer( VipsBlob *buffer, VOption *options = 0 ); + +/** + * Save file with imagemagick. + * + * **Optional parameters** + * - **format** -- Format to save in, const char *. + * - **quality** -- Quality to use, int. + * - **optimize_gif_frames** -- Apply GIF frames optimization, bool. + * - **optimize_gif_transparency** -- Apply GIF transparency optimization, bool. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void magicksave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image to magick buffer. + * + * **Optional parameters** + * - **format** -- Format to save in, const char *. + * - **quality** -- Quality to use, int. + * - **optimize_gif_frames** -- Apply GIF frames optimization, bool. + * - **optimize_gif_transparency** -- Apply GIF transparency optimization, bool. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param options Set of options. + * @return Buffer to save to. + */ +VipsBlob *magicksave_buffer( VOption *options = 0 ) const; + +/** + * Resample with a map image. + * + * **Optional parameters** + * - **interpolate** -- Interpolate pixels with this, VInterpolate. + * + * @param index Index pixels with this. + * @param options Set of options. + * @return Output image. + */ +VImage mapim( VImage index, VOption *options = 0 ) const; + +/** + * Map an image though a lut. + * + * **Optional parameters** + * - **band** -- apply one-band lut to this band of in, int. + * + * @param lut Look-up table image. + * @param options Set of options. + * @return Output image. + */ +VImage maplut( VImage lut, VOption *options = 0 ) const; + +/** + * Make a butterworth filter. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **nodc** -- Remove DC component, bool. + * - **reject** -- Invert the sense of the filter, bool. + * - **optical** -- Rotate quadrants to optical space, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param order Filter order. + * @param frequency_cutoff Frequency cutoff. + * @param amplitude_cutoff Amplitude cutoff. + * @param options Set of options. + * @return Output image. + */ +static VImage mask_butterworth( int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options = 0 ); + +/** + * Make a butterworth_band filter. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **nodc** -- Remove DC component, bool. + * - **reject** -- Invert the sense of the filter, bool. + * - **optical** -- Rotate quadrants to optical space, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param order Filter order. + * @param frequency_cutoff_x Frequency cutoff x. + * @param frequency_cutoff_y Frequency cutoff y. + * @param radius radius of circle. + * @param amplitude_cutoff Amplitude cutoff. + * @param options Set of options. + * @return Output image. + */ +static VImage mask_butterworth_band( int width, int height, double order, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption *options = 0 ); + +/** + * Make a butterworth ring filter. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **nodc** -- Remove DC component, bool. + * - **reject** -- Invert the sense of the filter, bool. + * - **optical** -- Rotate quadrants to optical space, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param order Filter order. + * @param frequency_cutoff Frequency cutoff. + * @param amplitude_cutoff Amplitude cutoff. + * @param ringwidth Ringwidth. + * @param options Set of options. + * @return Output image. + */ +static VImage mask_butterworth_ring( int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = 0 ); + +/** + * Make fractal filter. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **nodc** -- Remove DC component, bool. + * - **reject** -- Invert the sense of the filter, bool. + * - **optical** -- Rotate quadrants to optical space, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param fractal_dimension Fractal dimension. + * @param options Set of options. + * @return Output image. + */ +static VImage mask_fractal( int width, int height, double fractal_dimension, VOption *options = 0 ); + +/** + * Make a gaussian filter. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **nodc** -- Remove DC component, bool. + * - **reject** -- Invert the sense of the filter, bool. + * - **optical** -- Rotate quadrants to optical space, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param frequency_cutoff Frequency cutoff. + * @param amplitude_cutoff Amplitude cutoff. + * @param options Set of options. + * @return Output image. + */ +static VImage mask_gaussian( int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options = 0 ); + +/** + * Make a gaussian filter. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **nodc** -- Remove DC component, bool. + * - **reject** -- Invert the sense of the filter, bool. + * - **optical** -- Rotate quadrants to optical space, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param frequency_cutoff_x Frequency cutoff x. + * @param frequency_cutoff_y Frequency cutoff y. + * @param radius radius of circle. + * @param amplitude_cutoff Amplitude cutoff. + * @param options Set of options. + * @return Output image. + */ +static VImage mask_gaussian_band( int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption *options = 0 ); + +/** + * Make a gaussian ring filter. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **nodc** -- Remove DC component, bool. + * - **reject** -- Invert the sense of the filter, bool. + * - **optical** -- Rotate quadrants to optical space, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param frequency_cutoff Frequency cutoff. + * @param amplitude_cutoff Amplitude cutoff. + * @param ringwidth Ringwidth. + * @param options Set of options. + * @return Output image. + */ +static VImage mask_gaussian_ring( int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = 0 ); + +/** + * Make an ideal filter. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **nodc** -- Remove DC component, bool. + * - **reject** -- Invert the sense of the filter, bool. + * - **optical** -- Rotate quadrants to optical space, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param frequency_cutoff Frequency cutoff. + * @param options Set of options. + * @return Output image. + */ +static VImage mask_ideal( int width, int height, double frequency_cutoff, VOption *options = 0 ); + +/** + * Make an ideal band filter. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **nodc** -- Remove DC component, bool. + * - **reject** -- Invert the sense of the filter, bool. + * - **optical** -- Rotate quadrants to optical space, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param frequency_cutoff_x Frequency cutoff x. + * @param frequency_cutoff_y Frequency cutoff y. + * @param radius radius of circle. + * @param options Set of options. + * @return Output image. + */ +static VImage mask_ideal_band( int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options = 0 ); + +/** + * Make an ideal ring filter. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **nodc** -- Remove DC component, bool. + * - **reject** -- Invert the sense of the filter, bool. + * - **optical** -- Rotate quadrants to optical space, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param frequency_cutoff Frequency cutoff. + * @param ringwidth Ringwidth. + * @param options Set of options. + * @return Output image. + */ +static VImage mask_ideal_ring( int width, int height, double frequency_cutoff, double ringwidth, VOption *options = 0 ); + +/** + * First-order match of two images. + * + * **Optional parameters** + * - **hwindow** -- Half window size, int. + * - **harea** -- Half area size, int. + * - **search** -- Search to improve tie-points, bool. + * - **interpolate** -- Interpolate pixels with this, VInterpolate. + * + * @param sec Secondary image. + * @param xr1 Position of first reference tie-point. + * @param yr1 Position of first reference tie-point. + * @param xs1 Position of first secondary tie-point. + * @param ys1 Position of first secondary tie-point. + * @param xr2 Position of second reference tie-point. + * @param yr2 Position of second reference tie-point. + * @param xs2 Position of second secondary tie-point. + * @param ys2 Position of second secondary tie-point. + * @param options Set of options. + * @return Output image. + */ +VImage match( VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = 0 ) const; + +/** + * Apply a math operation to an image. + * @param math math to perform. + * @param options Set of options. + * @return Output image. + */ +VImage math( VipsOperationMath math, VOption *options = 0 ) const; + +/** + * Binary math operations. + * @param right Right-hand image argument. + * @param math2 math to perform. + * @param options Set of options. + * @return Output image. + */ +VImage math2( VImage right, VipsOperationMath2 math2, VOption *options = 0 ) const; + +/** + * Binary math operations with a constant. + * @param math2 math to perform. + * @param c Array of constants. + * @param options Set of options. + * @return Output image. + */ +VImage math2_const( VipsOperationMath2 math2, std::vector c, VOption *options = 0 ) const; + +/** + * Load mat from file. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage matload( const char *filename, VOption *options = 0 ); + +/** + * Invert an matrix. + * @param options Set of options. + * @return Output matrix. + */ +VImage matrixinvert( VOption *options = 0 ) const; + +/** + * Load matrix. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage matrixload( const char *filename, VOption *options = 0 ); + +/** + * Load matrix. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage matrixload_source( VSource source, VOption *options = 0 ); + +/** + * Print matrix. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param options Set of options. + */ +void matrixprint( VOption *options = 0 ) const; + +/** + * Save image to matrix. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void matrixsave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image to matrix. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param target Target to save to. + * @param options Set of options. + */ +void matrixsave_target( VTarget target, VOption *options = 0 ) const; + +/** + * Find image maximum. + * + * **Optional parameters** + * - **size** -- Number of maximum values to find, int. + * + * @param options Set of options. + * @return Output value. + */ +double max( VOption *options = 0 ) const; + +/** + * Measure a set of patches on a color chart. + * + * **Optional parameters** + * - **left** -- Left edge of extract area, int. + * - **top** -- Top edge of extract area, int. + * - **width** -- Width of extract area, int. + * - **height** -- Height of extract area, int. + * + * @param h Number of patches across chart. + * @param v Number of patches down chart. + * @param options Set of options. + * @return Output array of statistics. + */ +VImage measure( int h, int v, VOption *options = 0 ) const; + +/** + * Merge two images. + * + * **Optional parameters** + * - **mblend** -- Maximum blend size, int. + * + * @param sec Secondary image. + * @param direction Horizontal or vertical merge. + * @param dx Horizontal displacement from sec to ref. + * @param dy Vertical displacement from sec to ref. + * @param options Set of options. + * @return Output image. + */ +VImage merge( VImage sec, VipsDirection direction, int dx, int dy, VOption *options = 0 ) const; + +/** + * Find image minimum. + * + * **Optional parameters** + * - **size** -- Number of minimum values to find, int. + * + * @param options Set of options. + * @return Output value. + */ +double min( VOption *options = 0 ) const; + +/** + * Morphology operation. + * @param mask Input matrix image. + * @param morph Morphological operation to perform. + * @param options Set of options. + * @return Output image. + */ +VImage morph( VImage mask, VipsOperationMorphology morph, VOption *options = 0 ) const; + +/** + * Mosaic two images. + * + * **Optional parameters** + * - **hwindow** -- Half window size, int. + * - **harea** -- Half area size, int. + * - **mblend** -- Maximum blend size, int. + * - **bandno** -- Band to search for features on, int. + * + * @param sec Secondary image. + * @param direction Horizontal or vertical mosaic. + * @param xref Position of reference tie-point. + * @param yref Position of reference tie-point. + * @param xsec Position of secondary tie-point. + * @param ysec Position of secondary tie-point. + * @param options Set of options. + * @return Output image. + */ +VImage mosaic( VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options = 0 ) const; + +/** + * First-order mosaic of two images. + * + * **Optional parameters** + * - **hwindow** -- Half window size, int. + * - **harea** -- Half area size, int. + * - **search** -- Search to improve tie-points, bool. + * - **interpolate** -- Interpolate pixels with this, VInterpolate. + * - **mblend** -- Maximum blend size, int. + * - **bandno** -- Band to search for features on, int. + * + * @param sec Secondary image. + * @param direction Horizontal or vertical mosaic. + * @param xr1 Position of first reference tie-point. + * @param yr1 Position of first reference tie-point. + * @param xs1 Position of first secondary tie-point. + * @param ys1 Position of first secondary tie-point. + * @param xr2 Position of second reference tie-point. + * @param yr2 Position of second reference tie-point. + * @param xs2 Position of second secondary tie-point. + * @param ys2 Position of second secondary tie-point. + * @param options Set of options. + * @return Output image. + */ +VImage mosaic1( VImage sec, VipsDirection direction, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = 0 ) const; + +/** + * Pick most-significant byte from an image. + * + * **Optional parameters** + * - **band** -- Band to msb, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage msb( VOption *options = 0 ) const; + +/** + * Multiply two images. + * @param right Right-hand image argument. + * @param options Set of options. + * @return Output image. + */ +VImage multiply( VImage right, VOption *options = 0 ) const; + +/** + * Load nifti volume. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage niftiload( const char *filename, VOption *options = 0 ); + +/** + * Load a nifti image. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param options Set of options. + * @return Output image. + */ +static VImage niftiload_base( VOption *options = 0 ); + +/** + * Load nifti volumes. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage niftiload_source( VSource source, VOption *options = 0 ); + +/** + * Save image to nifti file. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void niftisave( const char *filename, VOption *options = 0 ) const; + +/** + * Load an openexr image. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage openexrload( const char *filename, VOption *options = 0 ); + +/** + * Load file with openslide. + * + * **Optional parameters** + * - **attach_associated** -- Attach all associated images, bool. + * - **level** -- Load this level from the file, int. + * - **autocrop** -- Crop to image bounds, bool. + * - **associated** -- Load this associated image, const char *. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage openslideload( const char *filename, VOption *options = 0 ); + +/** + * Load source with openslide. + * + * **Optional parameters** + * - **attach_associated** -- Attach all associated images, bool. + * - **level** -- Load this level from the file, int. + * - **autocrop** -- Crop to image bounds, bool. + * - **associated** -- Load this associated image, const char *. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage openslideload_source( VSource source, VOption *options = 0 ); + +/** + * Load pdf from file. + * + * **Optional parameters** + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **dpi** -- Render at this DPI, double. + * - **scale** -- Scale output by this factor, double. + * - **background** -- Background value, std::vector. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage pdfload( const char *filename, VOption *options = 0 ); + +/** + * Load pdf from buffer. + * + * **Optional parameters** + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **dpi** -- Render at this DPI, double. + * - **scale** -- Scale output by this factor, double. + * - **background** -- Background value, std::vector. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param buffer Buffer to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage pdfload_buffer( VipsBlob *buffer, VOption *options = 0 ); + +/** + * Load pdf from source. + * + * **Optional parameters** + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **dpi** -- Render at this DPI, double. + * - **scale** -- Scale output by this factor, double. + * - **background** -- Background value, std::vector. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage pdfload_source( VSource source, VOption *options = 0 ); + +/** + * Find threshold for percent of pixels. + * @param percent Percent of pixels. + * @param options Set of options. + * @return Threshold above which lie percent of pixels. + */ +int percent( double percent, VOption *options = 0 ) const; + +/** + * Make a perlin noise image. + * + * **Optional parameters** + * - **cell_size** -- Size of Perlin cells, int. + * - **uchar** -- Output an unsigned char image, bool. + * - **seed** -- Random number seed, int. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +static VImage perlin( int width, int height, VOption *options = 0 ); + +/** + * Calculate phase correlation. + * @param in2 Second input image. + * @param options Set of options. + * @return Output image. + */ +VImage phasecor( VImage in2, VOption *options = 0 ) const; + +/** + * Load png from file. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage pngload( const char *filename, VOption *options = 0 ); + +/** + * Load png from buffer. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param buffer Buffer to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage pngload_buffer( VipsBlob *buffer, VOption *options = 0 ); + +/** + * Load png from source. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage pngload_source( VSource source, VOption *options = 0 ); + +/** + * Save image to png file. + * + * **Optional parameters** + * - **compression** -- Compression factor, int. + * - **interlace** -- Interlace image, bool. + * - **profile** -- ICC profile to embed, const char *. + * - **filter** -- libpng row filter flag(s), int. + * - **palette** -- Quantise to 8bpp palette, bool. + * - **colours** -- Max number of palette colours, int. + * - **Q** -- Quantisation quality, int. + * - **dither** -- Amount of dithering, double. + * - **bitdepth** -- Write as a 1, 2, 4 or 8 bit image, int. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void pngsave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image to png buffer. + * + * **Optional parameters** + * - **compression** -- Compression factor, int. + * - **interlace** -- Interlace image, bool. + * - **profile** -- ICC profile to embed, const char *. + * - **filter** -- libpng row filter flag(s), int. + * - **palette** -- Quantise to 8bpp palette, bool. + * - **colours** -- Max number of palette colours, int. + * - **Q** -- Quantisation quality, int. + * - **dither** -- Amount of dithering, double. + * - **bitdepth** -- Write as a 1, 2, 4 or 8 bit image, int. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param options Set of options. + * @return Buffer to save to. + */ +VipsBlob *pngsave_buffer( VOption *options = 0 ) const; + +/** + * Save image to target as png. + * + * **Optional parameters** + * - **compression** -- Compression factor, int. + * - **interlace** -- Interlace image, bool. + * - **profile** -- ICC profile to embed, const char *. + * - **filter** -- libpng row filter flag(s), int. + * - **palette** -- Quantise to 8bpp palette, bool. + * - **colours** -- Max number of palette colours, int. + * - **Q** -- Quantisation quality, int. + * - **dither** -- Amount of dithering, double. + * - **bitdepth** -- Write as a 1, 2, 4 or 8 bit image, int. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param target Target to save to. + * @param options Set of options. + */ +void pngsave_target( VTarget target, VOption *options = 0 ) const; + +/** + * Load ppm from file. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage ppmload( const char *filename, VOption *options = 0 ); + +/** + * Load ppm base class. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage ppmload_source( VSource source, VOption *options = 0 ); + +/** + * Save image to ppm file. + * + * **Optional parameters** + * - **ascii** -- save as ascii, bool. + * - **squash** -- save as one bit, bool. + * - **bitdepth** -- set to 1 to write as a 1 bit image, int. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void ppmsave( const char *filename, VOption *options = 0 ) const; + +/** + * Save to ppm. + * + * **Optional parameters** + * - **ascii** -- save as ascii, bool. + * - **squash** -- save as one bit, bool. + * - **bitdepth** -- set to 1 to write as a 1 bit image, int. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param target Target to save to. + * @param options Set of options. + */ +void ppmsave_target( VTarget target, VOption *options = 0 ) const; + +/** + * Premultiply image alpha. + * + * **Optional parameters** + * - **max_alpha** -- Maximum value of alpha channel, double. + * + * @param options Set of options. + * @return Output image. + */ +VImage premultiply( VOption *options = 0 ) const; + +/** + * Find image profiles. + * @param rows First non-zero pixel in row. + * @param options Set of options. + * @return First non-zero pixel in column. + */ +VImage profile( VImage *rows, VOption *options = 0 ) const; + +/** + * Load named icc profile. + * @param name Profile name. + * @param options Set of options. + * @return Loaded profile. + */ +static VipsBlob *profile_load( const char *name, VOption *options = 0 ); + +/** + * Find image projections. + * @param rows Sums of rows. + * @param options Set of options. + * @return Sums of columns. + */ +VImage project( VImage *rows, VOption *options = 0 ) const; + +/** + * Resample an image with a quadratic transform. + * + * **Optional parameters** + * - **interpolate** -- Interpolate values with this, VInterpolate. + * + * @param coeff Coefficient matrix. + * @param options Set of options. + * @return Output image. + */ +VImage quadratic( VImage coeff, VOption *options = 0 ) const; + +/** + * Unpack radiance coding to float rgb. + * @param options Set of options. + * @return Output image. + */ +VImage rad2float( VOption *options = 0 ) const; + +/** + * Load a radiance image from a file. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage radload( const char *filename, VOption *options = 0 ); + +/** + * Load rad from buffer. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param buffer Buffer to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage radload_buffer( VipsBlob *buffer, VOption *options = 0 ); + +/** + * Load rad from source. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage radload_source( VSource source, VOption *options = 0 ); + +/** + * Save image to radiance file. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void radsave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image to radiance buffer. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param options Set of options. + * @return Buffer to save to. + */ +VipsBlob *radsave_buffer( VOption *options = 0 ) const; + +/** + * Save image to radiance target. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param target Target to save to. + * @param options Set of options. + */ +void radsave_target( VTarget target, VOption *options = 0 ) const; + +/** + * Rank filter. + * @param width Window width in pixels. + * @param height Window height in pixels. + * @param index Select pixel at index. + * @param options Set of options. + * @return Output image. + */ +VImage rank( int width, int height, int index, VOption *options = 0 ) const; + +/** + * Load raw data from a file. + * + * **Optional parameters** + * - **offset** -- Offset in bytes from start of file, guint64. + * - **format** -- Pixel format in image, VipsBandFormat. + * - **interpretation** -- Pixel interpretation, VipsInterpretation. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param bands Number of bands in image. + * @param options Set of options. + * @return Output image. + */ +static VImage rawload( const char *filename, int width, int height, int bands, VOption *options = 0 ); + +/** + * Save image to raw file. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void rawsave( const char *filename, VOption *options = 0 ) const; + +/** + * Write raw image to file descriptor. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param fd File descriptor to write to. + * @param options Set of options. + */ +void rawsave_fd( int fd, VOption *options = 0 ) const; + +/** + * Linear recombination with matrix. + * @param m matrix of coefficients. + * @param options Set of options. + * @return Output image. + */ +VImage recomb( VImage m, VOption *options = 0 ) const; + +/** + * Reduce an image. + * + * **Optional parameters** + * - **kernel** -- Resampling kernel, VipsKernel. + * - **centre** -- Use centre sampling convention, bool. + * + * @param hshrink Horizontal shrink factor. + * @param vshrink Vertical shrink factor. + * @param options Set of options. + * @return Output image. + */ +VImage reduce( double hshrink, double vshrink, VOption *options = 0 ) const; + +/** + * Shrink an image horizontally. + * + * **Optional parameters** + * - **kernel** -- Resampling kernel, VipsKernel. + * - **centre** -- Use centre sampling convention, bool. + * + * @param hshrink Horizontal shrink factor. + * @param options Set of options. + * @return Output image. + */ +VImage reduceh( double hshrink, VOption *options = 0 ) const; + +/** + * Shrink an image vertically. + * + * **Optional parameters** + * - **kernel** -- Resampling kernel, VipsKernel. + * - **centre** -- Use centre sampling convention, bool. + * + * @param vshrink Vertical shrink factor. + * @param options Set of options. + * @return Output image. + */ +VImage reducev( double vshrink, VOption *options = 0 ) const; + +/** + * Relational operation on two images. + * @param right Right-hand image argument. + * @param relational relational to perform. + * @param options Set of options. + * @return Output image. + */ +VImage relational( VImage right, VipsOperationRelational relational, VOption *options = 0 ) const; + +/** + * Relational operations against a constant. + * @param relational relational to perform. + * @param c Array of constants. + * @param options Set of options. + * @return Output image. + */ +VImage relational_const( VipsOperationRelational relational, std::vector c, VOption *options = 0 ) const; + +/** + * Remainder after integer division of two images. + * @param right Right-hand image argument. + * @param options Set of options. + * @return Output image. + */ +VImage remainder( VImage right, VOption *options = 0 ) const; + +/** + * Remainder after integer division of an image and a constant. + * @param c Array of constants. + * @param options Set of options. + * @return Output image. + */ +VImage remainder_const( std::vector c, VOption *options = 0 ) const; + +/** + * Replicate an image. + * @param across Repeat this many times horizontally. + * @param down Repeat this many times vertically. + * @param options Set of options. + * @return Output image. + */ +VImage replicate( int across, int down, VOption *options = 0 ) const; + +/** + * Resize an image. + * + * **Optional parameters** + * - **interpolate** -- Interpolate pixels with this, VInterpolate. + * - **kernel** -- Resampling kernel, VipsKernel. + * - **centre** -- Use centre sampling convention, bool. + * - **vscale** -- Vertical scale image by this factor, double. + * - **idx** -- Horizontal input displacement, double. + * - **idy** -- Vertical input displacement, double. + * + * @param scale Scale image by this factor. + * @param options Set of options. + * @return Output image. + */ +VImage resize( double scale, VOption *options = 0 ) const; + +/** + * Rotate an image. + * @param angle Angle to rotate image. + * @param options Set of options. + * @return Output image. + */ +VImage rot( VipsAngle angle, VOption *options = 0 ) const; + +/** + * Rotate an image. + * + * **Optional parameters** + * - **angle** -- Angle to rotate image, VipsAngle45. + * + * @param options Set of options. + * @return Output image. + */ +VImage rot45( VOption *options = 0 ) const; + +/** + * Rotate an image by a number of degrees. + * + * **Optional parameters** + * - **interpolate** -- Interpolate pixels with this, VInterpolate. + * - **background** -- Background value, std::vector. + * - **odx** -- Horizontal output displacement, double. + * - **ody** -- Vertical output displacement, double. + * - **idx** -- Horizontal input displacement, double. + * - **idy** -- Vertical input displacement, double. + * + * @param angle Rotate anticlockwise by this many degrees. + * @param options Set of options. + * @return Output image. + */ +VImage rotate( double angle, VOption *options = 0 ) const; + +/** + * Perform a round function on an image. + * @param round rounding operation to perform. + * @param options Set of options. + * @return Output image. + */ +VImage round( VipsOperationRound round, VOption *options = 0 ) const; + +/** + * Transform srgb to hsv. + * @param options Set of options. + * @return Output image. + */ +VImage sRGB2HSV( VOption *options = 0 ) const; + +/** + * Convert an srgb image to scrgb. + * @param options Set of options. + * @return Output image. + */ +VImage sRGB2scRGB( VOption *options = 0 ) const; + +/** + * Convert scrgb to bw. + * + * **Optional parameters** + * - **depth** -- Output device space depth in bits, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage scRGB2BW( VOption *options = 0 ) const; + +/** + * Transform scrgb to xyz. + * @param options Set of options. + * @return Output image. + */ +VImage scRGB2XYZ( VOption *options = 0 ) const; + +/** + * Convert an scrgb image to srgb. + * + * **Optional parameters** + * - **depth** -- Output device space depth in bits, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage scRGB2sRGB( VOption *options = 0 ) const; + +/** + * Scale an image to uchar. + * + * **Optional parameters** + * - **exp** -- Exponent for log scale, double. + * - **log** -- Log scale, bool. + * + * @param options Set of options. + * @return Output image. + */ +VImage scale( VOption *options = 0 ) const; + +/** + * Check sequential access. + * + * **Optional parameters** + * - **trace** -- trace pixel requests, bool. + * - **tile_height** -- Tile height in pixels, int. + * - **access** -- Expected access pattern, VipsAccess. + * + * @param options Set of options. + * @return Output image. + */ +VImage sequential( VOption *options = 0 ) const; + +/** + * Unsharp masking for print. + * + * **Optional parameters** + * - **radius** -- radius of Gaussian, int. + * - **sigma** -- Sigma of Gaussian, double. + * - **x1** -- Flat/jaggy threshold, double. + * - **y2** -- Maximum brightening, double. + * - **y3** -- Maximum darkening, double. + * - **m1** -- Slope for flat areas, double. + * - **m2** -- Slope for jaggy areas, double. + * + * @param options Set of options. + * @return Output image. + */ +VImage sharpen( VOption *options = 0 ) const; + +/** + * Shrink an image. + * @param hshrink Horizontal shrink factor. + * @param vshrink Vertical shrink factor. + * @param options Set of options. + * @return Output image. + */ +VImage shrink( double hshrink, double vshrink, VOption *options = 0 ) const; + +/** + * Shrink an image horizontally. + * @param hshrink Horizontal shrink factor. + * @param options Set of options. + * @return Output image. + */ +VImage shrinkh( int hshrink, VOption *options = 0 ) const; + +/** + * Shrink an image vertically. + * @param vshrink Vertical shrink factor. + * @param options Set of options. + * @return Output image. + */ +VImage shrinkv( int vshrink, VOption *options = 0 ) const; + +/** + * Unit vector of pixel. + * @param options Set of options. + * @return Output image. + */ +VImage sign( VOption *options = 0 ) const; + +/** + * Similarity transform of an image. + * + * **Optional parameters** + * - **scale** -- Scale by this factor, double. + * - **angle** -- Rotate anticlockwise by this many degrees, double. + * - **interpolate** -- Interpolate pixels with this, VInterpolate. + * - **background** -- Background value, std::vector. + * - **odx** -- Horizontal output displacement, double. + * - **ody** -- Vertical output displacement, double. + * - **idx** -- Horizontal input displacement, double. + * - **idy** -- Vertical input displacement, double. + * + * @param options Set of options. + * @return Output image. + */ +VImage similarity( VOption *options = 0 ) const; + +/** + * Make a 2d sine wave. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * - **hfreq** -- Horizontal spatial frequency, double. + * - **vfreq** -- Vertical spatial frequency, double. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +static VImage sines( int width, int height, VOption *options = 0 ); + +/** + * Extract an area from an image. + * + * **Optional parameters** + * - **interesting** -- How to measure interestingness, VipsInteresting. + * + * @param width Width of extract area. + * @param height Height of extract area. + * @param options Set of options. + * @return Output image. + */ +VImage smartcrop( int width, int height, VOption *options = 0 ) const; + +/** + * Sobel edge detector. + * @param options Set of options. + * @return Output image. + */ +VImage sobel( VOption *options = 0 ) const; + +/** + * Spatial correlation. + * @param ref Input reference image. + * @param options Set of options. + * @return Output image. + */ +VImage spcor( VImage ref, VOption *options = 0 ) const; + +/** + * Make displayable power spectrum. + * @param options Set of options. + * @return Output image. + */ +VImage spectrum( VOption *options = 0 ) const; + +/** + * Find many image stats. + * @param options Set of options. + * @return Output array of statistics. + */ +VImage stats( VOption *options = 0 ) const; + +/** + * Statistical difference. + * + * **Optional parameters** + * - **s0** -- New deviation, double. + * - **b** -- Weight of new deviation, double. + * - **m0** -- New mean, double. + * - **a** -- Weight of new mean, double. + * + * @param width Window width in pixels. + * @param height Window height in pixels. + * @param options Set of options. + * @return Output image. + */ +VImage stdif( int width, int height, VOption *options = 0 ) const; + +/** + * Subsample an image. + * + * **Optional parameters** + * - **point** -- Point sample, bool. + * + * @param xfac Horizontal subsample factor. + * @param yfac Vertical subsample factor. + * @param options Set of options. + * @return Output image. + */ +VImage subsample( int xfac, int yfac, VOption *options = 0 ) const; + +/** + * Subtract two images. + * @param right Right-hand image argument. + * @param options Set of options. + * @return Output image. + */ +VImage subtract( VImage right, VOption *options = 0 ) const; + +/** + * Sum an array of images. + * @param in Array of input images. + * @param options Set of options. + * @return Output image. + */ +static VImage sum( std::vector in, VOption *options = 0 ); + +/** + * Load svg with rsvg. + * + * **Optional parameters** + * - **dpi** -- Render at this DPI, double. + * - **scale** -- Scale output by this factor, double. + * - **unlimited** -- Allow SVG of any size, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage svgload( const char *filename, VOption *options = 0 ); + +/** + * Load svg with rsvg. + * + * **Optional parameters** + * - **dpi** -- Render at this DPI, double. + * - **scale** -- Scale output by this factor, double. + * - **unlimited** -- Allow SVG of any size, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param buffer Buffer to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage svgload_buffer( VipsBlob *buffer, VOption *options = 0 ); + +/** + * Load svg from source. + * + * **Optional parameters** + * - **dpi** -- Render at this DPI, double. + * - **scale** -- Scale output by this factor, double. + * - **unlimited** -- Allow SVG of any size, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage svgload_source( VSource source, VOption *options = 0 ); + +/** + * Find the index of the first non-zero pixel in tests. + * @param tests Table of images to test. + * @param options Set of options. + * @return Output image. + */ +static VImage switch_image( std::vector tests, VOption *options = 0 ); + +/** + * Run an external command. + * + * **Optional parameters** + * - **in** -- Array of input images, std::vector. + * - **out_format** -- Format for output filename, const char *. + * - **in_format** -- Format for input filename, const char *. + * + * @param cmd_format Command to run. + * @param options Set of options. + */ +static void system( const char *cmd_format, VOption *options = 0 ); + +/** + * Make a text image. + * + * **Optional parameters** + * - **font** -- Font to render with, const char *. + * - **width** -- Maximum image width in pixels, int. + * - **height** -- Maximum image height in pixels, int. + * - **align** -- Align on the low, centre or high edge, VipsAlign. + * - **dpi** -- DPI to render at, int. + * - **justify** -- Justify lines, bool. + * - **spacing** -- Line spacing, int. + * - **fontfile** -- Load this font file, const char *. + * + * @param text Text to render. + * @param options Set of options. + * @return Output image. + */ +static VImage text( const char *text, VOption *options = 0 ); + +/** + * Generate thumbnail from file. + * + * **Optional parameters** + * - **height** -- Size to this height, int. + * - **size** -- Only upsize, only downsize, or both, VipsSize. + * - **no_rotate** -- Don't use orientation tags to rotate image upright, bool. + * - **crop** -- Reduce to fill target rectangle, then crop, VipsInteresting. + * - **linear** -- Reduce in linear light, bool. + * - **import_profile** -- Fallback import profile, const char *. + * - **export_profile** -- Fallback export profile, const char *. + * - **intent** -- Rendering intent, VipsIntent. + * - **auto_rotate** -- Use orientation tags to rotate image upright, bool. + * + * @param filename Filename to read from. + * @param width Size to this width. + * @param options Set of options. + * @return Output image. + */ +static VImage thumbnail( const char *filename, int width, VOption *options = 0 ); + +/** + * Generate thumbnail from buffer. + * + * **Optional parameters** + * - **option_string** -- Options that are passed on to the underlying loader, const char *. + * - **height** -- Size to this height, int. + * - **size** -- Only upsize, only downsize, or both, VipsSize. + * - **no_rotate** -- Don't use orientation tags to rotate image upright, bool. + * - **crop** -- Reduce to fill target rectangle, then crop, VipsInteresting. + * - **linear** -- Reduce in linear light, bool. + * - **import_profile** -- Fallback import profile, const char *. + * - **export_profile** -- Fallback export profile, const char *. + * - **intent** -- Rendering intent, VipsIntent. + * - **auto_rotate** -- Use orientation tags to rotate image upright, bool. + * + * @param buffer Buffer to load from. + * @param width Size to this width. + * @param options Set of options. + * @return Output image. + */ +static VImage thumbnail_buffer( VipsBlob *buffer, int width, VOption *options = 0 ); + +/** + * Generate thumbnail from image. + * + * **Optional parameters** + * - **height** -- Size to this height, int. + * - **size** -- Only upsize, only downsize, or both, VipsSize. + * - **no_rotate** -- Don't use orientation tags to rotate image upright, bool. + * - **crop** -- Reduce to fill target rectangle, then crop, VipsInteresting. + * - **linear** -- Reduce in linear light, bool. + * - **import_profile** -- Fallback import profile, const char *. + * - **export_profile** -- Fallback export profile, const char *. + * - **intent** -- Rendering intent, VipsIntent. + * - **auto_rotate** -- Use orientation tags to rotate image upright, bool. + * + * @param width Size to this width. + * @param options Set of options. + * @return Output image. + */ +VImage thumbnail_image( int width, VOption *options = 0 ) const; + +/** + * Generate thumbnail from source. + * + * **Optional parameters** + * - **option_string** -- Options that are passed on to the underlying loader, const char *. + * - **height** -- Size to this height, int. + * - **size** -- Only upsize, only downsize, or both, VipsSize. + * - **no_rotate** -- Don't use orientation tags to rotate image upright, bool. + * - **crop** -- Reduce to fill target rectangle, then crop, VipsInteresting. + * - **linear** -- Reduce in linear light, bool. + * - **import_profile** -- Fallback import profile, const char *. + * - **export_profile** -- Fallback export profile, const char *. + * - **intent** -- Rendering intent, VipsIntent. + * - **auto_rotate** -- Use orientation tags to rotate image upright, bool. + * + * @param source Source to load from. + * @param width Size to this width. + * @param options Set of options. + * @return Output image. + */ +static VImage thumbnail_source( VSource source, int width, VOption *options = 0 ); + +/** + * Load tiff from file. + * + * **Optional parameters** + * - **page** -- Load this page from the image, int. + * - **subifd** -- Select subifd index, int. + * - **n** -- Load this many pages, int. + * - **autorotate** -- Rotate image using orientation tag, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage tiffload( const char *filename, VOption *options = 0 ); + +/** + * Load tiff from buffer. + * + * **Optional parameters** + * - **page** -- Load this page from the image, int. + * - **subifd** -- Select subifd index, int. + * - **n** -- Load this many pages, int. + * - **autorotate** -- Rotate image using orientation tag, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param buffer Buffer to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage tiffload_buffer( VipsBlob *buffer, VOption *options = 0 ); + +/** + * Load tiff from source. + * + * **Optional parameters** + * - **page** -- Load this page from the image, int. + * - **subifd** -- Select subifd index, int. + * - **n** -- Load this many pages, int. + * - **autorotate** -- Rotate image using orientation tag, bool. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage tiffload_source( VSource source, VOption *options = 0 ); + +/** + * Save image to tiff file. + * + * **Optional parameters** + * - **compression** -- Compression for this file, VipsForeignTiffCompression. + * - **Q** -- Q factor, int. + * - **predictor** -- Compression prediction, VipsForeignTiffPredictor. + * - **profile** -- ICC profile to embed, const char *. + * - **tile** -- Write a tiled tiff, bool. + * - **tile_width** -- Tile width in pixels, int. + * - **tile_height** -- Tile height in pixels, int. + * - **pyramid** -- Write a pyramidal tiff, bool. + * - **squash** -- Squash images down to 1 bit, bool. + * - **miniswhite** -- Use 0 for white in 1-bit images, bool. + * - **bitdepth** -- Write as a 1, 2, 4 or 8 bit image, int. + * - **resunit** -- Resolution unit, VipsForeignTiffResunit. + * - **xres** -- Horizontal resolution in pixels/mm, double. + * - **yres** -- Vertical resolution in pixels/mm, double. + * - **bigtiff** -- Write a bigtiff image, bool. + * - **rgbjpeg** -- Output RGB JPEG rather than YCbCr, bool. + * - **properties** -- Write a properties document to IMAGEDESCRIPTION, bool. + * - **region_shrink** -- Method to shrink regions, VipsRegionShrink. + * - **level** -- ZSTD compression level, int. + * - **subifd** -- Save pyr layers as sub-IFDs, bool. + * - **lossless** -- Enable WEBP lossless mode, bool. + * - **depth** -- Pyramid depth, VipsForeignDzDepth. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void tiffsave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image to tiff buffer. + * + * **Optional parameters** + * - **compression** -- Compression for this file, VipsForeignTiffCompression. + * - **Q** -- Q factor, int. + * - **predictor** -- Compression prediction, VipsForeignTiffPredictor. + * - **profile** -- ICC profile to embed, const char *. + * - **tile** -- Write a tiled tiff, bool. + * - **tile_width** -- Tile width in pixels, int. + * - **tile_height** -- Tile height in pixels, int. + * - **pyramid** -- Write a pyramidal tiff, bool. + * - **squash** -- Squash images down to 1 bit, bool. + * - **miniswhite** -- Use 0 for white in 1-bit images, bool. + * - **bitdepth** -- Write as a 1, 2, 4 or 8 bit image, int. + * - **resunit** -- Resolution unit, VipsForeignTiffResunit. + * - **xres** -- Horizontal resolution in pixels/mm, double. + * - **yres** -- Vertical resolution in pixels/mm, double. + * - **bigtiff** -- Write a bigtiff image, bool. + * - **rgbjpeg** -- Output RGB JPEG rather than YCbCr, bool. + * - **properties** -- Write a properties document to IMAGEDESCRIPTION, bool. + * - **region_shrink** -- Method to shrink regions, VipsRegionShrink. + * - **level** -- ZSTD compression level, int. + * - **subifd** -- Save pyr layers as sub-IFDs, bool. + * - **lossless** -- Enable WEBP lossless mode, bool. + * - **depth** -- Pyramid depth, VipsForeignDzDepth. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param options Set of options. + * @return Buffer to save to. + */ +VipsBlob *tiffsave_buffer( VOption *options = 0 ) const; + +/** + * Cache an image as a set of tiles. + * + * **Optional parameters** + * - **tile_width** -- Tile width in pixels, int. + * - **tile_height** -- Tile height in pixels, int. + * - **max_tiles** -- Maximum number of tiles to cache, int. + * - **access** -- Expected access pattern, VipsAccess. + * - **threaded** -- Allow threaded access, bool. + * - **persistent** -- Keep cache between evaluations, bool. + * + * @param options Set of options. + * @return Output image. + */ +VImage tilecache( VOption *options = 0 ) const; + +/** + * Build a look-up table. + * + * **Optional parameters** + * - **in_max** -- Size of LUT to build, int. + * - **out_max** -- Maximum value in output LUT, int. + * - **Lb** -- Lowest value in output, double. + * - **Lw** -- Highest value in output, double. + * - **Ps** -- Position of shadow, double. + * - **Pm** -- Position of mid-tones, double. + * - **Ph** -- Position of highlights, double. + * - **S** -- Adjust shadows by this much, double. + * - **M** -- Adjust mid-tones by this much, double. + * - **H** -- Adjust highlights by this much, double. + * + * @param options Set of options. + * @return Output image. + */ +static VImage tonelut( VOption *options = 0 ); + +/** + * Transpose3d an image. + * + * **Optional parameters** + * - **page_height** -- Height of each input page, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage transpose3d( VOption *options = 0 ) const; + +/** + * Unpremultiply image alpha. + * + * **Optional parameters** + * - **max_alpha** -- Maximum value of alpha channel, double. + * - **alpha_band** -- Unpremultiply with this alpha, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage unpremultiply( VOption *options = 0 ) const; + +/** + * Load vips from file. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage vipsload( const char *filename, VOption *options = 0 ); + +/** + * Load vips from source. + * + * **Optional parameters** + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage vipsload_source( VSource source, VOption *options = 0 ); + +/** + * Save image to file in vips format. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void vipssave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image to target in vips format. + * + * **Optional parameters** + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param target Target to save to. + * @param options Set of options. + */ +void vipssave_target( VTarget target, VOption *options = 0 ) const; + +/** + * Load webp from file. + * + * **Optional parameters** + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **scale** -- Scale factor on load, double. + * - **shrink** -- Shrink factor on load, int. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param filename Filename to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage webpload( const char *filename, VOption *options = 0 ); + +/** + * Load webp from buffer. + * + * **Optional parameters** + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **scale** -- Scale factor on load, double. + * - **shrink** -- Shrink factor on load, int. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param buffer Buffer to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage webpload_buffer( VipsBlob *buffer, VOption *options = 0 ); + +/** + * Load webp from source. + * + * **Optional parameters** + * - **page** -- Load this page from the file, int. + * - **n** -- Load this many pages, int. + * - **scale** -- Scale factor on load, double. + * - **shrink** -- Shrink factor on load, int. + * - **memory** -- Force open via memory, bool. + * - **access** -- Required access pattern for this file, VipsAccess. + * - **sequential** -- Sequential read only, bool. + * - **fail** -- Fail on first error, bool. + * - **disc** -- Open to disc, bool. + * + * @param source Source to load from. + * @param options Set of options. + * @return Output image. + */ +static VImage webpload_source( VSource source, VOption *options = 0 ); + +/** + * Save image to webp file. + * + * **Optional parameters** + * - **Q** -- Q factor, int. + * - **lossless** -- enable lossless compression, bool. + * - **preset** -- Preset for lossy compression, VipsForeignWebpPreset. + * - **smart_subsample** -- Enable high quality chroma subsampling, bool. + * - **near_lossless** -- Enable preprocessing in lossless mode (uses Q), bool. + * - **alpha_q** -- Change alpha plane fidelity for lossy compression, int. + * - **min_size** -- Optimise for minium size, bool. + * - **kmin** -- Minimum number of frames between key frames, int. + * - **kmax** -- Maximum number of frames between key frames, int. + * - **reduction_effort** -- Level of CPU effort to reduce file size, int. + * - **profile** -- ICC profile to embed, const char *. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param filename Filename to save to. + * @param options Set of options. + */ +void webpsave( const char *filename, VOption *options = 0 ) const; + +/** + * Save image to webp buffer. + * + * **Optional parameters** + * - **Q** -- Q factor, int. + * - **lossless** -- enable lossless compression, bool. + * - **preset** -- Preset for lossy compression, VipsForeignWebpPreset. + * - **smart_subsample** -- Enable high quality chroma subsampling, bool. + * - **near_lossless** -- Enable preprocessing in lossless mode (uses Q), bool. + * - **alpha_q** -- Change alpha plane fidelity for lossy compression, int. + * - **min_size** -- Optimise for minium size, bool. + * - **kmin** -- Minimum number of frames between key frames, int. + * - **kmax** -- Maximum number of frames between key frames, int. + * - **reduction_effort** -- Level of CPU effort to reduce file size, int. + * - **profile** -- ICC profile to embed, const char *. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param options Set of options. + * @return Buffer to save to. + */ +VipsBlob *webpsave_buffer( VOption *options = 0 ) const; + +/** + * Save image to webp target. + * + * **Optional parameters** + * - **Q** -- Q factor, int. + * - **lossless** -- enable lossless compression, bool. + * - **preset** -- Preset for lossy compression, VipsForeignWebpPreset. + * - **smart_subsample** -- Enable high quality chroma subsampling, bool. + * - **near_lossless** -- Enable preprocessing in lossless mode (uses Q), bool. + * - **alpha_q** -- Change alpha plane fidelity for lossy compression, int. + * - **min_size** -- Optimise for minium size, bool. + * - **kmin** -- Minimum number of frames between key frames, int. + * - **kmax** -- Maximum number of frames between key frames, int. + * - **reduction_effort** -- Level of CPU effort to reduce file size, int. + * - **profile** -- ICC profile to embed, const char *. + * - **strip** -- Strip all metadata from image, bool. + * - **background** -- Background value, std::vector. + * - **page_height** -- Set page height for multipage save, int. + * + * @param target Target to save to. + * @param options Set of options. + */ +void webpsave_target( VTarget target, VOption *options = 0 ) const; + +/** + * Make a worley noise image. + * + * **Optional parameters** + * - **cell_size** -- Size of Worley cells, int. + * - **seed** -- Random number seed, int. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +static VImage worley( int width, int height, VOption *options = 0 ); + +/** + * Wrap image origin. + * + * **Optional parameters** + * - **x** -- Left edge of input in output, int. + * - **y** -- Top edge of input in output, int. + * + * @param options Set of options. + * @return Output image. + */ +VImage wrap( VOption *options = 0 ) const; + +/** + * Make an image where pixel values are coordinates. + * + * **Optional parameters** + * - **csize** -- Size of third dimension, int. + * - **dsize** -- Size of fourth dimension, int. + * - **esize** -- Size of fifth dimension, int. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +static VImage xyz( int width, int height, VOption *options = 0 ); + +/** + * Make a zone plate. + * + * **Optional parameters** + * - **uchar** -- Output an unsigned char image, bool. + * + * @param width Image width in pixels. + * @param height Image height in pixels. + * @param options Set of options. + * @return Output image. + */ +static VImage zone( int width, int height, VOption *options = 0 ); + +/** + * Zoom an image. + * @param xfac Horizontal zoom factor. + * @param yfac Vertical zoom factor. + * @param options Set of options. + * @return Output image. + */ +VImage zoom( int xfac, int yfac, VOption *options = 0 ) const; diff --git a/po/POTFILES.in b/po/POTFILES.in index c3dc94dc..6152da50 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -237,7 +237,6 @@ libvips/foreign/fits.c libvips/foreign/fitsload.c libvips/foreign/fitssave.c libvips/foreign/foreign.c -libvips/foreign/gifload.c libvips/foreign/heifload.c libvips/foreign/heifsave.c libvips/foreign/jpeg2vips.c @@ -254,6 +253,7 @@ libvips/foreign/matrixload.c libvips/foreign/matrixsave.c libvips/foreign/niftiload.c libvips/foreign/niftisave.c +libvips/foreign/nsgifload.c libvips/foreign/openexr2vips.c libvips/foreign/openexrload.c libvips/foreign/openslide2vips.c @@ -285,6 +285,8 @@ libvips/foreign/vipssave.c libvips/foreign/webp2vips.c libvips/foreign/webpload.c libvips/foreign/webpsave.c +libvips/foreign/libnsgif/libnsgif.c +libvips/foreign/libnsgif/lzw.c libvips/freqfilt/freqfilt.c libvips/freqfilt/freqmult.c libvips/freqfilt/fwfft.c @@ -333,6 +335,7 @@ libvips/iofuncs/sinkmemory.c libvips/iofuncs/sinkscreen.c libvips/iofuncs/source.c libvips/iofuncs/sourcecustom.c +libvips/iofuncs/sourceginput.c libvips/iofuncs/system.c libvips/iofuncs/target.c libvips/iofuncs/targetcustom.c