Inkplate 6 über WIFI Bild anzeigt

Hallo ,
ich habe erreicht das das Bild über WIfi in Speicher landet, aber was soll ich als nächste schreiben , damit er mir das Bild anzeigt ?

void setup(){
  Serial.begin(115200);
  Serial.println();
  Serial.println("GxEPD_WiFi_Example");
  display.begin();                  
  display.clearDisplay();       
  display.display();             
  Serial.setTimeout(2000);
  while (!Serial) { }
  Serial.println("Device Started");
  mac = getMacAddress();
  Serial.print("Mac: ");
  Serial.println(mac);
  Wlan_connect();
  drawBitmaps_other();
}
void loop(void)
{
  drawBitmaps_other();
  delay (10*1000);
}
void Wlan_connect(){
  #ifdef RE_INIT_NEEDED
  WiFi.persistent(true);
  WiFi.mode(WIFI_STA); // switch off AP
  WiFi.setAutoConnect(true);
  WiFi.setAutoReconnect(true);
  WiFi.disconnect();
#endif
  if (!WiFi.getAutoConnect() || ( WiFi.getMode() != WIFI_STA) || ((WiFi.SSID() != ssid) && String(ssid) != "........"))
  {
    Serial.println();
    Serial.print("WiFi.getAutoConnect()=");
    Serial.println(WiFi.getAutoConnect());
    Serial.print("WiFi.SSID()=");
    Serial.println(WiFi.SSID());
    WiFi.mode(WIFI_STA); // switch off AP
    Serial.print("Connecting to ");
    Serial.println(ssid);
    WiFi.begin(ssid, password);
  }
  int ConnectTimeout = 30; // 15 seconds
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
    Serial.print(WiFi.status());
    if (--ConnectTimeout <= 0)
    {
      Serial.println();
      Serial.println("WiFi connect timeout");
      return;
    }
  }
  Serial.println();
  Serial.println("WiFi connected");
  Serial.println(WiFi.localIP());
  }
