#include <Adafruit_ILI9341.h>
#include "base64.h"
#define TFT_CS 5
#define TFT_DC 2
#define TFT_RST 4
// Replace this with your Base64-encoded image string
const char* base64Image = "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TyMbHWBbmrVDDorG2oxiLnVcDoN57N/YHAhoSKXpNBAr/WFtHA4kznhywsuEL+Qciz05GJlhvhfdh7Xp6dxgv4wKgGUgGchBMDEEJvOGVDL6dqZvvJIEsmU1AOcHqmrA6gD/AKkyUgsksY5xDqmhSDFTDISUUWJ0u8wOLi7uJnHSQrHZDT0+kgp/RH5sfpWxJLXyODGCmWwj3ebhjAP+qUt45piESBQrdIt/wCIMNvHqVoqql7AaNrjgF1JDc+BPUaNxFtoP1VXaKKn1B9BxeEhCwdC15/gGU2DqAew8HbrB91BY6epqe4+nEu4NahJbYY7djEyMxitPRkpzS7JAbPoDmiU9QuSJxtFiVgmWy0GDtWGbi8NC72h1ZNRpw0K/TvRjjHcxiU+uGEheDVsQxtjPiah/FBLPbtRtUC/TnoXQc1kzJpCZoO6yoR0sDSsjW4tY7oTtaZK7sqJ+o2yEppowPMiiBw2eKh0o5JKkkDKv6hljEUQz7MFYmUMMGQHm8QbZUX8zRhkwAqUqXJN7mVYcWOAlJJFKbQ+bZy+kygHLTM/BIj6RXpTcUF43wfCg4U7gfgi4pFIw8qO4WfwC6bggFcUxZIopcyAYvGx+WN6UdXgLwboWkMUYgElcGNCWHKiKHRINILWZ6lUwqDhreikpR0UL2IvNi5uvuvRXAfbMsXRYvB8KcccIAltbiToRnicnY3OKNOrX4Ykv5QwisFiv9wzoFCvR582jgbfBnKGRXBimcF9cd5t0ClI+hycHGweCXLKS0GjAht9JpiiRgRMl1ekLQnwvQrUflDHajPRzodYNwPt09tVHZ+SHktDXRJrdQjO4JbwoV2kUKcGDJUYFJx6M0kENx1tj9GHJ7Qf/AAE/4h+ULgP9C7QkFRY4SAv0n/ANJGHNs3DjNcfxg2KhD0VypekaCwwNmhRtEXGDIuZjBjor8R+Qr5j9eFJkuFxCowZ8xi+nqLZmfmkU+oZfii1A/A/A/A/A/A/AXAPyiF0SYCTwKU/UrpfeUbyvH//aAAwDAQACAAMAAAAQ888888888888888888888888888888888888888888888888EEsEUscwIA8088888888888888888888sk8o4wQU4AAoYkkQ0888888888888888884ogMMM888888MMsI80888888888888888wkw0c888888888888MM4Y88888888888880UkMc88888888888888Mckk888888888888Mgs888888888888888888sgs088888888808A88888888888888888888skM88888888o4Q8888888888888888888888ss888888888I0888wk088888sIM888888888YY088888848888oc8088888sck888888888U40888888eUozzxMg0888884Vxw0h908888Ugc8888MU8l2//wD74QNPPPOIBfv/AP65TzzzwwTzzzzxCTSzAAAW3zgjzDDzRXgA52HzzzzzwzTzzzzwTzzzzzzyxjzwzDABTzzzzzzzzzzzRzzzzyhzzzzzzzzzzwDDzzzzzzzzzzzzzzwzTzzzziDzzzzzzjjSBjzzxTBTzzzzzzzzzyDzzzzzjRTzzzzygxxTizwzDgiTzzzzzzzySjTzzzzhQTzzzzzizTgzwTxRRQjzzzzzzgjjzzzzzzyjhzCDzzzzzzyxTzzxzzzzzzjCwjjzzzzzzzzzjyjzTTzzzzQjzzTzzzzzTTyjxzzzzzzzzzwzxzyxTzzzDTTjBDzTzyBjDSwzzzzzzzzzzzzwwzyzBDTzgQRjSwzyzhwRzzzzzzzzzzzzzzzzzzggSBDADTyiijxxzzzzzzzzzzzzzzzzzzzzzxxTwiDCBxShDxBDzzzzzzzzzzzzzzzzzzzyzXmkkRzCDTzzwAxzzzzzzzzzzzzzzzzzzzzjGUyu3wzzzzzzgRzzzzzzzzzzzzzzzzzzzwWrmBYXwDTzzzwwTzzzzzzzzzzzzzzzzzzzyW0lfh/gzzzTzzTzzzzzzzzzzzzzzzzzzzySm/Ia6EjTyigiSygzDzzzzzzzzzzzzzzzzzAmS+6WmDzygAwQjByhTzzzzzzzzzzzzzzzxwynRCjDzzjiQSizSAzzzzzzzzzzzzzzzzzzyiDDTzygABAQRjShTzzzzzzzzzzzzzzzzzzzzzzzwAAAADyDzzzzzzzzzzzzz//EABsRAAEEAwAAAAAAAAAAAAAAABEBMDFAAICQ/9oACAEDAQE/ENh0oQIaSTeZ2iEbJxOZcgCEof/EABQRAQAAAAAAAAAAAAAAAAAAAKD/2gAIAQIBAT8QFMI2nz//xAAqEAABAQcEAgEFAQEAAAAAAAABEQAQICEx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";
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
void setup() {
Serial.begin(115200);
tft.begin();
showBase64Image(base64Image);
}
void loop() {
}
void showBase64Image(const char* base64String) {
// Remove the header if it exists (e.g., 'data:image/png;base64,')
const char* delimiter = strchr(base64String, ',');
if (delimiter != NULL) {
base64String = delimiter + 1;
}
// Calculate the length of the decoded data
size_t base64Len = strlen(base64String);
size_t decodedLen = base64_dec_len(base64String, base64Len);
// Allocate memory for the decoded data
uint8_t* decodedData = (uint8_t*)malloc(decodedLen);
if (decodedData == NULL) {
Serial.println(F("Memory allocation failed"));
return;
}
// Decode the Base64 string
base64_decode(decodedData, base64String, base64Len);
// Display the image on the ILI9341 screen
tft.fillScreen(ILI9341_BLACK);
tft.pushImage(0, 0, TFT_RST, decodedData);
delay(2000);
// Free the allocated memory
free(decodedData);
}