| .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 |