doc cleanups

This commit is contained in:
John Cupitt 2015-04-24 12:49:50 +01:00
parent 599bc0d75c
commit a00db6c8f1
18 changed files with 39 additions and 291 deletions

View File

@ -37,16 +37,6 @@
#include <vips/vips.h> #include <vips/vips.h>
/**
* SECTION: cimg_funcs
* @short_description: expose operations from the CImg library, mostly noise
* removal
* @stability: Stable
* @include: vips/vips.h
*
* The GREYCstoration filter.
*/
static int static int
greyc_vec( im_object *argv ) greyc_vec( im_object *argv )
{ {

View File

@ -38,188 +38,6 @@
#include <vips/vips.h> #include <vips/vips.h>
#include <vips/internal.h> #include <vips/internal.h>
/**
* SECTION: format
* @short_description: load and save in a variety of formats
* @stability: Stable
* @see_also: <link linkend="libvips-image">image</link>
* @include: vips/vips.h
*
* VIPS has a simple system for representing image load and save operations in
* a generic way.
* You can ask for a loader for a certain file or select a saver based on a
* filename. Once you have found a format, you can use it to load a file of
* that type, save an image to a file of that type, query files for their type
* and fields, and ask for supported features. You can also call the
* converters directly, if you like.
*
* If you define a new format, support for
* it automatically appears in all VIPS user-interfaces. It will also be
* transparently supported by im_open().
*
* VIPS comes with VipsFormat for TIFF, JPEG, PNG, Analyze, PPM, OpenEXR, CSV,
* Matlab, Radiance, RAW, VIPS and ones that wrap libMagick and OpenSlide.
*/
/**
* VipsFormatFlags:
* @VIPS_FORMAT_NONE: no flags set
* @VIPS_FORMAT_PARTIAL: the image may be read lazilly
* @VIPS_FORMAT_BIGENDIAN: image pixels are most-significant byte first
*
* Some hints about the image loader.
*
* @VIPS_FORMAT_PARTIAL means that the image can be read directly from the
* file without needing to be unpacked to a temporary image first.
*
* @VIPS_FORMAT_BIGENDIAN means that image pixels are most-significant byte
* first. Depending on the native byte order of the host machine, you may
* need to swap bytes. See im_copy_swap().
*/
/**
* VipsFormat:
*
* Actually, we never make %VipsFormat objects, we just use virtual methods on
* the class object. It is defined as:
*
* |[
* typedef struct _VipsFormatClass {
* VipsObjectClass parent_class;
*
* gboolean (*is_a)( const char *filename );
* int (*header)( const char *filename, IMAGE *out );
* int (*load)( const char *filename, IMAGE *out );
* int (*save)( IMAGE *in, const char *filename );
* VipsFormatFlags (*get_flags)( const char *filename );
* int priority;
* const char **suffs;
* } VipsFormatClass;
* ]|
*
* Add a new format to VIPS by subclassing VipsFormat. Subclasses need to
* implement at least load() or save().
*
* These members are:
*
* <itemizedlist>
* <listitem>
* <para>
* is_a() This function should return %TRUE if the file
* contains an image of this type. If you don't define this function, VIPS
* will use the list of suffixes you supply instead.
* </para>
* </listitem>
* <listitem>
* <para>
* header() This function should load the image header,
* but not load any pixel data. If you don't define it, VIPS will use your
* load() method instead. Return 0 for success, -1 for error, setting
* im_error().
* </para>
* </listitem>
* <listitem>
* <para>
* load() This function should load the image, or perhaps use im_generate() to
* attach something to load sections of the image on demand.
* Users can embed
* load options in the filename, see (for example) im_jpeg2vips().
* If you don't
* define this method, you can still define save() and have a save-only
* format.
* Return 0 for success, -1 for error, setting
* im_error().
* </para>
* </listitem>
* <listitem>
* <para>
* save() This function should save the image to the file.
* Users can embed
* save options in the filename, see (for example) im_vips2tiff().
* If you don't
* define this method, you can still define load() and have a load-only
* format.
* Return 0 for success, -1 for error, setting
* im_error().
* </para>
* </listitem>
* <listitem>
* <para>
* get_flags() This function should return a hint about the properties of this
* loader on this file. If you don't define it, users will always see '0', or
* no flags.
* </para>
* </listitem>
* <listitem>
* <para>
* <structfield>priority</structfield> Where this format should fit in this
* list of
* supported formats. 0 is a sensible value for most formats. Set a negative
* value if you want to be lower on the list, positive to move up.
* </para>
* </listitem>
* <listitem>
* <para>
* <structfield>suffs</structfield> A %NULL-terminated list of possible file
* name
* suffixes, for example:
* |[
* static const char *tiff_suffs[] = { ".tif", ".tiff", NULL };
* ]|
* The suffix list is used to select a format to save a file in, and to pick a
* loader if you don't define is_a().
* </para>
* </listitem>
* </itemizedlist>
*
* You should also define <structfield>nickname</structfield> and
* <structfield>description</structfield> in #VipsObject.
*
* At the command-line, use:
*
* |[
* vips --list classes | grep Format
* ]|
*
* To see a list of all the supported formats.
*
* For example, the TIFF format is defined like this:
*
|[
typedef VipsFormat VipsFormatTiff;
typedef VipsFormatClass VipsFormatTiffClass;
static void
vips_format_tiff_class_init( VipsFormatTiffClass *class )
{
VipsObjectClass *object_class = (VipsObjectClass *) class;
VipsFormatClass *format_class = (VipsFormatClass *) class;
object_class->nickname = "tiff";
object_class->description = _( "TIFF" );
format_class->is_a = istiff;
format_class->header = tiff2vips_header;
format_class->load = im_tiff2vips;
format_class->save = im_vips2tiff;
format_class->get_flags = tiff_flags;
format_class->suffs = tiff_suffs;
}
static void
vips_format_tiff_init( VipsFormatTiff *object )
{
}
G_DEFINE_TYPE( VipsFormatTiff, vips_format_tiff, VIPS_TYPE_FORMAT );
]|
*
* Then call vips_format_tiff_get_type() somewhere in your init code to link
* the format into VIPS (though of course the tiff format is linked in for you
* already).
*
*/
/* To iterate over supported formats, we build a temp list of subclasses of /* To iterate over supported formats, we build a temp list of subclasses of
* VipsFormat, sort by priority, iterate, and free. * VipsFormat, sort by priority, iterate, and free.
*/ */

View File

@ -39,30 +39,6 @@
#include <vips/vips.h> #include <vips/vips.h>
/**
* SECTION: histograms_lut
* @short_description: find, manipulate and apply histograms and lookup tables
* @stability: Stable
* @see_also: <link linkend="libvips-image">image</link>
* @include: vips/vips.h
*
* 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.
* They are
* tagged with a #VipsType of IM_TYPE_HISTOGRAM and usually displayed by
* user-interfaces such as nip2 as plots rather than images.
*
* These functions can be broadly grouped as things to find or build
* histograms (im_histgr(), im_buildlut(), in_identity()), operations that
* manipulate histograms in some way (im_histcum(), im_histnorm()), operations
* to apply histograms (im_maplut()), and a variety of utility
* operations.
*
* A final group of operations build tone curves. These are useful in
* pre-press work for adjusting the appearance of images. They are designed
* for CIELAB images, but might be useful elsewhere.
*/
/* One image in, one out. /* One image in, one out.
*/ */
static im_arg_desc one_in_one_out[] = { static im_arg_desc one_in_one_out[] = {

View File

@ -39,18 +39,6 @@
#include <vips/vips.h> #include <vips/vips.h>
/**
* SECTION: other
* @short_description: miscellaneous operators
* @stability: Stable
* @include: vips/vips.h
*
* These functions generate various test images. You can combine them with
* the arithmetic and rotate functions to build more complicated images.
*
* The im_benchmark() operations are for testing the VIPS SMP system.
*/
/* Args for im_sines. /* Args for im_sines.
*/ */
static im_arg_desc sines_args[] = { static im_arg_desc sines_args[] = {

View File

@ -41,16 +41,6 @@
#include <vips/internal.h> #include <vips/internal.h>
#include <vips/transform.h> #include <vips/transform.h>
/**
* SECTION: resample
* @short_description: shrink, expand, rotate with a choice of interpolators
* @stability: Stable
* @include: vips/vips.h
*
* Resample an image in various ways, using a #VipsInterpolate to generate
* intermediate values.
*/
/* Args to im_rightshift_size. /* Args to im_rightshift_size.
*/ */
static im_arg_desc rightshift_size_args[] = { static im_arg_desc rightshift_size_args[] = {

View File

@ -96,20 +96,6 @@
#include <vips/vips.h> #include <vips/vips.h>
/**
* SECTION: mask
* @short_description: load, save and process mask (matrix) objects
* @stability: Stable
* @include: vips/vips.h
*
* These operations load, save and process mask objects. Masks are used as
* paramaters to convolution and morphology operators, and to represent
* matrices. There are two types of matrix: integer #INTMASK and double
* precision floating point #DOUBLEMASK.
*
* This API is horrible and clunky. Surely it will be replaced soon.
*/
/** /**
* INTMASK: * INTMASK:
* @xsize: mask width * @xsize: mask width

View File

@ -341,8 +341,7 @@ vips_draw_linev( VipsImage *image,
* @y2: end of draw_line * @y2: end of draw_line
* @...: %NULL-terminated list of optional named arguments * @...: %NULL-terminated list of optional named arguments
* *
* Draws a 1-pixel-wide line on an image. Subclass and override ::plot to draw * Draws a 1-pixel-wide line on an image.
* lines made of other objects. See vips_draw_line_mask(), for example.
* *
* @ink is an array of double containing values to draw. * @ink is an array of double containing values to draw.
* *

View File

@ -2032,7 +2032,7 @@ vips_tiffsave( VipsImage *in, const char *filename, ... )
* Example: * Example:
* *
* |[ * |[
* vips_jpegload( "fred.jpg", &out, * vips_jpegload( "fred.jpg", &amp;out,
* "shrink", 8, * "shrink", 8,
* "fail", TRUE, * "fail", TRUE,
* NULL ); * NULL );

View File

@ -239,6 +239,7 @@ gboolean vips_foreign_is_a_buffer( const char *loader, void *data, size_t size )
* VipsSaveable: * VipsSaveable:
* @VIPS_SAVEABLE_MONO: 1 band (eg. CSV) * @VIPS_SAVEABLE_MONO: 1 band (eg. CSV)
* @VIPS_SAVEABLE_RGB: 1 or 3 bands (eg. PPM) * @VIPS_SAVEABLE_RGB: 1 or 3 bands (eg. PPM)
* @VIPS_SAVEABLE_RGBA: 1, 2, 3 or 4 bands (eg. PNG)
* @VIPS_SAVEABLE_RGBA_ONLY: 3 or 4 bands (eg. WEBP) * @VIPS_SAVEABLE_RGBA_ONLY: 3 or 4 bands (eg. WEBP)
* @VIPS_SAVEABLE_RGB_CMYK: 1, 3 or 4 bands (eg. JPEG) * @VIPS_SAVEABLE_RGB_CMYK: 1, 3 or 4 bands (eg. JPEG)
* @VIPS_SAVEABLE_ANY: any number of bands (eg. TIFF) * @VIPS_SAVEABLE_ANY: any number of bands (eg. TIFF)

View File

@ -63,13 +63,13 @@
* VipsBuf buf = VIPS_BUF_STATIC (txt); * VipsBuf buf = VIPS_BUF_STATIC (txt);
* int i; * int i;
* *
* vips_buf_appends (&buf, "Numbers are: "); * vips_buf_appends (&amp;buf, "Numbers are: ");
* for (i = 0; i < array_length; i++) { * for (i = 0; i &lt; array_length; i++) {
* if (i > 0) * if (i &gt; 0)
* vips_buf_appends (&buf, ", "); * vips_buf_appends (&amp;buf, ", ");
* vips_buf_appendg (&buf, array[i]); * vips_buf_appendg (&amp;buf, array[i]);
* } * }
* printf ("%s", vips_buf_all (&buf)); * printf ("%s", vips_buf_all (&amp;buf));
* ]| * ]|
*/ */
@ -175,7 +175,7 @@ vips_buf_set_static( VipsBuf *buf, char *base, int mx )
* char txt[256]; * char txt[256];
* VipsBuf buf; * VipsBuf buf;
* *
* vips_buf_init_static (&buf, txt, 256); * vips_buf_init_static (&amp;buf, txt, 256);
* ]| * ]|
* *
* Static buffers don't need to be freed when they go out of scope, but their * Static buffers don't need to be freed when they go out of scope, but their
@ -231,7 +231,7 @@ vips_buf_set_dynamic( VipsBuf *buf, int mx )
* |[ * |[
* VipsBuf buf; * VipsBuf buf;
* *
* vips_buf_init_synamic (&buf, 256); * vips_buf_init_synamic (&amp;buf, 256);
* ]| * ]|
* *
* Dynamic buffers must be freed with vips_buf_destroy(), but their size can * Dynamic buffers must be freed with vips_buf_destroy(), but their size can

View File

@ -94,7 +94,7 @@
* // vips_image_new_from_file() will set a message, we don't need to * // vips_image_new_from_file() will set a message, we don't need to
* return( -1 ); * return( -1 );
* *
* if( vips_image_get_width( im ) < 100 ) { * if( vips_image_get_width( im ) &lt; 100 ) {
* // we have detected an error, we must set a message * // we have detected an error, we must set a message
* vips_error( "myprogram", "%s", _( "width too small" ) ); * vips_error( "myprogram", "%s", _( "width too small" ) );
* return( -1 ); * return( -1 );

View File

@ -86,7 +86,7 @@ static FILE *vips__thread_fp = NULL;;
/** /**
* vips_profile_set: * vips_profile_set:
* @info: %TRUE to enable profile recording * @profile: %TRUE to enable profile recording
* *
* If set, vips will record profiling information, and dump it on program * If set, vips will record profiling information, and dump it on program
* exit. These profiles can be analysed with the `vipsprofile` program. * exit. These profiles can be analysed with the `vipsprofile` program.

View File

@ -817,10 +817,10 @@ vips__image_copy_fields_array( VipsImage *out, VipsImage *in[] )
* |[ * |[
* GValue value = { 0 }; * GValue value = { 0 };
* *
* g_value_init (&value, G_TYPE_INT); * g_value_init (&amp;value, G_TYPE_INT);
* g_value_set_int (&value, 42); * g_value_set_int (&amp;value, 42);
* vips_image_set (image, field, &value); * vips_image_set (image, field, &amp;value);
* g_value_unset (&value); * g_value_unset (&amp;value);
* ]| * ]|
* *
* See also: vips_image_get(). * See also: vips_image_get().
@ -859,20 +859,20 @@ vips_image_set( VipsImage *image, const char *field, GValue *value )
* GValue value = { 0 }; * GValue value = { 0 };
* double d; * double d;
* *
* if (vips_image_get (image, field, &value)) * if (vips_image_get (image, field, &amp;value))
* return -1; * return -1;
* *
* if (G_VALUE_TYPE (&value) != G_TYPE_DOUBLE) { * if (G_VALUE_TYPE (&amp;value) != G_TYPE_DOUBLE) {
* vips_error( "mydomain", * vips_error( "mydomain",
* _("field \"%s\" is of type %s, not double"), * _("field \"%s\" is of type %s, not double"),
* field, * field,
* g_type_name (G_VALUE_TYPE (&value))); * g_type_name (G_VALUE_TYPE (&amp;value)));
* g_value_unset (&value); * g_value_unset (&amp;value);
* return -1; * return -1;
* } * }
* *
* d = g_value_get_double (&value); * d = g_value_get_double (&amp;value);
* g_value_unset (&value); * g_value_unset (&amp;value);
* ]| * ]|
* *
* See also: vips_image_get_typeof(), vips_image_get_double(). * See also: vips_image_get_typeof(), vips_image_get_double().

View File

@ -383,7 +383,7 @@ G_DEFINE_TYPE( VipsImage, vips_image, VIPS_TYPE_OBJECT );
/** /**
* vips_progress_set: * vips_progress_set:
* @info: %TRUE to enable progress messages * @progress: %TRUE to enable progress messages
* *
* If set, vips will print messages about the progress of computation to * If set, vips will print messages about the progress of computation to
* stdout. This can also be enabled with the --vips-progress option, or by * stdout. This can also be enabled with the --vips-progress option, or by

View File

@ -2213,7 +2213,7 @@ vips_object_set_valist( VipsObject *object, va_list ap )
* |[ * |[
* vips_object_set (operation, * vips_object_set (operation,
* "input", in, * "input", in,
* "output", &out, * "output", &amp;out,
* NULL); * NULL);
* ]| * ]|
* *
@ -2853,9 +2853,9 @@ vips_object_local_array_cb( GObject *parent, VipsObjectLocal *local )
* *
* t = vips_object_local_array( a, 5 ); * t = vips_object_local_array( a, 5 );
* if( * if(
* vips_add( a, b, &t[0], NULL ) || * vips_add( a, b, &amp;t[0], NULL ) ||
* vips_invert( t[0], &t[1], NULL ) || * vips_invert( t[0], &amp;t[1], NULL ) ||
* vips_add( t[1], t[0], &t[2], NULL ) || * vips_add( t[1], t[0], &amp;t[2], NULL ) ||
* vips_costra( t[2], out, NULL ) ) * vips_costra( t[2], out, NULL ) )
* return( -1 ); * return( -1 );
* ]| * ]|

View File

@ -102,7 +102,7 @@
* VipsImage *im = ...; * VipsImage *im = ...;
* VipsImage *t1; * VipsImage *t1;
* *
* if (vips_invert (im, &t1, NULL)) * if (vips_invert (im, &amp;t1, NULL))
* error .. * error ..
* ]| * ]|
* *
@ -122,13 +122,13 @@
* VipsImage *im = ...; * VipsImage *im = ...;
* VipsImage *t1, *t2; * VipsImage *t1, *t2;
* *
* if (vips_invert (im, &t1, NULL)) { * if (vips_invert (im, &amp;t1, NULL)) {
* g_object_unref (im); * g_object_unref (im);
* return -1; * return -1;
* } * }
* g_object_unref (im); * g_object_unref (im);
* *
* if (vips_flip (t1, &t2, VIPS_DIRECTION_HORIZONTAL, NULL)) { * if (vips_flip (t1, &amp;t2, VIPS_DIRECTION_HORIZONTAL, NULL)) {
* g_object_unref (t1); * g_object_unref (t1);
* return -1; * return -1;
* } * }
@ -143,8 +143,8 @@
* VipsImage *im = ...; * VipsImage *im = ...;
* VipsImage *t = (VipsImage **) vips_object_local_array (parent, 2); * VipsImage *t = (VipsImage **) vips_object_local_array (parent, 2);
* *
* if (vips_invert (im, &t[0], NULL) || * if (vips_invert (im, &amp;t[0], NULL) ||
* vips_flip (t[0], &t[1], VIPS_DIRECTION_HORIZONTAL, NULL)) * vips_flip (t[0], &amp;t[1], VIPS_DIRECTION_HORIZONTAL, NULL))
* return -1; * return -1;
* ]| * ]|
* *
@ -933,7 +933,7 @@ vips_call_by_name( const char *operation_name,
* VipsImage *in = ... * VipsImage *in = ...
* VipsImage *out; * VipsImage *out;
* *
* if( vips_call( "embed", in, &out, 10, 10, 100, 100, * if( vips_call( "embed", in, &amp;out, 10, 10, 100, 100,
* "extend", VIPS_EXTEND_COPY, * "extend", VIPS_EXTEND_COPY,
* NULL ) ) * NULL ) )
* ... error * ... error

View File

@ -825,7 +825,7 @@ vips_region_region( VipsRegion *reg,
* Do two regions point to the same piece of image? ie. * Do two regions point to the same piece of image? ie.
* *
* |[ * |[
* VIPS_REGION_ADDR( reg1, x, y ) == VIPS_REGION_ADDR( reg2, x, y ) && * VIPS_REGION_ADDR( reg1, x, y ) == VIPS_REGION_ADDR( reg2, x, y ) &amp;&amp;
* *VIPS_REGION_ADDR( reg1, x, y ) == * *VIPS_REGION_ADDR( reg1, x, y ) ==
* *VIPS_REGION_ADDR( reg2, x, y ) for all x, y, reg1, reg2. * *VIPS_REGION_ADDR( reg2, x, y ) for all x, y, reg1, reg2.
* ]| * ]|
@ -1228,8 +1228,8 @@ vips_region_shrink_uncoded( VipsRegion *from, VipsRegion *to, VipsRect *target )
/** /**
* vips_region_shrink: * vips_region_shrink:
* @reg: source region * @from: source region
* @dest: destination region * @to: destination region
* @target: #VipsRect of pixels you need to copy * @target: #VipsRect of pixels you need to copy
* *
* Write the pixels @target in @to from the x2 larger area in @from. * Write the pixels @target in @to from the x2 larger area in @from.

View File

@ -351,10 +351,10 @@ vips_system_init( VipsSystem *system )
* *
* if (vips_system ("convert %s -swirl 45 %s", * if (vips_system ("convert %s -swirl 45 %s",
* "in", in, * "in", in,
* "out", &out, * "out", &amp;out,
* "in_format", "%s.jpg", * "in_format", "%s.jpg",
* "out_format", "%s.jpg", * "out_format", "%s.jpg",
* "log", &log, * "log", &amp;log,
* NULL)) * NULL))
* error ... * error ...
* ]| * ]|