lv_image.h

Defines

LV_IMAGE_DECLARE(var_name)

Use this macro to declare an image in a C file

Typedefs

typedef _lv_image_size_mode_t lv_image_size_mode_t

Enums

enum _lv_image_size_mode_t

Image size mode, when image size and object size is different

Values:

enumerator LV_IMAGE_SIZE_MODE_VIRTUAL

Zoom doesn't affect the coordinates of the object, however if zoomed in the image is drawn out of the its coordinates. The layout's won't change on zoom

enumerator LV_IMAGE_SIZE_MODE_REAL

If the object size is set to SIZE_CONTENT, then object size equals zoomed image size. It causes layout recalculation. If the object size is set explicitly, the image will be cropped when zoomed in.

Functions

lv_obj_t *lv_image_create(lv_obj_t *parent)

Create an image object

Parameters:

parent -- pointer to an object, it will be the parent of the new image

Returns:

pointer to the created image

void lv_image_set_src(lv_obj_t *obj, const void *src)

Set the image data to display on the object

Parameters:
  • obj -- pointer to an image object

  • src -- 1) pointer to an lv_image_dsc_t descriptor (converted by LVGL's image converter) (e.g. &my_img) or 2) path to an image file (e.g. "S:/dir/img.bin")or 3) a SYMBOL (e.g. LV_SYMBOL_OK)

void lv_image_set_offset_x(lv_obj_t *obj, lv_coord_t x)

Set an offset for the source of an image so the image will be displayed from the new origin.

Parameters:
  • obj -- pointer to an image

  • x -- the new offset along x axis.

void lv_image_set_offset_y(lv_obj_t *obj, lv_coord_t y)

Set an offset for the source of an image. so the image will be displayed from the new origin.

Parameters:
  • obj -- pointer to an image

  • y -- the new offset along y axis.

void lv_image_set_rotation(lv_obj_t *obj, int32_t angle)

Set the rotation angle of the image. The image will be rotated around the set pivot set by lv_image_set_pivot() Note that indexed and alpha only images can't be transformed.

Parameters:
  • obj -- pointer to an image object

  • angle -- rotation in degree with 0.1 degree resolution (0..3600: clock wise)

void lv_image_set_pivot(lv_obj_t *obj, lv_coord_t x, lv_coord_t y)

Set the rotation center of the image. The image will be rotated around this point. x, y can be set with value of LV_PCT, lv_image_get_pivot will return the true pixel coordinate of pivot in this case.

Parameters:
  • obj -- pointer to an image object

  • x -- rotation center x of the image

  • y -- rotation center y of the image

static inline void _lv_image_set_pivot(lv_obj_t *obj, lv_point_t *pivot)

Set pivot similar to get_pivot

void lv_image_set_scale(lv_obj_t *obj, uint32_t zoom)
void lv_image_set_scale_x(lv_obj_t *obj, uint32_t zoom)
void lv_image_set_scale_y(lv_obj_t *obj, uint32_t zoom)
void lv_image_set_antialias(lv_obj_t *obj, bool antialias)

Enable/disable anti-aliasing for the transformations (rotate, zoom) or not. The quality is better with anti-aliasing looks better but slower.

Parameters:
  • obj -- pointer to an image object

  • antialias -- true: anti-aliased; false: not anti-aliased

void lv_image_set_size_mode(lv_obj_t *obj, lv_image_size_mode_t mode)

Set the image object size mode.

Parameters:
  • obj -- pointer to an image object

  • mode -- the new size mode.

const void *lv_image_get_src(lv_obj_t *obj)

Get the source of the image

Parameters:

obj -- pointer to an image object

Returns:

the image source (symbol, file name or ::lv-img_dsc_t for C arrays)

lv_coord_t lv_image_get_offset_x(lv_obj_t *obj)

Get the offset's x attribute of the image object.

Parameters:

obj -- pointer to an image

Returns:

offset X value.

lv_coord_t lv_image_get_offset_y(lv_obj_t *obj)

Get the offset's y attribute of the image object.

Parameters:

obj -- pointer to an image

Returns:

offset Y value.

lv_coord_t lv_image_get_rotation(lv_obj_t *obj)

Get the rotation of the image.

Parameters:

obj -- pointer to an image object

Returns:

rotation in 0.1 degrees (0..3600)

void lv_image_get_pivot(lv_obj_t *obj, lv_point_t *pivot)

Get the pivot (rotation center) of the image. If pivot is set with LV_PCT, convert it to px before return.

Parameters:
  • obj -- pointer to an image object

  • pivot -- store the rotation center here

lv_coord_t lv_image_get_scale(lv_obj_t *obj)

Get the zoom factor of the image.

Parameters:

obj -- pointer to an image object

Returns:

zoom factor (256: no zoom)

lv_coord_t lv_image_get_scale_x(lv_obj_t *obj)

Get the horizontal zoom factor of the image.

Parameters:

obj -- pointer to an image object

Returns:

zoom factor (256: no zoom)

lv_coord_t lv_image_get_scale_y(lv_obj_t *obj)

Get the vertical zoom factor of the image.

Parameters:

obj -- pointer to an image object

Returns:

zoom factor (256: no zoom)

bool lv_image_get_antialias(lv_obj_t *obj)

Get whether the transformations (rotate, zoom) are anti-aliased or not

Parameters:

obj -- pointer to an image object

Returns:

true: anti-aliased; false: not anti-aliased

lv_image_size_mode_t lv_image_get_size_mode(lv_obj_t *obj)

Get the size mode of the image

Parameters:

obj -- pointer to an image object

Returns:

element of lv_image_size_mode_t

Variables

const lv_obj_class_t lv_image_class
struct lv_image_t
#include <lv_image.h>

Data of image

Public Members

lv_obj_t obj
const void *src
lv_point_t offset
lv_coord_t w
lv_coord_t h
uint32_t rotation
uint32_t zoom_x
uint32_t zoom_y
lv_point_t pivot
uint8_t src_type
uint8_t cf
uint8_t antialias
uint8_t obj_size_mode