| .TH IM_AFFINEI 3 "8 February 2009" |
| .SH NAME |
| im_affinei \- apply an affine transform to an image |
| .SH SYNOPSIS |
| .B #include <vips/vips.h> |
| |
| int im_affinei(in, out, interpolate, a, b, c, d, dx, dy, x, y, w, h) |
| .br |
| .B IMAGE *in, *out; |
| .br |
| .B VipsInterpolate *interpolate; |
| .br |
| .B double a, b, c, d, dx, dy; |
| .br |
| .B int x, y; |
| .br |
| .B int w, h; |
| |
| int im_affinei_all(in, out, interpolate, a, b, c, d, dx, dy) |
| .br |
| .B IMAGE *in, *out; |
| .br |
| .B VipsInterpolate *interpolate; |
| .br |
| .B double a, b, c, d, dx, dy; |
| |
| .SH DESCRIPTION |
| .B im_affinei(3) |
| applies an affine transformation on the image held by the IMAGE descriptor |
| in and puts the result at the location pointed by the IMAGE descriptor out. in |
| many have any number of bands, be any size, and have any non-complex type. |
| |
| The transformation is described by a, b, c, d, dx, dy. The point (x,y) in |
| the input is mapped onto point (X,Y) in the output by |
| |
| X = a * x + b * y + dx |
| Y = c * x + d * y + dy |
| |
| The area of the output image given by w, h, x, y is generated. (0,0) is |
| the position of the transformed top-left-hand corner of the input image. |
| |
| Points are generated using the supplied interpolator. See |
| .B VipsInterpolate(3) |
| for a list of the interpolators that come with vips. |
| |
| .B im_affinei_all(3) |
| is a convenience function that transforms the whole of the input image. It |
| calls |
| .B im_affine(3) |
| for you, with x y w h set to exactly enclose the transformed image. |
| |
| .SH RETURN VALUE |
| The functions return 0 on success and -1 on error. |
| .SH BUGS |
| As with most resamplers, im_affine(3) performs poorly at the edges of |
| images. |
| .SH SEE ALSO |
| im_similarity(3) |