blob: 34747f93b10415ecc6817f2a5c0ef9610bd567af [file] [log] [blame]
.TH VIPS_INTERPOLATE 3 "28 March 2009"
.SH NAME
VipsInterpolate,
vips_interpolate,
vips_interpolate_get_method,
vips_interpolate_get_window_size
\-
base class for VIPS interpolators
.SH SYNOPSIS
#include <vips/vips.h>
typedef void (*VipsInterpolateMethod)( VipsInterpolate *,
.br
PEL *out, REGION *in, double x, double y );
typedef struct _VipsInterpolateClass {
.br
VipsObjectClass parent_class;
VipsInterpolateMethod interpolate;
.br
int (*get_window_size)( VipsInterpolate * );
.br
int window_size;
.br
} VipsInterpolateClass;
void vips_interpolate( VipsInterpolate *interpolate,
.br
PEL *out, REGION *in, double x, double y );
.br
VipsInterpolateMethod vips_interpolate_get_method( VipsInterpolate * );
.br
int vips_interpolate_get_window_size( VipsInterpolate *interpolate );
VipsInterpolate *vips_interpolate_nearest_static( void );
.br
VipsInterpolate *vips_interpolate_bilinear_static( void );
.br
VipsInterpolate *vips_interpolate_bicubic_static( void );
VipsInterpolate *vips_interpolate_new( const char *nickname );
.SH DESCRIPTION
.B VipsInterpolate
is the base class for VIPS interpolators. It provides a simple framework that
subclasses use to implement the various interpolators that VIPS ships with.
You can add new interpolators by subclassing
.B VipsInterpolated
and implementing an
.B interpolate
method.
You can use any interpolator in your code via the methods of
.B VipsInterpolate.
.B vips_interpolate(3)
looks up the interpolate method for the object and calls it for you.
.B vips_interpolate_get_method(3)
just does the lookup and returns a pointer to the interpolate function. You
can use this to take the lookup out of an inner loop.
.B vips_interpolate_get_window_size(3)
either calls
.B get_window_size()
or if it is NULL, returns
.B window_size.
.B vips_interpolate_nearest_static(3),
.B vips_interpolate_bilinear_static(3)
and
.B vips_interpolate_bicubic_static(3)
are convenience functions which return a pointer to a static instance of a
nearest-neighbour, bilinear and bicubic interpolator. You can pass these to
any function which needs a
.B VipsInterpolator
as an argument. No need to free the result.
.B vips_interpolate_new(3)
is a convenience function which makes an interpolator from a nickname. Free
the result with
.B g_object_unref(3)
when you're done with it.
.SH SUPPORTED INTERPOLATORS
You can list the supported interpolators with
$ vips --list classes
look for subclasses of
.B VipsInterpolate.
.SH RETURN VALUE
Unless otherwise noted, functions return 0 success and -1 on error.
.SH SEE ALSO
VipsObject(3), VipsInterpolate(3),
vips_type_find(3), vips(1).
.SH AUTHOR
John Cupitt