I'm writing a firmware for ESP32-S3 and a NHD-7.0-800480FT-CSXV-CTP display using this library. As described in another question question to show a JPG image I convert it in C code with xxd -i <image>.jpg | tee output.c | wc -w
in order to end up with something like this:
#if !defined(PROGMEM)
#define PROGMEM
#endif
unsigned char IMG_LOGO[1074] = {
0x94, 0x4d, 0x03, 0x52, 0x85, 0x61, 0x14, 0x3d, 0x1f, 0x9e, 0x79, 0xff,
0x97, 0xed, 0x1a, 0x64, 0xdb, 0xf6, 0x20, 0xdb, 0x36, 0xc7, 0x2d, 0xa1,
0x15, 0xc5, 0x0d, 0x34, 0xca, 0x5a, 0x46, 0xfc, 0x91, 0x6b, 0xd8, 0xb9,
0x77, 0x74, 0xa8, 0x9e, 0xa9, 0x77, 0xf0, 0x36, 0xd4, 0xd4, 0xd7, 0x80,
// ...
};
Then I transfer the image to the controller and display it:
#define MEM_IMG 0x000f8000
EVE_init_spi();
EVE_init();
EVE_cmd_loadimage(MEM_IMG, 0, IMG, sizeof(IMG));
EVE_color_rgb(COLOR_WHITE);
EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS);
EVE_cmd_setbitmap(MEM_IMG, EVE_RGB565, 57, 60);
EVE_cmd_dl(VERTEX2F(100 * 16, 100 * 16));
EVE_cmd_dl(DL_END);
Of course adjusting the size and the memory address for each one. The problem is that some JPG work and other won't show at all or are displayed just as "colored noise".
At section 5.19 of the manual above I read:
The image data should be in the following formats: Regular baseline JPEG (JFIF); PNG, except Adam-7 interlaced images. Only bit-depth 8 is supported, bit-depths 1, 2, 4, and 16 are not.
and
For JPEG images, the bitmap is loaded as either a RGB565 or L8 format bitmap, depending on the original image. If OPT_MONO is given, L8 is used.
Let's say I create a new image in GIMP. When I export it in JPEG I have the following options available:
but I don't see any reference to "Regular baseline JPEG". What should I set in GIMP in order to provide a compatibile JPEG for my display?
For example a JPEG image I've created that renders just as "noise" has these properties: