The documentation says that ‘The RLE image can be used same as other images.’
Whereas the display of an image works without compression, I am currently failing to display a RLE-compressed image (LV_USE_RLE is set to 1 in lv_conf.h)
My successful approach is:
python LVGLImage.py --ofmt C --cf I8 --compress NONE logo.png
However, no image is displayed when I execute this command
python LVGLImage.py --ofmt C --cf I8 --compress RLE logo.png
RLE is new in 9 and LVGL is perfect , but for me is in beta state. I stay on 8.3.7 for me stable with some my improved codes. When you have time then debug and solve your RLE issue help devel lvgl…
But irelevant of version any image codecs require RAM place to decode and too your code with 1000ms delay in code with one thread cant work…
I’m using a RTOS; so the delay (osDelay()) gives LVGL the opportunity to do his work.
And as far as the memory is concerned: I always keep an eye on it.
I have read the article you linked. But I couldn’t connect it with my problem.
I had also asked myself whether LVGL would be triggered at all. Therefore, before I call osDelay(), I set a breakpoint on line
lv_display_flush_ready(disp_drv);
(called in my_disp_flush())
It is called continuously. But no image appears.
2 of the problems was, as usual, about 50cm in front of the monitor:
in lv_conf.h I had forgotten to activate LV_BIN_DECODER_RAM_LOAD
the log level was to low (LV_LOG_LEVEL_USER; now LV_LOG_LEVEL_WARN)
Now I see 2 messages, but the warning I can’t interpret. [Warn] (0.072, +72) lv_draw_buf_create_user: No memory: 300x102, cf: 16, stride: 1200, 122400Byte, lv_draw_buf.c:256
[Error] (0.072, +0) decode_indexed: No memory for indexed image lv_bin_decoder.c:632
Simply as i write before, for decoding any compressed image is required RAM instead FLASH. In decoders docu is writed how much memory , but simple calc is 300x102x4 because indexed can have alpha info. Result to required RAM 122400 bytes.
LVGL is new territory for me, which is why I can’t contradict your comment.
But I notice that the error messages do not match my image format.
Be that as it may, I have given up my plan to work with RLE compressed images. And without making any changes in the config file, I only exchanged the logo.c file with the uncompressed one.
And again I got the same error messages with a blank screen.
The image was only displayed after I undid the changes in the lv_conf.h file.
LV_USE_RLE = 0
LV_BIN_DECODER_RAM_LOAD = 0
Nevertheless, thank you very much for your effort to help me
why you mean this. Graphics teory is same on all systems, lvgl no except.
Format for store image is not same as format for show image and any system not allocate memory for stored image format , for what ? Image is in flash and no next copy required.
And perfect info is your platform. For example ESP32 may use PSRAM …