You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
How to show an image (bmp, png, jpg or any) from SPIFFS.
Below code is working with another library called FabGL, but not with ESP32Lib.Have tried to adopt it to ESP32Lib but failed.
`#include "fabgl.h"
#include <TJpg_Decoder.h>
#include <FS.h>
#include "SPIFFS.h" // ESP32 only
fabgl::VGA16Controller VGAController;
fabgl::Canvas cv(&VGAController);
// This next function will be called during decoding of the jpeg file to
// render each block to the Canvas.
bool vga_output(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t* bitmap) {
// Stop further decoding as image is running off bottom of screen
if ( y >= cv.getHeight() ) return 0;
for (int16_t j = 0; j < h; j++, y++) {
for (int16_t i = 0; i < w; i++) {
writePixel(x + i, y, bitmap[j * w + i]);
}
}
// Return 1 to decode next block
return 1;
}
void setup() {
Serial.begin(115200);
Serial.println("\n\n Testing TJpg_Decoder library With FabGl");
// Initialise SPIFFS
if (!SPIFFS.begin()) {
Serial.println("SPIFFS initialisation failed!");
while (1) yield(); // Stay here twiddling thumbs waiting
}
Serial.println("\r\nInitialisation done.");
VGAController.begin(GPIO_NUM_12, GPIO_NUM_27, GPIO_NUM_14, GPIO_NUM_26, GPIO_NUM_25);
VGAController.setResolution(VGA_640x480_60Hz);
cv.setBrushColor(RGB888(0, 0, 0));
cv.clear();
// The jpeg image can be scaled by a factor of 1, 2, 4, or 8
TJpgDec.setJpgScale(1);
// The decoder must be given the exact name of the rendering function above
TJpgDec.setCallback(vga_output);
// Time recorded for test purposes
uint32_t t = millis();
// Get the width and height in pixels of the jpeg if you wish
uint16_t w = 0, h = 0;
TJpgDec.getFsJpgSize(&w, &h, "/panda.jpg"); // Note name preceded with "/"
Serial.print("Width = "); Serial.print(w); Serial.print(", height = "); Serial.println(h);
// Draw the image, top left at 0,0
TJpgDec.drawFsJpg(0, 0, "/panda.jpg");
// How much time did rendering take
t = millis() - t;
Serial.print(t); Serial.println(" ms");
}
void loop() {
}
void writePixel(int16_t x, int16_t y, uint16_t rgb565) {
uint8_t r = ((rgb565 >> 11) & 0x1F) * 255 / 31; // red 0 .. 255
uint8_t g = ((rgb565 >> 5) & 0x3F) * 255 / 63.0; // green 0 .. 255
uint8_t b = (rgb565 & 0x1F) * 255 / 31.0; // blue 0 .. 255
cv.setPixel(x, y, RGB888(r, g, b));
}`
The text was updated successfully, but these errors were encountered:
How to show an image (bmp, png, jpg or any) from SPIFFS.
Below code is working with another library called FabGL, but not with ESP32Lib.Have tried to adopt it to ESP32Lib but failed.
The text was updated successfully, but these errors were encountered: