Man Linux: Main Page and Category List

NAME

       VipsInterpolate,     vips_interpolate,     vips_interpolate_get_method,
       vips_interpolate_get_window_size - base class for VIPS interpolators

SYNOPSIS

       #include <vips/vips.h>

       typedef void (*VipsInterpolateMethod)( VipsInterpolate *,
         PEL *out, REGION *in, double x, double y );

       typedef struct _VipsInterpolateClass {
         VipsObjectClass parent_class;

         VipsInterpolateMethod interpolate;
         int (*get_window_size)( VipsInterpolate * );
         int window_size;
       } VipsInterpolateClass;

       void vips_interpolate( VipsInterpolate *interpolate,
         PEL *out, REGION *in, double x, double y );
       VipsInterpolateMethod vips_interpolate_get_method( VipsInterpolate * );
       int vips_interpolate_get_window_size( VipsInterpolate *interpolate );

       VipsInterpolate *vips_interpolate_nearest_static( void );
       VipsInterpolate *vips_interpolate_bilinear_static( void );
       VipsInterpolate *vips_interpolate_bicubic_static( void );

       VipsInterpolate *vips_interpolate_new( const char *nickname );

DESCRIPTION

       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 VipsInterpolated and implementing  an  interpolate  method.
       You  can  use  any  interpolator  in  your  code  via  the  methods  of
       VipsInterpolate.

       vips_interpolate(3) looks up the interpolate method for the object  and
       calls it for you.

       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.

       vips_interpolate_get_window_size(3)  either  calls get_window_size() or
       if it is NULL, returns window_size.

       vips_interpolate_nearest_static(3), vips_interpolate_bilinear_static(3)
       and  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 VipsInterpolator as an argument. No need to free the result.

       vips_interpolate_new(3)  is  a  convenience  function  which  makes  an
       interpolator  from  a  nickname. Free the result with g_object_unref(3)
       when you’re done with it.

SUPPORTED INTERPOLATORS

       You can list the supported interpolators with

         $ vips --list classes

       look for subclasses of VipsInterpolate.

RETURN VALUE

       Unless otherwise noted, functions return 0 success and -1 on error.

SEE ALSO

       VipsObject(3), VipsInterpolate(3), vips_type_find(3), vips(1).

AUTHOR

       John Cupitt

                                 28 March 2009             VIPS_INTERPOLATE(3)