GimpBilinear

GimpBilinear — Utility functions for bilinear interpolation.

Synopsis

gdouble             gimp_bilinear                       (gdouble x,
                                                         gdouble y,
                                                         gdouble *values);
guchar              gimp_bilinear_8                     (gdouble x,
                                                         gdouble y,
                                                         guchar *values);
guint16             gimp_bilinear_16                    (gdouble x,
                                                         gdouble y,
                                                         guint16 *values);
guint32             gimp_bilinear_32                    (gdouble x,
                                                         gdouble y,
                                                         guint32 *values);
GimpRGB             gimp_bilinear_rgb                   (gdouble x,
                                                         gdouble y,
                                                         GimpRGB *values);
GimpRGB             gimp_bilinear_rgba                  (gdouble x,
                                                         gdouble y,
                                                         GimpRGB *values);
void                gimp_bilinear_pixels_8              (guchar *dest,
                                                         gdouble x,
                                                         gdouble y,
                                                         guint bpp,
                                                         gboolean has_alpha,
                                                         guchar **values);

Description

Utility functions for bilinear interpolation.

Details

gimp_bilinear ()

gdouble             gimp_bilinear                       (gdouble x,
                                                         gdouble y,
                                                         gdouble *values);


gimp_bilinear_8 ()

guchar              gimp_bilinear_8                     (gdouble x,
                                                         gdouble y,
                                                         guchar *values);


gimp_bilinear_16 ()

guint16             gimp_bilinear_16                    (gdouble x,
                                                         gdouble y,
                                                         guint16 *values);


gimp_bilinear_32 ()

guint32             gimp_bilinear_32                    (gdouble x,
                                                         gdouble y,
                                                         guint32 *values);


gimp_bilinear_rgb ()

GimpRGB             gimp_bilinear_rgb                   (gdouble x,
                                                         gdouble y,
                                                         GimpRGB *values);


gimp_bilinear_rgba ()

GimpRGB             gimp_bilinear_rgba                  (gdouble x,
                                                         gdouble y,
                                                         GimpRGB *values);


gimp_bilinear_pixels_8 ()

void                gimp_bilinear_pixels_8              (guchar *dest,
                                                         gdouble x,
                                                         gdouble y,
                                                         guint bpp,
                                                         gboolean has_alpha,
                                                         guchar **values);

Computes bilinear interpolation of four pixels.

When has_alpha is FALSE, it's identical to gimp_bilinear_8() on each channel separately. When has_alpha is TRUE, it handles alpha channel correctly.

The pixels in values correspond to corner x, y coordinates in the following order: [0,0], [1,0], [0,1], [1,1].

dest :

Pixel, where interpolation result is to be stored.

x :

x-coordinate (0.0 to 1.0).

y :

y-coordinate (0.0 to 1.0).

bpp :

Bytes per pixel. dest and each values item is an array of bpp bytes.

has_alpha :

TRUE if the last channel is an alpha channel.

values :

Array of four pointers to pixels.