cc [ flag... ] file... –lmlib [ library... ] #include <mlib.h> mlib_status mlib_ImageAffineTransformIndex(mlib_image *dst, const mlib_image *src, const mlib_d64 *mtx, mlib_filter filter, mlib_edge edge, const void *colormap);
The mlib_ImageAffineTransformIndex() function does affine transformation on a color indexed image, checking the matrix first and taking advantage of special cases.
The following equation represents the affine transformation:
xd = a*xs + b*ys + tx yd = c*xs + d*ys + ty
where a point with coordinates (xs, ys) in the source image is mapped to a point with coordinates (xd, yd) in the destination image.
The image data type must be MLIB_BYTE or MLIB_SHORT.
The width and height of the destination image can be different from the width and height of the source image.
The center of the upper-left corner pixel of an image is located at (0.5, 0.5).
The function takes the following arguments:
Pointer to destination image.
Pointer to source image.
Transformation matrix. mtx[0] holds a; mtx[1] holds b; mtx[2] holds tx; mtx[3] holds c; mtx[4] holds d; mtx[5] holds ty.
Type of resampling filter. It can be one of the following:
MLIB_NEAREST MLIB_BILINEAR MLIB_BICUBIC MLIB_BICUBIC2
Type of edge condition. It can be one of the following:
MLIB_EDGE_DST_NO_WRITE MLIB_EDGE_DST_FILL_ZERO MLIB_EDGE_OP_NEAREST MLIB_EDGE_SRC_EXTEND MLIB_EDGE_SRC_PADDED
Internal data structure for inverse color mapping. This data structure is generated by the mlib_ImageColorTrue2IndexInit() function.
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:
|
mlib_ImageAffine(3MLIB), mlib_ImageAffine_Fp(3MLIB), mlib_ImageAffineIndex(3MLIB), mlib_ImageAffineTransform(3MLIB), mlib_ImageAffineTransform_Fp(3MLIB), attributes(5)