|
@@ -16,8 +16,13 @@
|
|
|
#define LV_COLOR_BLACK LV_COLOR_MAKE(0x00, 0x00, 0x00)
|
|
|
#define LV_COLOR_WHITE LV_COLOR_MAKE(0xff, 0xff, 0xff)
|
|
|
#define POWER_WIDTH 140
|
|
|
+#define PHOTO_DATA_MAX_SIZE (DEF_UI_WIDTH * DEF_UI_HEIGHT * LV_IMG_PX_SIZE_ALPHA_BYTE) //360*360*3
|
|
|
|
|
|
extern uint32_t flash_read(const char *name, uint32_t offset, void *data, uint32_t size);
|
|
|
+#ifdef CONFIG_UI_MEMORY_MANAGER
|
|
|
+extern void ui_mem_res_free(void * ptr);
|
|
|
+extern void * ui_mem_res_alloc(size_t size);
|
|
|
+#endif
|
|
|
|
|
|
static uint8_t *photo_data_buff;
|
|
|
static lv_img_dsc_t *img_dsc;
|
|
@@ -55,7 +60,7 @@ static lv_obj_t *activity_value_item_create(lv_obj_t *par, lv_color_t value_colo
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
- lv_obj_t *bg = aem_bg_create(par, AEM_SIZE_HOR_FACTOR_466(360), AEM_SIZE_VER_FACTOR_466(hight), lv_color_black());
|
|
|
+ lv_obj_t *bg = aem_bg_create(par, AEM_SIZE_HOR_FACTOR_466(DEF_UI_WIDTH), AEM_SIZE_VER_FACTOR_466(hight), lv_color_black());
|
|
|
if (bg == NULL)
|
|
|
{
|
|
|
return NULL;
|
|
@@ -98,16 +103,16 @@ static lv_obj_t *aem_profile_photo_arc_show_create(lv_obj_t *par)
|
|
|
{
|
|
|
photo_data_size = photo_data_size_buff[0] + ((uint32_t)photo_data_size_buff[1] << 8) + ((uint32_t)photo_data_size_buff[2] << 16);
|
|
|
|
|
|
- if (photo_data_size > 0)
|
|
|
+ if ((photo_data_size > 0) && (photo_data_size <= PHOTO_DATA_MAX_SIZE)) //>0且≤360*360*3
|
|
|
{
|
|
|
- photo_data_buff = (uint8_t *)lv_mem_alloc(photo_data_size);
|
|
|
+ photo_data_buff = (uint8_t *)ui_mem_res_alloc(photo_data_size);
|
|
|
|
|
|
flash_read("profile_photo_name", 3, photo_data_buff, photo_data_size);
|
|
|
//struct fs_file_t file = {0};
|
|
|
|
|
|
printk("photo_data_size: %d\n", photo_data_size);
|
|
|
- //printk("photo_data_buff62,63,64: %d, %d, %d\n", photo_data_buff[62], photo_data_buff[63], photo_data_buff[64]);
|
|
|
- //printk("photo_data_buff-62,-63,-64: %d, %d, %d\n", photo_data_buff[photo_data_size-63], photo_data_buff[photo_data_size-64], photo_data_buff[photo_data_size-65]);
|
|
|
+ //printk("photo_data_buff322,323,324,325: %d, %d, %d, %d\n", photo_data_buff[322], photo_data_buff[323], photo_data_buff[324], photo_data_buff[325]);
|
|
|
+ //printk("photo_data_buff-0,-1,-2: %d, %d, %d\n", photo_data_buff[1024-0], photo_data_buff[1024-1], photo_data_buff[1024-2]);
|
|
|
|
|
|
//int ret;
|
|
|
//fs_file_t_init(&file);
|
|
@@ -122,10 +127,10 @@ static lv_obj_t *aem_profile_photo_arc_show_create(lv_obj_t *par)
|
|
|
|
|
|
img_dsc->header.always_zero = 0;
|
|
|
img_dsc->header.reserved = 0;
|
|
|
- img_dsc->header.w = 360; //图片宽
|
|
|
- img_dsc->header.h = 360; //图片高
|
|
|
+ img_dsc->header.w = DEF_UI_WIDTH; //图片宽
|
|
|
+ img_dsc->header.h = DEF_UI_HEIGHT; //图片高
|
|
|
img_dsc->header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
|
|
|
- img_dsc->data_size = LV_IMG_BUF_SIZE_TRUE_COLOR_ALPHA(360, 360);
|
|
|
+ img_dsc->data_size = LV_IMG_BUF_SIZE_TRUE_COLOR_ALPHA(DEF_UI_WIDTH, DEF_UI_HEIGHT);
|
|
|
img_dsc->data = photo_data_buff;
|
|
|
|
|
|
lv_img_set_src(photo_icon, img_dsc);
|
|
@@ -240,7 +245,7 @@ void aem_profile_photo_screen_del(lv_obj_t *par)
|
|
|
if (ext_data)
|
|
|
{
|
|
|
lv_mem_free(ext_data);
|
|
|
- lv_mem_free(photo_data_buff);
|
|
|
+ ui_mem_res_free(photo_data_buff);
|
|
|
lv_mem_free(img_dsc);
|
|
|
ext_data = NULL;
|
|
|
photo_data_buff = NULL;
|