lv_draw_image.h

API reference for lv_draw_image.h

Report on GitHub
See Also: Private HeaderThis header has a companion private implementation with internal data structures.lv_draw_image_private.h

Functions

lv_draw_task_get_image_dsc

Try to get an image draw descriptor from a draw task.

 
lv_draw_image_dsc_t * lv_draw_task_get_image_dsc(lv_draw_task_t *task)
Parameters
NameTypeDescription
tasklv_draw_task_t *draw task

Returns: lv_draw_image_dsc_t * — the task's draw descriptor or NULL if the task is not of type LV_DRAW_TASK_TYPE_IMAGE

lv_image_src_get_type

Get the type of an image source

 
lv_image_src_t lv_image_src_get_type(const void *src)
Parameters
NameTypeDescription
srcconst void *pointer to an image source:
- pointer to an 'lv_image_t' variable (image stored internally and compiled into the code)
- a path to a file (e.g. "S:/folder/image.bin")
- or a symbol (e.g. LV_SYMBOL_CLOSE)

Returns: lv_image_src_t — type of the image source LV_IMAGE_SRC_VARIABLE/FILE/SYMBOL/UNKNOWN

Structs

struct

_lv_draw_image_dsc_t

MemberTypeDescription
baselv_draw_dsc_base_t
srcconst void *The image source: pointer to lv_image_dsc_t or a path to a file
headerlv_image_header_tThe header of the image. Initialized internally in lv_draw_image
clip_radiusint32_tClip the corner of the image with this radius. Use LV_RADIUS_CIRCLE for max. radius
rotationint32_tThe rotation of the image in 0.1 degree unit. E.g. 234 means 23.4°
scale_xint32_tHorizontal scale (zoom) of the image. 256 (LV_SCALE_NONE): means no zoom, 512 double size, 128 half size.
scale_yint32_tSame as scale_y but vertically
skew_xint32_tParallelogram like transformation of the image horizontally in 0.1 degree unit. E.g. 456 means 45.6°.
skew_yint32_tSame as skew_x but vertically
pivotlv_point_tThe pivot point of transformation (scale and rotation). 0;0 is the top left corner of the image. Can be outside of the image too.
recolorlv_color_tMix this color to the images. In case of LV_COLOR_FORMAT_A8 it will be the color of the visible pixels
recolor_opalv_opa_tThe intensity of recoloring. 0 means, no recolor, 255 means full cover (transparent pixels remain transparent)
opalv_opa_tOpacity in 0...255 range. LV_OPA_TRANSP, LV_OPA_10, LV_OPA_20, .. LV_OPA_COVER can be used as well
blend_modelv_blend_mode_tDescribes how to blend the pixels of the image to the background. See lv_blend_mode_t for more details.
antialiasuint16_t1: perform the transformation with anti-aliasing
tileuint16_tIf the image is smaller than the image_area field of lv_draw_image_dsc_t tile the image (repeat is both horizontally and vertically) to fill the image_area area
colorkeyconst lv_image_colorkey_t *
suplv_draw_image_sup_t *Used internally to store some information about the palette or the color of A8 images
image_arealv_area_tUsed to indicate the entire original, non-clipped area where the image is to be drawn. This is important for:
1. Layer rendering, where it might happen that only a smaller area of the layer is rendered and e.g. clip_radius needs to know what the original image was.
2. Tiled images, where the target draw area is larger than the image to be tiled.
bitmap_mask_srcconst lv_image_dsc_t *Pointer to an A8 or L8 image descriptor to mask the image with. The mask is always center aligned.

Typedefs

lv_draw_image_core_cb

 
typedef void(* lv_draw_image_core_cb) (lv_draw_task_t *t, const lv_draw_image_dsc_t *draw_dsc, const lv_image_decoder_dsc_t *decoder_dsc, lv_draw_image_sup_t *sup, const lv_area_t *img_coords, const lv_area_t *clipped_img_area)

PErform the actual rendering of a decoded image

Used by 2 functions
  • lv_draw_image_normal_helper — param draw_core_cb
  • lv_draw_image_tiled_helper — param draw_core_cb

Dependencies

How is this guide?

Last updated on

On this page