LVGL学习笔记image图像相关接口
Posted 沉默的小宇宙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVGL学习笔记image图像相关接口相关的知识,希望对你有一定的参考价值。
数据结构如下:
/**
* Data of image
*/
typedef struct
lv_obj_t obj;
const void * src; /*图像源:指向数组、文件或符号的指针*/
lv_point_t offset;
lv_coord_t w; /*宽度*/
lv_coord_t h; /*高度*/
uint16_t angle; /*旋转角度*/
lv_point_t pivot; /*图像的旋转中心*/
uint16_t zoom; /*256表示无缩放,512表示2倍大小,128一半大小*/
uint8_t src_type : 2; /*See: lv_img_src_t*/
uint8_t cf : 5; /*Color format from `lv_img_color_format_t`*/
uint8_t antialias : 1; /*Apply anti-aliasing in transformations (rotate, zoom)*/
uint8_t obj_size_mode: 2; /*图像大小和对象大小不同时的图像大小模式。*/
lv_img_t;
比较重要及常用的都翻译了下
常用接口基本上从字面意思也能大致猜到:
// 创建一个图片对象
void lv_img_set_src(lv_obj_t * obj, const void * src);
//设置旋转角度
void lv_img_set_angle(lv_obj_t * obj, int16_t angle);
// 设置旋转的中心点
void lv_img_set_pivot(lv_obj_t * obj, lv_coord_t x, lv_coord_t y);
/**
* Set the zoom factor of the image.
* @param img pointer to an image object
* @param zoom the zoom factor.
* @example 256 or LV_ZOOM_IMG_NONE for no zoom
* @example <256: scale down
* @example >256 scale up
* @example 128 half size
* @example 512 double size
*/
void lv_img_set_zoom(lv_obj_t * obj, uint16_t zoom);
//从注释中可以很清楚知道后面的zoom参数就是缩放调整比例系数
这里在使用中发现一个问题,可能也是误导很多开发着的地方,图片的源大小、及缩放后的大小决定了图片最终的显示。对象的大小在设置自适应之后会自动适配图片大小,通过下面接口就可以实现:
lv_obj_set_size(xxx, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
但是反过来,图片是无法适配对象大小的。至少目前是没有找到合适的方法。
以上是关于LVGL学习笔记image图像相关接口的主要内容,如果未能解决你的问题,请参考以下文章
基于arduino的ESP32 学习笔记 TFT_eSPI和LVGL库使用笔记
基于arduino的ESP32 学习笔记 TFT_eSPI和LVGL库使用笔记
基于arduino的ESP32 学习笔记LVGL文件系统移植,中文字库和图片显示