cc [ flag... ] file... –lmlib [ library... ] #include <mlib.h> mlib_status mlib_ImageRotate_Fp(mlib_image *dst, const mlib_image *src, mlib_d64 angle, mlib_d64 xcenter, mlib_d64 ycenter, mlib_filter filter, mlib_edge edge);
The mlib_ImageRotate_Fp() function rotates a floating-point source image around a user-defined rotation center in the user-defined radians.
The width and height of the destination image can be different from the width and height of the source image. The (xcenter, ycenter) point of the source image is mapped to the center of the destination image. You should ensure that the destination buffer is large enough to hold the resulting bounding box to avoid clipping part of the 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.
Angle of rotation. The angle is measured in radians clockwise.
X coordinate of rotation center in the source image.
Y coordinate of rotation center in the source image.
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
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes: