通过 在线图像转换工具 获得一个图片文件,这里提取出数据便于了解图片的显示(这个数据可以通过网络或蓝牙传输过来)
- 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比特代表颜色是:蓝、绿、红)