【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);

但是反过来,图片是无法适配对象大小的。至少目前是没有找到合适的方法。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值