diff --git a/GfxUi.cpp b/GfxUi.cpp index 6c0bc5e..c7f04d4 100644 --- a/GfxUi.cpp +++ b/GfxUi.cpp @@ -216,3 +216,13 @@ uint32_t GfxUi::read32(File &f) { ((uint8_t *)&result)[3] = f.read(); // MSB return result; } + +void GfxUi::copyProgmemToFile(const uint8_t *data, unsigned int image_len, String filename) { + File f = SPIFFS.open(filename, "w+"); + for (int i = 0; i < image_len; i++) { + uint8_t c = pgm_read_byte(data++); + f.write(c); + } + f.close(); +} + diff --git a/GfxUi.h b/GfxUi.h index 4be22f5..f92bac2 100644 --- a/GfxUi.h +++ b/GfxUi.h @@ -41,6 +41,7 @@ class GfxUi { void setTextColor(uint16_t c, uint16_t bg); void drawBmp(String filename, uint8_t x, uint16_t y); void drawProgressBar(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint8_t percentage, uint16_t frameColor, uint16_t barColor); + void copyProgmemToFile(const uint8_t *data, unsigned int image_len, String filename); private: Adafruit_ILI9341 * _tft;