fix all docs warnings

This commit is contained in:
John Cupitt 2014-11-17 10:32:40 +00:00
parent 703514b85d
commit 394149e9e8
57 changed files with 171 additions and 208 deletions

15
TODO
View File

@ -1,3 +1,4 @@
- can we use markdown for the intro sections?
- test other cpp arg types - test other cpp arg types
@ -33,20 +34,6 @@
- check and fix up docs
index items should all be links
check each func in each section has a comment doc ... if they don't and
shouldn't be there, move to internal
need better vipsobject docs
gtk-doc now uses markdown, phew, use this to expand some sections
- can we use postbuild elsewhere? look at use of "preclose" / "written", etc. - can we use postbuild elsewhere? look at use of "preclose" / "written", etc.

View File

@ -354,7 +354,7 @@ if( negative( in, &out, "image_max", 128, NULL ) )
<para> <para>
Make area operations, like filters, by enlarging the #VipsRect that Make area operations, like filters, by enlarging the #VipsRect that
_generate() is given before calling vips_image_prepare(). You can _generate() is given before calling vips_region_prepare(). You can
enlarge the input image, so that the output image is the same size as enlarge the input image, so that the output image is the same size as
the original input, by using vips_embed() within the _build() function. the original input, by using vips_embed() within the _build() function.
</para> </para>

View File

@ -40,6 +40,7 @@
<chapter> <chapter>
<title>Core VIPS API</title> <title>Core VIPS API</title>
<xi:include href="xml/basic.xml"/>
<xi:include href="xml/vips.xml"/> <xi:include href="xml/vips.xml"/>
<xi:include href="xml/image.xml"/> <xi:include href="xml/image.xml"/>
<xi:include href="xml/header.xml"/> <xi:include href="xml/header.xml"/>

View File

@ -58,7 +58,6 @@
/** /**
* SECTION: arithmetic * SECTION: arithmetic
* @short_description: operations which perform pixel arithmetic, trig, log, statistics * @short_description: operations which perform pixel arithmetic, trig, log, statistics
* @see_also: <link linkend="libvips-boolean">boolean</link>
* @stability: Stable * @stability: Stable
* @include: vips/vips.h * @include: vips/vips.h
* *
@ -81,7 +80,7 @@
* bits in the output image when necessary. Generally, this follows the ANSI C * bits in the output image when necessary. Generally, this follows the ANSI C
* conventions for type promotion, so multiplying two * conventions for type promotion, so multiplying two
* #VIPS_FORMAT_UCHAR images together, for example, produces a * #VIPS_FORMAT_UCHAR images together, for example, produces a
* #VIPS_FORMAT_USHORT image, and taking the im_costra() of a * #VIPS_FORMAT_USHORT image, and taking the vips_cos() of a
* #VIPS_FORMAT_USHORT image produces #VIPS_FORMAT_FLOAT image. * #VIPS_FORMAT_USHORT image produces #VIPS_FORMAT_FLOAT image.
* *
* For binary arithmetic operations, type promotion occurs in two stages. * For binary arithmetic operations, type promotion occurs in two stages.

View File

@ -258,7 +258,7 @@ vips_divide_init( VipsDivide *divide )
* following table is used to determine the output type: * following table is used to determine the output type:
* *
* <table> * <table>
* <title>im_divide() type promotion</title> * <title>vips_divide() type promotion</title>
* <tgroup cols='2' align='left' colsep='1' rowsep='1'> * <tgroup cols='2' align='left' colsep='1' rowsep='1'>
* <thead> * <thead>
* <row> * <row>
@ -314,7 +314,7 @@ vips_divide_init( VipsDivide *divide )
* In other words, the output type is just large enough to hold the whole * In other words, the output type is just large enough to hold the whole
* range of possible values. * range of possible values.
* *
* See also: vips_multiply(), vips_linear(), vips_power(). * See also: vips_multiply(), vips_linear(), vips_pow().
* *
* Returns: 0 on success, -1 on error * Returns: 0 on success, -1 on error
*/ */

View File

