The lv_snapshot_take function is taking too long to execute

lv_img_dsc_t *img_data = lv_snapshot_take(obj,cf);
if(img_data!=NULL){
 ...
}

The execution was super slow, it took me 20 milliseconds to save a 1000 x 100 pixel ALHPA-2bit image, or 2 seconds on STM32.

It’s also super slow when obj has a little bit more children in it.I took a screenshot of the same size widget in QtWidget and it was very fast, almost less than a millisecond, while the screenshot was too slow to implement the same logic in LVGL.