lv_image.h

Defines

LV_IMAGE_DECLARE(var_name)

Use this macro to declare an image in a C file

Typedefs

typedef _lv_image_align_t lv_image_align_t

Enums

enum _lv_image_align_t

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

Values:

enumerator LV_IMAGE_ALIGN_DEFAULT
enumerator LV_IMAGE_ALIGN_TOP_LEFT
enumerator LV_IMAGE_ALIGN_TOP_MID
enumerator LV_IMAGE_ALIGN_TOP_RIGHT
enumerator LV_IMAGE_ALIGN_BOTTOM_LEFT
enumerator LV_IMAGE_ALIGN_BOTTOM_MID
enumerator LV_IMAGE_ALIGN_BOTTOM_RIGHT
enumerator LV_IMAGE_ALIGN_LEFT_MID
enumerator LV_IMAGE_ALIGN_RIGHT_MID
enumerator LV_IMAGE_ALIGN_CENTER
enumerator _LV_IMAGE_ALIGN_AUTO_TRANSFORM
enumerator LV_IMAGE_ALIGN_STRETCH
enumerator LV_IMAGE_ALIGN_TILE

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, int32_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, int32_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.

Note

if image_align is LV_IMAGE_ALIGN_STRETCH or LV_IMAGE_ALIGN_FIT rotation will be set to 0 automatically.

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, int32_t x, int32_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_blend_mode(lv_obj_t *obj, lv_blend_mode_t blend_mode)

Set the blend mode of an image.

Parameters:
  • obj -- pointer to an image object

  • blend_mode -- the new blend mode

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_align(lv_obj_t *obj, lv_image_align_t align)

Set the image object size mode.

Note

if image_align is LV_IMAGE_ALIGN_STRETCH or LV_IMAGE_ALIGN_FIT rotation, scale and pivot will be overwritten and controlled internally.

Parameters:
  • obj -- pointer to an image object

  • align -- the new align 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)

int32_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.

int32_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.

int32_t lv_image_get_rotation(lv_obj_t *obj)

Get the rotation of the image.

Note

if image_align is LV_IMAGE_ALIGN_STRETCH or LV_IMAGE_ALIGN_FIT rotation will be set to 0 automatically.

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

int32_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)

int32_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)

int32_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)

lv_blend_mode_t lv_image_get_blend_mode(lv_obj_t *obj)

Get the current blend mode of the image

Parameters:

obj -- pointer to an image object

Returns:

the current blend mode

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_align_t lv_image_get_align(lv_obj_t *obj)

Get the size mode of the image

Parameters:

obj -- pointer to an image object

Returns:

element of lv_image_align_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

Image source: Pointer to an array or a file or a symbol

lv_point_t offset
int32_t w

Width of the image (Handled by the library)

int32_t h

Height of the image (Handled by the library)

uint32_t rotation

Rotation angle of the image

uint32_t scale_x

256 means no zoom, 512 double size, 128 half size

uint32_t scale_y

256 means no zoom, 512 double size, 128 half size

lv_point_t pivot

Rotation center of the image

uint32_t src_type

See: lv_image_src_t

uint32_t cf

Color format from lv_color_format_t

uint32_t antialias

Apply anti-aliasing in transformations (rotate, zoom)

uint32_t align

Image size mode when image size and object size is different. See lv_image_align_t

uint32_t blend_mode

Element of lv_blend_mode_t