@ -162,7 +162,7 @@ vips_Lab2LabQ_init( VipsLab2LabQ *Lab2LabQ )
* @out: output image * @out: output image
* @...: %NULL-terminated list of optional named arguments * @...: %NULL-terminated list of optional named arguments
* *
* Convert a Lab three-band float image to LabQ (#IM_CODING_LABQ). * Convert a Lab three-band float image to LabQ (#VIPS_CODING_LABQ).
* *
* See also: vips_LabQ2Lab(). * See also: vips_LabQ2Lab().
* *

View File

@ -146,7 +146,7 @@ vips_LabQ2Lab_init( VipsLabQ2Lab *LabQ2Lab )
* @out: output image * @out: output image
* @...: %NULL-terminated list of optional named arguments * @...: %NULL-terminated list of optional named arguments
* *
* Unpack a LabQ (#IM_CODING_LABQ) image to a three-band float image. * Unpack a LabQ (#VIPS_CODING_LABQ) image to a three-band float image.
* *
* See also: vips_LabQ2Lab(), vips_LabQ2LabS(), vips_rad2float(). * See also: vips_LabQ2Lab(), vips_LabQ2LabS(), vips_rad2float().
* *

View File

@ -126,7 +126,7 @@ vips_LabQ2LabS_init( VipsLabQ2LabS *LabQ2LabS )
* @out: output image * @out: output image
* @...: %NULL-terminated list of optional named arguments * @...: %NULL-terminated list of optional named arguments
* *
* Unpack a LabQ (#IM_CODING_LABQ) image to a three-band short image. * Unpack a LabQ (#VIPS_CODING_LABQ) image to a three-band short image.
* *
* See also: vips_LabS2LabQ(), vips_LabQ2LabS(), vips_rad2float(). * See also: vips_LabS2LabQ(), vips_LabQ2LabS(), vips_rad2float().
* *

View File

@ -735,7 +735,6 @@ vips_colour_operation_init( void )
extern GType vips_float2rad_get_type( void ); extern GType vips_float2rad_get_type( void );
extern GType vips_LabQ2sRGB_get_type( void ); extern GType vips_LabQ2sRGB_get_type( void );
extern GType vips_XYZ2sRGB_get_type( void ); extern GType vips_XYZ2sRGB_get_type( void );
extern GType vips_sRGB2XYZ_get_type( void );
extern GType vips_sRGB2scRGB_get_type( void ); extern GType vips_sRGB2scRGB_get_type( void );
extern GType vips_scRGB2XYZ_get_type( void ); extern GType vips_scRGB2XYZ_get_type( void );
extern GType vips_XYZ2scRGB_get_type( void ); extern GType vips_XYZ2scRGB_get_type( void );

View File

@ -227,7 +227,7 @@ vips_float2rad_init( VipsFloat2rad *float2rad )
* *
* Convert a three-band float image to Radiance 32-bit packed format. * Convert a three-band float image to Radiance 32-bit packed format.
* *
* See also: vips_rad2float(), #VipsFormatRad, vips_LabQ2Lab(). * See also: vips_rad2float(), #VIPS_CODING_RAD, vips_LabQ2Lab().
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
*/ */

View File

@ -212,7 +212,7 @@ vips_rad2float_init( VipsRad2float *rad2float )
* @out: output image * @out: output image
* @...: %NULL-terminated list of optional named arguments * @...: %NULL-terminated list of optional named arguments
* *
* Unpack a RAD (#IM_CODING_RAD) image to a three-band float image. * Unpack a RAD (#VIPS_CODING_RAD) image to a three-band float image.
* *
* See also: vips_float2rad(), vips_LabQ2LabS(). * See also: vips_float2rad(), vips_LabQ2LabS().
* *

View File

@ -182,7 +182,7 @@ vips_sRGB2scRGB_init( VipssRGB2scRGB *sRGB2scRGB )
* *
* Convert an sRGB image to scRGB. * Convert an sRGB image to scRGB.
* *
* See also: vips_sRGB2XYZ(), vips_rad2float(). * See also: vips_scRGB2XYZ(), vips_rad2float().
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
*/ */

View File

@ -215,7 +215,7 @@ vips_bandjoinv( VipsImage **in, VipsImage **out, int n, va_list ap )
* *
* The input images are cast up to the smallest common type (see table * The input images are cast up to the smallest common type (see table
* Smallest common format in * Smallest common format in
* <link linkend="VIPS-arithmetic">arithmetic</link>). * <link linkend="libvips-arithmetic">arithmetic</link>).
* *
* See also: vips_insert(). * See also: vips_insert().
* *

View File

@ -207,8 +207,8 @@ vips_bandmean_init( VipsBandmean *bandmean )
/** /**
* vips_bandmean: * vips_bandmean:
* @in: input #IMAGE * @in: input image
* @out: output #IMAGE * @out: output image
* @...: %NULL-terminated list of optional named arguments * @...: %NULL-terminated list of optional named arguments
* *
* This operation writes a one-band image where each pixel is the average of * This operation writes a one-band image where each pixel is the average of

View File

@ -524,7 +524,8 @@ vips_castv( VipsImage *in, VipsImage **out, VipsBandFormat format, va_list ap )
* *
* Casting from complex to real returns the real part. * Casting from complex to real returns the real part.
* *
* See also: im_scale(), im_ri2c(). * See also: vips_scale(), vips_complexform(), vips_real(), vips_imag(),
* vips_cast_uchar().
* *
* Returns: 0 on success, -1 on error * Returns: 0 on success, -1 on error
*/ */

View File

@ -539,7 +539,7 @@ vips_insert_init( VipsInsert *insert )
* *
* The two input images are cast up to the smallest common type (see table * The two input images are cast up to the smallest common type (see table
* Smallest common format in * Smallest common format in
* <link linkend="VIPS-arithmetic">arithmetic</link>). * <link linkend="libvips-arithmetic">arithmetic</link>).
* *
* See also: vips_join(), vips_embed(), vips_extract_area(). * See also: vips_join(), vips_embed(), vips_extract_area().
* *

View File

@ -322,7 +322,7 @@ vips_join_init( VipsJoin *join )
* *
* The two input images are cast up to the smallest common type (see table * The two input images are cast up to the smallest common type (see table
* Smallest common format in * Smallest common format in
* <link linkend="VIPS-arithmetic">arithmetic</link>). * <link linkend="libvips-arithmetic">arithmetic</link>).
* *
* See also: vips_insert(). * See also: vips_insert().
* *

View File

@ -229,7 +229,7 @@ vips_replicate_init( VipsReplicate *replicate )
* *
* Repeats an image many times. * Repeats an image many times.
* *
* See also: vips_extract(). * See also: vips_extract_area().
* *
* Returns: 0 on success, -1 on error * Returns: 0 on success, -1 on error
*/ */

View File

@ -386,7 +386,7 @@ vips_sequential_init( VipsSequential *sequential )
* @access can be set to #VIPS_ACCESS_SEQUENTIAL_UNBUFFERED, meaning don't * @access can be set to #VIPS_ACCESS_SEQUENTIAL_UNBUFFERED, meaning don't
* keep a large cache behind the read point. This can save some memory. * keep a large cache behind the read point. This can save some memory.
* *
* See also: vips_image_cache(). * See also: vips_cache(), vips_linecache(), vips_tilecache().
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
*/ */

View File

@ -837,7 +837,7 @@ vips_tile_cache_init( VipsTileCache *cache )
* by @tile_height pixels. * by @tile_height pixels.
* *
* Each cache tile is made with a single call to * Each cache tile is made with a single call to
* vips_image_prepare(). * vips_region_prepare().
* *
* When the cache fills, a tile is chosen for reuse. If @access is * When the cache fills, a tile is chosen for reuse. If @access is
* #VIPS_ACCESS_RANDOM, then the least-recently-used tile is reused. If * #VIPS_ACCESS_RANDOM, then the least-recently-used tile is reused. If
@ -1029,7 +1029,7 @@ vips_line_cache_init( VipsLineCache *cache )
* save some memory and set @access to #VIPS_ACCESS_SEQUENTIAL_UNBUFFERED. * save some memory and set @access to #VIPS_ACCESS_SEQUENTIAL_UNBUFFERED.
* *
* Each cache tile is made with a single call to * Each cache tile is made with a single call to
* vips_image_prepare(). * vips_region_prepare().
* *
* When the cache fills, a tile is chosen for reuse. If @access is * When the cache fills, a tile is chosen for reuse. If @access is
* #VIPS_ACCESS_RANDOM, then the least-recently-used tile is reused. If * #VIPS_ACCESS_RANDOM, then the least-recently-used tile is reused. If

View File

@ -188,7 +188,7 @@ vips_conv_init( VipsConv *conv )
* *
* If @precision is #VIPS_PRECISION_INTEGER then the convolution is performed * If @precision is #VIPS_PRECISION_INTEGER then the convolution is performed
* with integer arithmetic and the output image * with integer arithmetic and the output image
* always has the same #VipsBandFmt as the input image. * always has the same #VipsBandFormat as the input image.
* *
* Convolutions on unsigned 8-bit images are calculated with the * Convolutions on unsigned 8-bit images are calculated with the
* processor's vector unit, if possible. Disable this with --vips-novector or * processor's vector unit, if possible. Disable this with --vips-novector or
@ -200,7 +200,7 @@ vips_conv_init( VipsConv *conv )
* @out is also %VIPS_FORMAT_DOUBLE. * @out is also %VIPS_FORMAT_DOUBLE.
* *
* If @precision is #VIPS_PRECISION_APPROXIMATE then the output image * If @precision is #VIPS_PRECISION_APPROXIMATE then the output image
* always has the same #VipsBandFmt as the input image. * always has the same #VipsBandFormat as the input image.
* *
* Larger values for @layers give more accurate * Larger values for @layers give more accurate
* results, but are slower. As @layers approaches the mask radius, the * results, but are slower. As @layers approaches the mask radius, the

View File

@ -1227,7 +1227,7 @@ aconv_vertical( Boxes *boxes, IMAGE *in, IMAGE *out )
* Perform an approximate convolution of @in with @mask. * Perform an approximate convolution of @in with @mask.
* *
* The output image * The output image
* always has the same #VipsBandFmt as the input image. * always has the same #VipsBandFormat as the input image.
* *
* Larger values for @n_layers give more accurate * Larger values for @n_layers give more accurate
* results, but are slower. As @n_layers approaches the mask radius, the * results, but are slower. As @n_layers approaches the mask radius, the

View File

@ -827,7 +827,7 @@ aconvsep_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask, int n_layers )
* *
* The mask must be 1xn or nx1 elements. * The mask must be 1xn or nx1 elements.
* The output image * The output image
* always has the same #VipsBandFmt as the input image. * always has the same #VipsBandFormat as the input image.
* *
* The image is convolved twice: once with @mask and then again with @mask * The image is convolved twice: once with @mask and then again with @mask
* rotated by 90 degrees. * rotated by 90 degrees.

View File

@ -350,7 +350,7 @@ vips_spcor_init( VipsSpcor *spcor )
* The output image is always float, unless either of the two inputs is * The output image is always float, unless either of the two inputs is
* double, in which case the output is also double. * double, in which case the output is also double.
* *
* See also: vips_gradcor(), vips_fastcor(). * See also: vips_fastcor().
* *
* Returns: 0 on success, -1 on error * Returns: 0 on success, -1 on error
*/ */

View File

@ -351,7 +351,7 @@ vips_text_init( VipsText *text )
* @dpi sets the resolution to render at. "sans 12" at 72 dpi draws characters * @dpi sets the resolution to render at. "sans 12" at 72 dpi draws characters
* approximately 12 pixels high. * approximately 12 pixels high.
* *
* See also: vips_make_xy(), vips_text(), vips_gaussnoise(). * See also: vips_xyz(), vips_text(), vips_gaussnoise().
* *
* Returns: 0 on success, -1 on error * Returns: 0 on success, -1 on error
*/ */

View File

@ -47,7 +47,7 @@
* @stability: Stable * @stability: Stable
* @include: vips/vips.h * @include: vips/vips.h
* *
* Resample an image in various ways, using a #VipsInterpolator to generate * Resample an image in various ways, using a #VipsInterpolate to generate
* intermediate values. * intermediate values.
*/ */

View File

@ -5354,3 +5354,51 @@ im_greyc_mask( IMAGE *in, IMAGE *out, IMAGE *mask,
return( -1 ); return( -1 );
} }
int
vips_check_imask( const char *domain, INTMASK *mask )
{
if( !mask ||
mask->xsize > 1000 ||
mask->ysize > 1000 ||
mask->xsize <= 0 ||
mask->ysize <= 0 ||
mask->scale == 0 ||
!mask->coeff ) {
vips_error( domain, "%s", _( "nonsense mask parameters" ) );
return( -1 );
}
return( 0 );
}
int
vips_check_dmask( const char *domain, DOUBLEMASK *mask )
{
if( !mask ||
mask->xsize > 1000 ||
mask->ysize > 1000 ||
mask->xsize <= 0 ||
mask->ysize <= 0 ||
mask->scale == 0 ||
!mask->coeff ) {
vips_error( domain, "%s", _( "nonsense mask parameters" ) );
return( -1 );
}
return( 0 );
}
int
vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask )
{
if( vips_check_dmask( domain, mask ) )
return( -1 );
if( mask->xsize != 1 &&
mask->ysize != 1 ) {
vips_error( domain, "%s", _( "mask must be 1D" ) );
return( -1 );
}
return( 0 );
}

View File

@ -300,7 +300,7 @@ vips_draw_circlev( VipsImage *image,
* *
* @ink is an array of double containing values to draw. * @ink is an array of double containing values to draw.
* *
* See also: vips_draw_circle1(), vips_line(). * See also: vips_draw_circle1(), vips_draw_line().
* *
* Returns: 0 on success, or -1 on error. * Returns: 0 on success, or -1 on error.
*/ */

View File

@ -346,7 +346,7 @@ vips_draw_linev( VipsImage *image,
* *
* @ink is an array of double containing values to draw. * @ink is an array of double containing values to draw.
* *
* See also: vips_draw_line1(), vips_circle(), vips_draw_mask(). * See also: vips_draw_line1(), vips_draw_circle(), vips_draw_mask().
* *
* Returns: 0 on success, or -1 on error. * Returns: 0 on success, or -1 on error.
*/ */

View File

@ -374,11 +374,11 @@ vips_draw_maskv( VipsImage *image,
* Draw @mask on the image. @mask is a monochrome 8-bit image with 0/255 * Draw @mask on the image. @mask is a monochrome 8-bit image with 0/255
* for transparent or @ink coloured points. Intermediate values blend the ink * for transparent or @ink coloured points. Intermediate values blend the ink
* with the pixel. Use with vips_text() to draw text on an image. Use in a * with the pixel. Use with vips_text() to draw text on an image. Use in a
* vips_line() subclass to draw an object along a line. * vips_draw_line() subclass to draw an object along a line.
* *
* @ink is an array of double containing values to draw. * @ink is an array of double containing values to draw.
* *
* See also: vips_text(), vips_line(). * See also: vips_text(), vips_draw_line().
* *
* Returns: 0 on success, or -1 on error. * Returns: 0 on success, or -1 on error.
*/ */

View File

@ -245,7 +245,7 @@ vips_draw_rectv( VipsImage *image,
* Paint pixels within @left, @top, @width, @height in @image with @ink. If * Paint pixels within @left, @top, @width, @height in @image with @ink. If
* @fill is zero, just paint a 1-pixel-wide outline. * @fill is zero, just paint a 1-pixel-wide outline.
* *
* See also: vips_circle(). * See also: vips_draw_circle().
* *
* Returns: 0 on success, or -1 on error. * Returns: 0 on success, or -1 on error.
*/ */

View File

@ -139,7 +139,7 @@ vips_foreign_save_csv_init( VipsForeignSaveCsv *csv )
* @separator gives the string to use to separate numbers in the output. * @separator gives the string to use to separate numbers in the output.
* The default is "\\t" (tab). * The default is "\\t" (tab).
* *
* See also: vips_image_write_file(). * See also: vips_image_write_to_file().
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
*/ */

View File

@ -66,35 +66,14 @@
* *
* The operations share a base class that offers a simple way to search for a * The operations share a base class that offers a simple way to search for a
* subclass of #VipsForeign which can load a certain file (see * subclass of #VipsForeign which can load a certain file (see
* vips_foreign_find_load()) or which could be used to save an image to a * vips_foreign_find_load()) or buffer (see vips_foreign_find_load_buffer()),
* certain file type (see vips_foreign_find_save()). You can then run these * or which could be used to save an image to a
* certain file type (see vips_foreign_find_save() and
* vips_foreign_find_save_buffer()). You can then run these
* operations using vips_call() and friends to perform the load or save. * operations using vips_call() and friends to perform the load or save.
* *
* A pair of convenience * vips_image_write_to_file() and vips_image_new_from_file() and friends use
* functions, vips_foreign_load() and vips_foreign_save(), automate the * these functions to automate file load and save.
* process, loading an image from a file or saving an image to a file. These
* functions let you give load or save options as name - value pairs in the C
* argument list. You can also
* include options in the file name.
*
* For example:
*
* |[
* vips_foreign_save (my_image, "frank.tiff",
* "compression", VIPS_FOREIGN_TIFF_COMPRESSION_JPEG,
* NULL);
* ]|
*
* Will save an image to the file "frank.tiff" in TIFF format (selected by
* the file name extension) with JPEG compression.
*
* |[
* vips_foreign_save (my_image, "frank.tiff[compression=jpeg]", NULL);
* ]|
*
* Is the same thing, but with the option in the filename. You can put
* name - value pairs after the filename as well: these will override any
* options set in the filename.
* *
* You can also invoke the operations directly, for example: * You can also invoke the operations directly, for example:
* *
@ -511,7 +490,7 @@ vips_foreign_find_load_sub( VipsForeignLoadClass *load_class,
* Searches for an operation you could use to load @filename. Any trailing * Searches for an operation you could use to load @filename. Any trailing
* options on @filename are stripped and ignored. * options on @filename are stripped and ignored.
* *
* See also: vips_foreign_load(). * See also: vips_foreign_find_load_buffer(), vips_image_new_from_file().
* *
* Returns: the name of an operation on success, %NULL on error * Returns: the name of an operation on success, %NULL on error
*/ */
@ -1425,7 +1404,7 @@ vips_foreign_find_save_sub( VipsForeignSaveClass *save_class,
* Searches for an operation you could use to write to @filename. * Searches for an operation you could use to write to @filename.
* Any trailing options on @filename are stripped and ignored. * Any trailing options on @filename are stripped and ignored.
* *
* See also: vips_foreign_save(). * See also: vips_foreign_find_save_buffer(), vips_image_write_to_file().
* *
* Returns: the name of an operation on success, %NULL on error * Returns: the name of an operation on success, %NULL on error
*/ */
@ -1830,7 +1809,7 @@ vips_tiffload_buffer( void *buf, size_t len, VipsImage **out, ... )
* Bigtiff is a variant of the TIFF * Bigtiff is a variant of the TIFF
* format that allows more than 4GB in a file. * format that allows more than 4GB in a file.
* *
* See also: vips_tiffload(), vips_image_write_file(). * See also: vips_tiffload(), vips_image_write_to_file().
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
*/ */
@ -2014,7 +1993,7 @@ vips_jpegload_buffer( void *buf, size_t len, VipsImage **out, ... )
* If @no-subsample is set, chrominance subsampling is disabled. This will * If @no-subsample is set, chrominance subsampling is disabled. This will
* improve quality at the cost of larger file size. Useful for high Q factors. * improve quality at the cost of larger file size. Useful for high Q factors.
* *
* See also: vips_jpegsave_buffer(), vips_image_write_file(). * See also: vips_jpegsave_buffer(), vips_image_write_to_file().
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
*/ */
@ -2392,7 +2371,7 @@ vips_fitsload( const char *filename, VipsImage **out, ... )
* *
* Write a VIPS image to a file in FITS format. * Write a VIPS image to a file in FITS format.
* *
* See also: vips_image_write_file(). * See also: vips_image_write_to_file().
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
*/ */

View File

@ -153,8 +153,8 @@ vips_foreign_load_rad_init( VipsForeignLoadRad *rad )
* red, green and blue, and one byte of shared exponent. Some operations (like * red, green and blue, and one byte of shared exponent. Some operations (like
* vips_extract_area()) can work directly with images in this format, but * vips_extract_area()) can work directly with images in this format, but
* mmany (all the arithmetic operations, for example) will not. Unpack * mmany (all the arithmetic operations, for example) will not. Unpack
* #VIPS_CODING_RAD images to 3 band float with im_rad2float() if you want to do * #VIPS_CODING_RAD images to 3 band float with vips_rad2float() if
* arithmetic on them. * you want to do arithmetic on them.
* *
* This operation ignores some header fields, like VIEW and DATE. It will not * This operation ignores some header fields, like VIEW and DATE. It will not
* rotate/flip as the FORMAT string asks. * rotate/flip as the FORMAT string asks.

View File

@ -139,7 +139,7 @@ vips_foreign_save_rad_init( VipsForeignSaveRad *rad )
* *
* Sections of this reader from Greg Ward and Radiance with kind permission. * Sections of this reader from Greg Ward and Radiance with kind permission.
* *
* See also: vips_image_write_file(). * See also: vips_image_write_to_file().
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
*/ */

View File

@ -163,7 +163,7 @@ vips_foreign_save_raw_init( VipsForeignSaveRaw *raw )
* Writes the pixels in @in to the file @filename with no header or other * Writes the pixels in @in to the file @filename with no header or other
* metadata. * metadata.
* *
* See also: vips_image_write_file(). * See also: vips_image_write_to_file().
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
*/ */

View File

@ -53,7 +53,7 @@
* SECTION: freqfilt * SECTION: freqfilt
* @short_description: fourier transforms and frequency-domin filters * @short_description: fourier transforms and frequency-domin filters
* @stability: Stable * @stability: Stable
* @see_also: <link linkend="libvips-image">image</link> * @see_also: <link linkend="VipsImage">image</link>
* @include: vips/vips.h * @include: vips/vips.h
* *
* To and from Fourier space, filter in Fourier space, convert Fourier-space * To and from Fourier space, filter in Fourier space, convert Fourier-space

View File

@ -50,19 +50,22 @@
* SECTION: histogram * SECTION: histogram
* @short_description: find, manipulate and apply histograms and lookup tables * @short_description: find, manipulate and apply histograms and lookup tables
* @stability: Stable * @stability: Stable
* @see_also: <link linkend="libvips-image">image</link> * @see_also: <link linkend="VipsImage">image</link>
* <link linkend="libvips-arithmetic">arithmetic</link>
* <link linkend="libvips-create">create</link>
* @include: vips/vips.h * @include: vips/vips.h
* *
* Histograms and look-up tables are 1xn or nx1 images, where n is less than * Histograms and look-up tables are 1xn or nx1 images, where n is less than
* 256 or less than 65536, corresponding to 8- and 16-bit unsigned int images. * 256 or less than 65536, corresponding to 8- and 16-bit unsigned int images.
* They are * They are tagged with a #VipsInterpretation of
* tagged with a #VipsType of IM_TYPE_HISTOGRAM and usually displayed by * #VIPS_INTERPRETATION_HISTOGRAM and usually displayed by user-interfaces
* user-interfaces such as nip2 as plots rather than images. * such as nip2 as plots rather than images.
* *
* These functions can be broadly grouped as things to find or build * These functions can be broadly grouped as things to find or build
* histograms (im_histgr(), im_buildlut(), in_identity()), operations that * histograms (vips_hist_find(), vips_buildlut(), vips_identity()),
* manipulate histograms in some way (im_histcum(), im_histnorm()), operations * operations that
* to apply histograms (im_maplut()), and a variety of utility * manipulate histograms in some way (vips_hist_cum(), vips_hist_norm()),
* operations to apply histograms (vips_maplut()), and a variety of utility
* operations. * operations.
* *
* A final group of operations build tone curves. These are useful in * A final group of operations build tone curves. These are useful in

View File

@ -756,7 +756,7 @@ vips_maplut_init( VipsMaplut *maplut )
* separately. If @in has one band, then @lut may have many bands and * separately. If @in has one band, then @lut may have many bands and
* the output will have the same number of bands as @lut. * the output will have the same number of bands as @lut.
* *
* See also: im_histgr(), vips_identity(). * See also: vips_hist_find(), vips_identity().
* *
* Returns: 0 on success, -1 on error * Returns: 0 on success, -1 on error
*/ */

View File

@ -336,6 +336,9 @@ int vips_lshift_const( VipsImage *in, VipsImage **out, double *c, int n, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rshift_const( VipsImage *in, VipsImage **out, double *c, int n, ... ) int vips_rshift_const( VipsImage *in, VipsImage **out, double *c, int n, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_boolean_const1( VipsImage *in, VipsImage **out,
VipsOperationBoolean boolean, double c, ... )
__attribute__((sentinel));
int vips_andimage_const1( VipsImage *in, VipsImage **out, double c, ... ) int vips_andimage_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_orimage_const1( VipsImage *in, VipsImage **out, double c, ... ) int vips_orimage_const1( VipsImage *in, VipsImage **out, double c, ... )

View File

@ -63,6 +63,11 @@ int vips_sharpen( VipsImage *in, VipsImage **out, ... )
int vips_gaussblur( VipsImage *in, VipsImage **out, int radius, ... ) int vips_gaussblur( VipsImage *in, VipsImage **out, int radius, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_spcor( VipsImage *in, VipsImage *ref, VipsImage **out, ... )
__attribute__((sentinel));
int vips_fastcor( VipsImage *in, VipsImage *ref, VipsImage **out, ... )
__attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/

View File

@ -91,10 +91,6 @@ int vips_check_hist( const char *domain, VipsImage *im );
int vips_check_matrix( const char *domain, VipsImage *im, VipsImage **out ); int vips_check_matrix( const char *domain, VipsImage *im, VipsImage **out );
int vips_check_separable( const char *domain, VipsImage *im ); int vips_check_separable( const char *domain, VipsImage *im );
int vips_check_imask( const char *domain, INTMASK *mask );
int vips_check_dmask( const char *domain, DOUBLEMASK *mask );
int vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/

View File

@ -621,7 +621,7 @@ int vips_type_depth( GType type );
GType vips_type_find( const char *basename, const char *nickname ); GType vips_type_find( const char *basename, const char *nickname );
const char *vips_nickname_find( GType type ); const char *vips_nickname_find( GType type );
void *vips_class_map_all( GType base, VipsClassMapFn fn, void *a ); void *vips_class_map_all( GType type, VipsClassMapFn fn, void *a );
VipsObjectClass *vips_class_find( const char *basename, const char *nickname ); VipsObjectClass *vips_class_find( const char *basename, const char *nickname );
VipsObject **vips_object_local_array( VipsObject *parent, int n ); VipsObject **vips_object_local_array( VipsObject *parent, int n );

View File

@ -1230,6 +1230,10 @@ int im_greyc_mask( VipsImage *in, VipsImage *out, VipsImage *mask,
float alpha, float sigma, float dl, float da, float gauss_prec, float alpha, float sigma, float dl, float da, float gauss_prec,
int interpolation, int fast_approx ); int interpolation, int fast_approx );
int vips_check_imask( const char *domain, INTMASK *mask );
int vips_check_dmask( const char *domain, DOUBLEMASK *mask );
int vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/

View File

@ -412,7 +412,7 @@ vips_vinfo( const char *domain, const char *fmt, va_list ap )
* Informational messages are used to report details about the operation of * Informational messages are used to report details about the operation of
* functions. * functions.
* *
* See also: vips_vdiag(), vips_warn(). * See also: vips_vinfo(), vips_warn().
*/ */
void void
vips_info( const char *domain, const char *fmt, ... ) vips_info( const char *domain, const char *fmt, ... )
@ -1317,84 +1317,3 @@ vips_check_separable( const char *domain, VipsImage *im )
return( 0 ); return( 0 );
} }
/**
* vips_check_imask: (skip)
* @domain: the originating domain for the error message
* @mask: mask to check
*
* Sanity-check a mask parameter.
*
* See also: vips_error().
*
* Returns: 0 if OK, -1 otherwise.
*/
int
vips_check_imask( const char *domain, INTMASK *mask )
{
if( !mask ||
mask->xsize > 1000 ||
mask->ysize > 1000 ||
mask->xsize <= 0 ||
mask->ysize <= 0 ||
mask->scale == 0 ||
!mask->coeff ) {
vips_error( domain, "%s", _( "nonsense mask parameters" ) );
return( -1 );
}
return( 0 );
}
/**
* vips_check_dmask: (skip)
* @domain: the originating domain for the error message
* @mask: mask to check
*
* Sanity-check a mask parameter.
*
* See also: vips_error().
*
* Returns: 0 if OK, -1 otherwise.
*/
int
vips_check_dmask( const char *domain, DOUBLEMASK *mask )
{
if( !mask ||
mask->xsize > 1000 ||
mask->ysize > 1000 ||
mask->xsize <= 0 ||
mask->ysize <= 0 ||
mask->scale == 0 ||
!mask->coeff ) {
vips_error( domain, "%s", _( "nonsense mask parameters" ) );
return( -1 );
}
return( 0 );
}
/**
* vips_check_dmask_1d: (skip)
* @domain: the originating domain for the error message
* @mask: mask to check
*
* A mask must be one-dimensional (width or height 1).
*
* See also: vips_error().
*
* Returns: 0 if OK, -1 otherwise.
*/
int
vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask )
{
if( vips_check_dmask( domain, mask ) )
return( -1 );
if( mask->xsize != 1 &&
mask->ysize != 1 ) {
vips_error( domain, "%s", _( "mask must be 1D" ) );
return( -1 );
}
return( 0 );
}

View File

@ -2721,7 +2721,7 @@ vips_image_write_prepare( VipsImage *image )
* @linebuffer: scanline of pixels * @linebuffer: scanline of pixels
* *
* Write a line of pixels to an image. This function must be called repeatedly * Write a line of pixels to an image. This function must be called repeatedly
* with @ypos increasing from 0 to #VipsImage.height . * with @ypos increasing from 0 to #VipsImage::height .
* @linebuffer must be VIPS_IMAGE_SIZEOF_LINE() bytes long. * @linebuffer must be VIPS_IMAGE_SIZEOF_LINE() bytes long.
* *
* See also: vips_image_generate(). * See also: vips_image_generate().

View File

@ -58,7 +58,7 @@
* SECTION: object * SECTION: object
* @short_description: the VIPS base object class * @short_description: the VIPS base object class
* @stability: Stable * @stability: Stable
* @see_also: <link linkend="libvips-operation">operation</link> * @see_also: <link linkend="VipsOperation">operation</link>
* @include: vips/vips.h * @include: vips/vips.h
* *
* The #VipsObject class and associated types and macros. * The #VipsObject class and associated types and macros.
@ -363,17 +363,23 @@ vips_object_build( VipsObject *object )
/** /**
* vips_object_summary_class: (skip) * vips_object_summary_class: (skip)
* @klass: class to summarise
* @buf: write summary here
* *
* Generate a human-readable summary for a class.
*/ */
void void
vips_object_summary_class( VipsObjectClass *class, VipsBuf *buf ) vips_object_summary_class( VipsObjectClass *klass, VipsBuf *buf )
{ {
class->summary_class( class, buf ); klass->summary_class( klass, buf );
} }
/** /**
* vips_object_summary: (skip) * vips_object_summary: (skip)
* @object: object to summarise
* @buf: write summary here
* *
* Generate a human-readable summary for an object.
*/ */
void void
vips_object_summary( VipsObject *object, VipsBuf *buf ) vips_object_summary( VipsObject *object, VipsBuf *buf )
@ -385,7 +391,10 @@ vips_object_summary( VipsObject *object, VipsBuf *buf )
/** /**
* vips_object_dump: (skip) * vips_object_dump: (skip)
* @object: object to dump
* @buf: write dump here
* *
* Dump everything that vips knows about an object to a string.
*/ */
void void
vips_object_dump( VipsObject *object, VipsBuf *buf ) vips_object_dump( VipsObject *object, VipsBuf *buf )
@ -791,7 +800,7 @@ vips_object_argument_isset( VipsObject *object, const char *name )
* *
* Convenience: get the flags for an argument. Useful for bindings. * Convenience: get the flags for an argument. Useful for bindings.
* *
* Returns: The #VipsArgmentFlags for this argument. * Returns: The #VipsArgumentFlags for this argument.
*/ */
VipsArgumentFlags VipsArgumentFlags
vips_object_get_argument_flags( VipsObject *object, const char *name ) vips_object_get_argument_flags( VipsObject *object, const char *name )
@ -2581,8 +2590,16 @@ vips_type_map_all( GType base, VipsTypeMapFn fn, void *a )
/** /**
* vips_class_map_all: (skip) * vips_class_map_all: (skip)
* @type: base type
* @fn: call this function for every type
* @a: client data
* *
* Loop over all the subclasses of a base type. Non-abstract classes only. * Loop over all the subclasses of @type. Non-abstract classes only.
* Stop when @fn returns
* non-%NULL and return that value.
*
* Returns: %NULL if @fn returns %NULL for all arguments, otherwise the first
* non-%NULL value from @fn.
*/ */
void * void *
vips_class_map_all( GType type, VipsClassMapFn fn, void *a ) vips_class_map_all( GType type, VipsClassMapFn fn, void *a )

View File

@ -52,7 +52,7 @@
* SECTION: operation * SECTION: operation
* @short_description: the VIPS operation base object class * @short_description: the VIPS operation base object class
* @stability: Stable * @stability: Stable
* @see_also: <link linkend="libvips-object">object</link> * @see_also: <link linkend="VipsObject">object</link>
* @include: vips/vips.h * @include: vips/vips.h
* *
* The #VipsOperation class and associated types and macros. * The #VipsOperation class and associated types and macros.

View File

@ -48,7 +48,7 @@
* SECTION: rect * SECTION: rect
* @short_description: the VIPS rectangle class * @short_description: the VIPS rectangle class
* @stability: Stable * @stability: Stable
* @see_also: <link linkend="libvips-region">region</link> * @see_also: <link linkend="VipsRegion">region</link>
* @include: vips/vips.h * @include: vips/vips.h
* *
* The #VipsRect class and associated types and macros. * The #VipsRect class and associated types and macros.

View File

@ -99,7 +99,7 @@
* SECTION: region * SECTION: region
* @short_description: small, rectangular parts of images * @short_description: small, rectangular parts of images
* @stability: Stable * @stability: Stable
* @see_also: <link linkend="libvips-image">image</link>, * @see_also: <link linkend="VipsImage">image</link>,
* <link linkend="libvips-generate">generate</link> * <link linkend="libvips-generate">generate</link>
* @include: vips/vips.h * @include: vips/vips.h
* *
@ -1270,7 +1270,8 @@ vips_region_prepare_to_generate( VipsRegion *reg,
* you with * you with
* vips_region_buffer(). You can * vips_region_buffer(). You can
* point @dest at anything, and pixels really will be written there. * point @dest at anything, and pixels really will be written there.
* This makes vips_prepare_to() useful for making the ends of pipelines, since * This makes vips_region_prepare_to() useful for making the ends of
* pipelines, since
* it (effectively) makes a break in the pipe. * it (effectively) makes a break in the pipe.
* *
* See also: vips_region_prepare(), vips_sink_disc(). * See also: vips_region_prepare(), vips_sink_disc().

View File

@ -319,7 +319,7 @@ vips_area_free_array_object( GObject **array, VipsArea *area )
* vips_area_new_array_object: * vips_area_new_array_object:
* @n: number of elements in the array * @n: number of elements in the array
* *
* An area which holds an array of %GObjects. See vips_area_new_array(). When * An area which holds an array of %GObject s. See vips_area_new_array(). When
* the area is freed, each %GObject will be unreffed. * the area is freed, each %GObject will be unreffed.
* *
* Add an extra NULL element at the end, handy for eg. * Add an extra NULL element at the end, handy for eg.
@ -1415,7 +1415,7 @@ vips_value_get_array( const GValue *value,
* Return the start of the array of ints held by @value. * Return the start of the array of ints held by @value.
* optionally return the number of elements in @n. * optionally return the number of elements in @n.
* *
* See also: vips_array_int_set(). * See also: vips_array_int_new().
* *
* Returns: (transfer none): The array address. * Returns: (transfer none): The array address.
*/ */
@ -1456,7 +1456,7 @@ vips_value_set_array_int( GValue *value, const int *array, int n )
* Return the start of the array of doubles held by @value. * Return the start of the array of doubles held by @value.
* optionally return the number of elements in @n. * optionally return the number of elements in @n.
* *
* See also: vips_array_double_set(). * See also: vips_array_double_new().
* *
* Returns: (transfer none): The array address. * Returns: (transfer none): The array address.
*/ */
@ -1535,7 +1535,7 @@ vips_value_set_array_image( GValue *value, int n )
* Return the start of the array of %GObject held by @value. * Return the start of the array of %GObject held by @value.
* Optionally return the number of elements in @n. * Optionally return the number of elements in @n.
* *
* See also: vips_array_object_set(). * See also: vips_area_new_array_object().
* *
* Returns: (transfer none): The array address. * Returns: (transfer none): The array address.
*/ */
@ -1552,7 +1552,7 @@ vips_value_get_array_object( const GValue *value, int *n )
* *
* Set @value to hold an array of %GObject. Pass in the array length in @n. * Set @value to hold an array of %GObject. Pass in the array length in @n.
* *
* See also: vips_array_object_get(). * See also: vips_value_get_array_object().
*/ */
void void
vips_value_set_array_object( GValue *value, int n ) vips_value_set_array_object( GValue *value, int n )

View File

@ -166,7 +166,7 @@ vips_countlines_init( VipsCountlines *countlines )
* Xsize or Ysize and returns the mean of the result * Xsize or Ysize and returns the mean of the result
* Input should be one band, 8-bit. * Input should be one band, 8-bit.
* *
* See also: vips_morph(), vips_zerox(), vips_conv(). * See also: vips_morph(), vips_conv().
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
*/ */

View File

@ -188,11 +188,11 @@ vips_morph_init( VipsMorph *morph )
* based on the book "Fundamentals of Digital Image Processing" by A. Jain, * based on the book "Fundamentals of Digital Image Processing" by A. Jain,
* pp 384-388, Prentice-Hall, 1989. * pp 384-388, Prentice-Hall, 1989.
* *
* For #VIPS_OPERATION_MOPHOLOGY_ERODE, * For #VIPS_OPERATION_MORPHOLOGY_ERODE,
* the whole mask must match for the output pixel to be * the whole mask must match for the output pixel to be
* set, that is, the result is the logical AND of the selected input pixels. * set, that is, the result is the logical AND of the selected input pixels.
* *
* For #VIPS_OPERATION_MOPHOLOGY_DILATE, * For #VIPS_OPERATION_MORPHOLOGY_DILATE,
* the output pixel is set if any part of the mask * the output pixel is set if any part of the mask
* matches, that is, the result is the logical OR of the selected input pixels. * matches, that is, the result is the logical OR of the selected input pixels.
* *

View File

@ -53,7 +53,7 @@
* SECTION: morphology * SECTION: morphology
* @short_description: morphological operators, rank filters and related image * @short_description: morphological operators, rank filters and related image
* analysis * analysis
* @see_also: <link linkend="libvips-boolean">boolean</link> * @see_also: <link linkend="libvips-arithmetic">arithmetic</link>
* @stability: Stable * @stability: Stable
* @include: vips/vips.h * @include: vips/vips.h
* *
@ -65,7 +65,7 @@
* pixels from the result. * pixels from the result.
* *
* If you combine the morphological operators with the mask rotators * If you combine the morphological operators with the mask rotators
* im_rotate_imask45(), for example) and apply them repeatedly, you * (vips_rot45(), for example) and apply them repeatedly, you
* can achieve very complicated effects: you can thin, prune, fill, open edges, * can achieve very complicated effects: you can thin, prune, fill, open edges,
* close gaps, and many others. For example, see `Fundamentals of Digital * close gaps, and many others. For example, see `Fundamentals of Digital
* Image Processing' by A. Jain, pp 384-388, Prentice-Hall, 1989 for more * Image Processing' by A. Jain, pp 384-388, Prentice-Hall, 1989 for more
@ -85,12 +85,13 @@
* 255 0 255 * 255 0 255
* 128 255 128 * 128 255 128
* *
* applied to an image with im_erode(), will find all black pixels * applied to an image with vips_morph() #VIPS_OPERATION_MORPHOLOGY_ERODE, will
* 4-way connected with white pixels. Essentially, im_dilate() * find all black pixels
* 4-way connected with white pixels. Essentially, dilate
* sets pixels in the output if any part of the mask matches, whereas * sets pixels in the output if any part of the mask matches, whereas
* im_erode() sets pixels only if all of the mask matches. * erode sets pixels only if all of the mask matches.
* *
* See im_andimage(), im_orimage() and im_eorimage() * See vips_andimage(), vips_orimage() and vips_eorimage()
* for analogues of the usual set difference and set union operations. * for analogues of the usual set difference and set union operations.
*/ */

View File

@ -183,7 +183,7 @@ vips_merge_init( VipsMerge *merge )
* *
* The two input images are cast up to the smallest common type (see table * The two input images are cast up to the smallest common type (see table
* Smallest common format in * Smallest common format in
* <link linkend="VIPS-arithmetic">arithmetic</link>). * <link linkend="libvips-arithmetic">arithmetic</link>).
* *
* @dx and @dy give the displacement of @sec relative to @ref, in other words, * @dx and @dy give the displacement of @sec relative to @ref, in other words,
* the vector to get from the origin of @sec to the origin of @ref, in other * the vector to get from the origin of @sec to the origin of @ref, in other

View File

@ -670,7 +670,7 @@ vips_mosaic1_init( VipsMosaic1 *mosaic1 )
* *
* The two input images are cast up to the smallest common type (see table * The two input images are cast up to the smallest common type (see table
* Smallest common format in * Smallest common format in
* <link linkend="VIPS-arithmetic">arithmetic</link>). * <link linkend="libvips-arithmetic">arithmetic</link>).
* *
* See also: vips_merge(), vips_insert(), vips_globalbalance(). * See also: vips_merge(), vips_insert(), vips_globalbalance().
* *

View File

@ -373,7 +373,7 @@ vips_quadratic_init( VipsQuadratic *quadratic )
* *
* @interpolate: use this interpolator (default bilinear) * @interpolate: use this interpolator (default bilinear)
* *
* See also: im_affinei(). * See also: vips_affine().
* *
* Returns: 0 on success, -1 on error * Returns: 0 on success, -1 on error
*/ */