How to use the LVGL PNG decoder / file system

How to use the LVGL PNG decoder / file system

So basically i have read the documentation about those and did-int understand really well how it works besides some better example code on the documentation would be great
By the way Documentation and Examples: i find it unclear, LVGL should have more examples included in the documentation about the PNG decoder.

i also have some other questions about it

  1. Reducing Image File Size: Previously, i used the Online image converter - BMP, JPG or PNG to C array or binary | LVGL to include images in my ESP32 projects. However, i noticed that the converted files resulted in larger sizes. i wonder if using the PNG Decoder could potentially lead to smaller file sizes.

  2. File Structure: The example codes refers to file paths like “A:folder/Img.png,” and i am unsure about what “A” signifies in this context.

  3. Performance Comparison: Assess the processing performance of the PNG decoder in comparison to using C arrays for your images

  1. Is that even a question?
  2. Can you say more? What was the size of the image before conversion to C array? What’s the size after? Or do you mean that the C file is bigger than the image before conversion?
  3. The path is used when you use a filesystem, then you can just use PNG pictures from your files.
  4. It seems to be faster to use the C arrays for me, but I havent done any actual tests, so don’t quote me on that.

1 fixed my mistake

2 Exacly the size of the image was like 800 bytes and the C arryay was 22 mb an i just have 16 mb of flash

3 i have never used a File system in embbeded before so i dont understanded exacly how it works what is the “root directory” that a letter means?

  1. iven if its faster how much faster is the C array becouse the file sizes diferences are huge

For the file system I have linked the docs for you. As for the size of the C file - after you compile, the program will have an even different size, but I assume having it already compiled in your program saves you the IO operations time at least.
But the size of the file after conversion it weird, for me a 121kB gif changed to a 3MB C file, so this was understandable. It seems to be an issue with the conversion

was a blank white image 800 x 480 (the whole sreen) i know its a big image but still not that big

what this

S letter means like what folder it is , if i dont know what folder that letter is then i cant know where the image should go

What color format are you using? I just converted a whole one color 800x480 screen and it converted to a 15,7 kB file.
As for the file system - this image shows how to register a driver for a file system, but first you have to have a file system - you can read the section Ready to use drivers although I haven’t tried that.

PNG for the the file and my screen is running 16 bit and my conversion was like this


Try to use a different color format then - with CF_TRUE_COLOR my C files are also enormous, I previosly used CF_RAW if I’m not mistaken

that true using CF_RAW makes the image a lot smaller but i will test the quality diferences
using that color format my display shows nothing but artifacts