Lvgl blurred on the screen help

Description

In some setting scenes, the display needs to be blurred.
I tested the canvas and found that it has a blurry effect. But need to put the image on the canvas

The code block(s) should be formatted like:

  lv_obj_t *canvas = lv_canvas_create(lv_scr_act(), NULL);
  static lv_color_t canvas_buf[252 * 166];
  lv_canvas_set_buffer(canvas, canvas_buf, 252, 166, LV_IMG_CF_TRUE_COLOR_ALPHA);

  lv_draw_img_dsc_t img_dsc;
  lv_draw_img_dsc_init(&img_dsc);
  lv_canvas_draw_img(canvas, 0, 0, "z:img.png", &img_dsc);

  lv_area_t area = {0, 0, 252, 100};

  //! Blur needs to be set vertically and horizontally together
  lv_canvas_blur_hor(canvas, &area, 30);
  lv_canvas_blur_ver(canvas, &area, 30);

Screenshot and/or video

blur

I want to blur a part of the screen, not limited to the canvas, how should I solve it

Possible ideas

  1. How to get the display data of an area on the screen
  2. Assuming that it can be obtained, then write it to the canvas to blur

I hope that there will be a new interface in the future, which can set an area to be blurred on the screen

I will lock this as the conversation is happening in your GitHub issue.

1 Like