RISOLTO Immagine da SD a display TFT 4.3

Ciao,
sto utilizzando questo Sketch per caricare sul display delle immagini che sono nella SD

// Demo_Landscape 
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
// web: http://www.RinkyDinkElectronics.com/
//
// This program is a demo of the loadBitmap()-function.
//
// This program requires UTFT_tinyFAT, UTFT v2.41 or higher, 
// as well as tinyFAT v3.0 or higher.
//
// The image files must be present in the root folder 
// of a FAT16 formatted SDcard in the module cardslot.

#include <tinyFAT.h>
#include <UTFT.h>
#include <UTFT_tinyFAT.h>

extern uint8_t SmallFont[];

UTFT         myGLCD(ITDB43, 38, 39, 40, 41);
UTFT_tinyFAT myFiles(&myGLCD);

// List of filenames for pictures to display. 

char* files480[]={"test.bmp"}; // 480x272

char* files[1];

int picsize_x, picsize_y;
boolean display_rendertime=false;  // Set this to true if you want the rendertime to be displayed after a picture is loaded
boolean display_filename=true;  // Set this to false to disable showing of filename

word res;
long sm, em;

void setup()
{
  myGLCD.InitLCD();
  myGLCD.clrScr();
  file.initFAT();
  myGLCD.setColor(255,255,255);
  myGLCD.setFont(SmallFont);
  picsize_x=myGLCD.getDisplayXSize();
  picsize_y=myGLCD.getDisplayYSize();
  switch (picsize_x)
  {
    case 480:
      for (int z=0; z<sizeof(files480)/sizeof(*files480);z++)
        files[z] = files480[z];
      break;
  }
}

void loop()
{
  
  for (int i=0; i<(sizeof(files)/sizeof(*files)); i++)
  {
    if (files[i]!="")
    {
      sm=millis();
      res=myFiles.loadBitmap(0, 0, picsize_x, picsize_y, files[i]);
      em=millis();
      if (res!=0)
      {
        if (res==0x10)
        {
          myGLCD.print("File not found...", 0, 0);
          myGLCD.print(files[i], 0, 14);
        }
        else
        {
          myGLCD.print("ERROR: ", 0, 0);
          myGLCD.printNumI(res, 56, 0);
        }
        delay(3000);
        myGLCD.clrScr();
      }
      else
      {
        if (display_rendertime==true)
        {
          myGLCD.print("Rendertime (secs):", 0, 0);
          myGLCD.printNumF(float((em-sm)/1000.0), 2, 160,0);
        }
        if (display_filename==true)
        {
          myGLCD.print(files[i], CENTER, myGLCD.getDisplayYSize()-12);
        }
        delay(3000);
      }
    }
  }
}

Il tutto dovrebbe funzionare, ma l’immagine viene caricata male, si vedono delle strisce multicolore, in fondo al display viene scritto il nome dell’immagine caricata, quindi non è un problema di display, la SD è formattata FAT16, le immagini sono .bmp, create da un programma (Paint.net).
Lo Sketch l’ho un po’ modificato, in origine caricava una serie di immagini da SD, ho fatto si di caricare una sola immagine.
Grazie per l’aiuto

Ciao,
ho un aggiornamento, se utilizzo le immagini di esempio dello sketch (estensione .RAW) funziona.
Non trovo in rete programmi per convertire un'immagine in un file con estensione .RAW, come si fa? Io ero andato diretto con il .BMP perchè di solito si usa quello...
Grazie :slight_smile:

basta andare nel sito di codesta libreria e leggere
http://www.rinkydinkelectronics.com/library.php?id=53

This library adds a simple way to load images from SD cards. The images must be in the .raw format. Images can be converted to the .raw format with the ImageConverter565 supplied with the UTFT library or the online version found on my website.

Grazie,
poi ho letto anche io... Per ora non ho trovato il programmino da scaricare, faccio la conversione online dal tipo della libreria, con calma vedo di cercare meglio.
Grazie grazie :slight_smile: