当前位置:网站首页>lvgl 显示图片示例

lvgl 显示图片示例

2022-07-05 14:57:00 Neo Wordsworth

通过 在线图像转换工具 获得一个图片文件,这里提取出数据便于了解图片的显示(这个数据可以通过网络或蓝牙传输过来)

uint8_t myimg_map[] = {
    0x00, 0x00, 0xff, 0xff,
    0x00, 0x00, 0x00, 0x00,

    0xfe, 0x7f,
    0xfd, 0xbf,
    0xc0, 0x03,
    0xd7, 0xdb,
    0xcf, 0xeb,
    0xdf, 0xf3,
    0x9e, 0x79,
    0x5d, 0xba,
    0x5d, 0xba,
    0x9e, 0x79,
    0xdf, 0xfb,
    0xcf, 0xe3,
    0xd7, 0xdb,
    0xc0, 0x03,
    0xfd, 0xbf,
    0xfe, 0x7f,
};
void test1(){
    static lv_img_dsc_t myimg;

    myimg.header.cf = LV_IMG_CF_INDEXED_1BIT;
    myimg.header.always_zero = 0;
    myimg.header.reserved = 0;
    myimg.header.w = 16;
    myimg.header.h = 16;
    myimg.data_size = 40;
    myimg.data = myimg_map;

    lv_obj_t * icon = lv_img_create(lv_scr_act());
    lv_obj_center(icon);
    lv_img_set_src(icon, &myimg);

//#define LV_MY_RECOLOR 1 //注释这里则显示原来的红色
#if LV_MY_RECOLOR
    static lv_style_t img_style;
    lv_style_init(&img_style);
    lv_style_set_img_recolor(&img_style,lv_color_hex(0x0000ff));
    lv_style_set_img_recolor_opa(&img_style,255);
    lv_obj_add_style(icon, &img_style, 0);
#endif
}

运行后显示这样一张小图

如果使能定义LV_MY_RECOLOR

可以重新着色,原本的红色,重新着色为蓝色

(LV_IMG_CF_INDEXED_1BIT数据前3比特代表颜色是:蓝、绿、红)

 

 

原网站

版权声明
本文为[Neo Wordsworth]所创,转载请带上原文链接,感谢
https://blog.csdn.net/neo_Wordsworth/article/details/125600145