img_rotate_ortho()

Updated: April 19, 2023

Rotate an image by 90-degree increments

Synopsis:

#include <img/img.h>

int img_rotate_ortho( const img_t *src,
                      img_t *dst,
                      img_fixed_t angle );

Arguments:

src
The image to rotate.
dst
The address of an img_t describing the destination. If you don't specify width or height (or both) in the dst then this function will calculate the missing dimension(s) based on the src image, taking into account the rotation. If you do specify either width or height (or both), the image is clipped as necessary; unused data remains untouched.
angle
A 16.16 fixed point representation of the angle (in radians). The following constants are provided for convenience:
  • IMG_ANGLE_90CW — 90 degrees clockwise (to the right)
  • IMG_ANGLE_180 — 180 degrees
  • IMG_ANGLE_90CCW — 90 degrees counter-clockwise (to the left)

Library:

libimg

Use the -l img option to qcc to link against this library.

Description:

This function rotates the src image by 90-degree increments. The rotation is not a true “rotation” in that the image is not rotated about a fixed point. Rather, the image itself is rotated and the new origin of the image becomes the upper-left corner of the rotated image.

The formats of src and dst don't have to be the same; if they are different, the data is converted. A palette-based dst format is only supported if the src data also is palette-based.

Note: Rotation cannot be done in place.

Returns:

IMG_ERR_OK
Success.
IMG_ERR_PARM
Some fields of src are missing (that is, not marked as valid in flags).
IMG_ERR_NOSUPPORT
Unsupported format conversion or angle.
IMG_ERR_MEM
Insufficient memory (the function requires a small amount of working memory).

Classification:

Image library

Safety:  
Interrupt handler No
Signal handler No
Thread No