lvgl 显示图片示例

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

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
}

运行后显示这样一张小图

lvgl 显示图片示例_第1张图片

如果使能定义LV_MY_RECOLOR

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

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

lvgl 显示图片示例_第2张图片

 

 

你可能感兴趣的:(LVGL)