V8.3.7 snapshot issue

I use the LVGL 8.3.7 and try to do the snapshot with below code.

lv_img_cf_t colour_format = LV_IMG_CF_TRUE_COLOR_ALPHA;
lv_img_dsc_t * screenshot = lv_snapshot_take(lv_scr_act(), colour_format);
  
//encode the screenshot as a PNG using lodePNG
const unsigned char * image = screenshot->data;
unsigned int width = screenshot->header.w;
unsigned int height = screenshot->header.h;

lodepng_encode32_file("A:screenshot32.png", image, width, height); //produces correct image

I use ARGB8888
/Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)/
#define LV_COLOR_DEPTH 32

And the original picture can be load correctly on display device but the snapshot picture is mixed between blue and red as below.
RGB
snapshot