int im_affinei(in, out, interpolate, a, b, c, d, dx, dy, x, y, w, h)
IMAGE *in, *out;
VipsInterpolate *interpolate;
double a, b, c, d, dx, dy;
int x, y;
int w, h;
int im_affinei_all(in, out, interpolate, a, b, c, d, dx, dy)
IMAGE *in, *out;
VipsInterpolate *interpolate;
double a, b, c, d, dx, dy;
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 VipsInterpolate(3) for a list of the interpolators that come with vips.
im_affinei_all(3) is a convenience function that transforms the whole of the input image. It calls im_affine(3) for you, with x y w h set to exactly enclose the transformed image.