void drawBitmaps_other()
{
  int16_t w2 = 800 / 2 ;
  int16_t h2 = 600 / 2;
  drawBitmapFrom_HTTP_ToBuffer(host_rawcontent, path_prenticedavid, "image1.bmp", 0 , 0,true);
}
{
  WiFiClient client;
  bool connection_ok = false;
  bool valid = false;
  bool flip = true; 
  uint32_t startTime = millis();
  Serial.print("connecting to "); Serial.println(host);
  if (!client.connect(host, httpPort))
  {
    Serial.println("connection failed");
    return ;
  }
  Serial.print("requesting URL: ");
  Serial.println(String("http://") + host + path + filename);
  client.print(String("GET ") + path + filename + " HTTP/1.0\r\n" +
               "Host: " + host + "\r\n" +
               "User-Agent: GxEPD2_Spiffs_Loader\r\n" +
               "Connection: close\r\n\r\n");
  Serial.println("request sent");
  while (client.connected())
  {
    String line = client.readStringUntil('\n');
    if (!connection_ok)
    {
      connection_ok = line.startsWith("HTTP/1.1 200 OK");
      if (line.startsWith("HTTP/1.1 304 Not Modified")){
        Serial.println(line);
        return  ;
        }
      if (connection_ok) Serial.println(line);
        }
    if (!connection_ok) Serial.println(line);
    Serial.println(line);
    if (line == "\r")
    {
      Serial.println("headers received");
      break;
    }
  }
  if (!connection_ok) return ;
  uint16_t magic = read16(client);
  Serial.print("magic:"); Serial.println(magic);
  if ( magic == 0x4D42) // BMP signature
      {
        height = -height;
        flip = false;
      }
    {
      uint32_t rowPosition = flip ? imageOffset + (height - h) * rowSize : imageOffset;
      bytes_read += skip(client, rowPosition - bytes_read);
      for (uint16_t row = 0; row < h; row++, rowPosition += rowSize) // for each line
      {
        if (!connection_ok || !client.connected()) break;
        delay(1); 
        uint32_t in_remain = rowSize;
        uint32_t in_idx = 0;
        uint32_t in_bytes = 0;
        uint8_t in_byte = 0; 
        uint8_t in_bits = 0; 
        uint16_t color = 0;
        for (uint16_t col = 0; col < w; col++) // for each pixel
        {
          yield();
          if (!connection_ok || !client.connected()) break;
          // Time to read more pixel data?
          if (in_idx >= in_bytes) // ok, exact match for 24bit also (size IS multiple of 3)
          {
            uint32_t get = in_remain > sizeof(input_buffer) ? sizeof(input_buffer) : in_remain;
            tryToWaitForAvailable(client, get);
            uint32_t got = client.read(input_buffer, get);
            while ((got < get) && connection_ok)
            {
              tryToWaitForAvailable(client, get - got);
              uint32_t gotmore = client.read(input_buffer + got, get - got);
              got += gotmore;
              connection_ok = gotmore > 0;
            }
            in_bytes = got;
            in_remain -= got;
            bytes_read += got;
          }
          if (!connection_ok)
          {
            Serial.print("Error: got no more after "); Serial.print(bytes_read); Serial.println(" bytes read!");
            break;
          }
          switch (depth)
          {
            case 24:{
              blue = input_buffer[in_idx++];
              green = input_buffer[in_idx++];
              red = input_buffer[in_idx++];
              whitish = with_color ? ((red > 0x80) && (green > 0x80) && (blue > 0x80)) : ((red + green + blue) > 3 * 0x80); // whitish
              colored = (red > 0xF0) || ((green > 0xF0) && (blue > 0xF0)); // reddish or yellowish?
            }
            break;
            case 16:{
                uint8_t lsb = input_buffer[in_idx++];
                uint8_t msb = input_buffer[in_idx++];
                if (format == 0) // 555
                {
                  blue  = (lsb & 0x1F) << 3;
                  green = ((msb & 0x03) << 6) | ((lsb & 0xE0) >> 2);
                  red   = (msb & 0x7C) << 1;
                }
                else // 565
                {
                  blue  = (lsb & 0x1F) << 3;
                  green = ((msb & 0x07) << 5) | ((lsb & 0xE0) >> 3);
                  red   = (msb & 0xF8);
                }
                whitish = with_color ? ((red > 0x80) && (green > 0x80) && (blue > 0x80)) : ((red + green + blue) > 3 * 0x80); // whitish
                colored = (red > 0xF0) || ((green > 0xF0) && (blue > 0xF0)); // reddish or yellowish?
              }
              break;
          }
           uint16_t yrow = y + (flip ? h - row - 1 : row);
         }
    Serial.print("bytes read "); Serial.println(bytes_read);
  }
  Serial.print("loaded in "); Serial.print(millis() - startTime); Serial.println(" ms");
  if (!valid)
  {
    Serial.println("bitmap format not handled.");
  }
  
  return ;
}


uint16_t read16(WiFiClient& client)
{
  uint16_t result;
  ((uint8_t *)&result)[0] = client.read(); // LSB
  ((uint8_t *)&result)[1] = client.read(); // MSB
  return result;
}

uint32_t read32(WiFiClient& client)
{
  uint32_t result;
  ((uint8_t *)&result)[0] = client.read(); // LSB
  ((uint8_t *)&result)[1] = client.read();
  ((uint8_t *)&result)[2] = client.read();
  ((uint8_t *)&result)[3] = client.read(); // MSB
  return result;
}
uint32_t skip(WiFiClient& client, int32_t bytes)
{
  int32_t remain = bytes;
  int16_t retries = 3;
  uint32_t chunk = 1024;
  if (chunk > sizeof(input_buffer)) chunk = sizeof(input_buffer);
  while (client.connected() && (remain > chunk))
  {
     tryToWaitForAvailable(client, chunk);
    uint32_t got = client.read(input_buffer, chunk);
    remain -= got;
    if ((0 == got) && (0 == --retries))
    {
      Serial.print("Error on skip, got 0, skipped "); Serial.print(bytes - remain); Serial.print(" of "); Serial.println(bytes);
      break; // don't hang forever (retries don't help)
    }
  }
  if (client.connected() && (remain > 0) && (remain <= chunk))
  {
    remain -= client.read(input_buffer, remain);
  }
  return bytes - remain; // bytes read and skipped
}
void tryToWaitForAvailable(WiFiClient& client, int32_t amount)
{
  int32_t start = millis();
  for (int16_t t = 0, dly = 50; t < 20; t++, dly += 50)
  {
    if (client.available()) break; // read would not recover after having returned 0
    delay(dly);
  }
  for (int16_t t = 0, dly = 50; t < 3; t++, dly += 25)
  {
    if (amount <= client.available()) break;
    delay(dly);
   }
  int32_t elapsed = millis() - start;
  if (elapsed > 250)
  {
    Serial.print("waited for available "); Serial.print(millis() - start); Serial.println(" ms"); // usually 0 or 225ms
  }
}
String getMacAddress() {
  uint8_t baseMac[6];
  esp_read_mac(baseMac, ESP_MAC_WIFI_STA);
  char baseMacChr[13] = {0};
  sprintf(baseMacChr, "%02X%02X%02X%02X%02X%02X", baseMac[0], baseMac[1], baseMac[2], baseMac[3], baseMac[4], baseMac[5]);
  return String(baseMacChr);
  }

Hallo, ich möchte Dich darauf aufmerksam machen, daß Du hier in einem von Arduino finanzierten Forum schreibst, aber Inkplate 6 hat mit Arduino nichts zu tun, auch wenn man Inkplate 6 mit der Arduino-IDE programmieren kann. Unser Moderator ist recht tolerant, weshalb er auch Fragen zum ESP32 zuläßt. Die von Dir genutzte Hardware ist aber schon sehr speziell und auch teuer, weshalb ich die Wahrscheinlichkeit, daß Du hier auf Unterstützung triffst, eher als gering einschätze. Auch die verwendeten Bibliotheken sind speziell erweitert und überschneiden sich mit ihren Namen mit Standardbibliotheken. Mein Versuch, mit bei mir vorhandener Hardware und den speziellen Bibliotheken Deine Hardware nachzubilden, ist daher grandios gescheitert.

Deinen Versuch, neue Aufmerksamkeit durch Öffnen eines neuen Themas zu erlangen, halte ich daher für wenig aussichtsreich.

Sollte ich mir irren, würde ich mich für Dich freuen.

Auch hatte ich dich schon einmal drum gebeten, statt der Quote-Tags die richtigen Code-Tags zu verwenden.
Warum ignorierst du das ?

HotSystems:
Auch hatte ich dich schon einmal drum gebeten, statt der Quote-Tags die richtigen Code-Tags zu verwenden.
Warum ignorierst du das ?

Hab Dich doch erhört :blush: :blush: :blush: :blush:
Grüße Uwe

uwefed:
Hab Dich doch erhört :blush: :blush: :blush: :blush:
Grüße Uwe

Danke Uwe, hoffe der TO lernt das auch noch.