Code:
int x=0; int y=0; int width=90; int height=100;
String text="HELLO"
int length = text.length();
for (int l = 0; l < length; l++)
{
tft.setWindow(x+(l*width), y, x+(l*width) + width - 1, y + height - 1);
uint32_t charpos = (text.charAt(l) - (int)61) * width * height * 3);
byte *startbyte= binarray+charpos;
vspi->writeBytes((uint8_t*)startbyte, width * height * 3);
}
Complete Code:
#include "FS.h"
//#include "SPIFFS.h"
#include <TFT_eSPI.h>
#include <SPI.h>
TFT_eSPI tft = TFT_eSPI();
#define SPI2_NSS_PIN 28
static const int spiClk = 40000000; // 1 MHz
//SPIClass * vspi = NULL;
int CS_PIN =5;
unsigned long bgstart = 675000UL;
void setup() {
Serial.begin(115200);
if (!SPIFFS.begin(true)) {
Serial.println("An Error has occurred while mounting SPIFFS");
return;
}
btStop();
//vspi = new SPIClass(VSPI);
SPI.begin();
Serial.begin(115200);
tft.begin();
tft.setRotation(1); // landscape
tft.fillScreen(TFT_BLACK);
//Background
bigImage(702000, 702000, 0, 0, 480, 320, 0xFFFFFF);
//void DrawString( uint32_t check, int x, int y, int width, int height, String text, bool compare, bool transp,int asciioffset)
DrawString( 0 , 0, 0, 90, 100, "HELLO", false, false, 65);
DrawString( 0 , 0, 100, 90, 100, "ITS", false, false, 65);
DrawString( 0 , 0, 200, 90, 100, "FUN", false, false, 65);
}
void loop() {
}
void DrawString( uint32_t check, int x, int y, int width, int height, String text, bool compare, bool transp, uint32_t asciioffset) {
int lengthl = text.length();
for (int l = 0; l < lengthl; l++)
{
uint32_t charpos = ((uint32_t)((uint32_t)text.charAt(l) - (uint32_t)asciioffset) * (uint32_t)width * height * 3);
//void transparentImage(uint32_t startpic, uint32_t startbackground, int x, int y, int width, int height, uint32_t tcolor)
transparentImage( check + charpos, 702000, x + ( l * width), y, width, height, 0xFFFFFF);
Serial.println(charpos);
}
}
void transparentImage(uint32_t startpic, uint32_t startbackground, int x, int y, int width, int height, uint32_t tcolor) {
tft.setWindow(x, y, x + width - 1, y + height - 1);
//read background clipping
File f = SPIFFS.open( "/test.bin", "r");
char *buf = (char*)malloc(width * height * 3);
char *temp = (char*)malloc(width * 3);
unsigned long offset = 0;
for (int i = 0; i < height; i++) {
// unsigned long offset = startbackground + (x * width*3 - (width*3 - (width-y*3)) + (i * width * 3));
unsigned long offsetbg = startbackground + ((y + i) * 480 * 3 ) + (x * 3) ;
f.seek(offsetbg, SeekSet);
f.readBytes((char*)temp, width * 3) ;
memcpy( buf + (i * width * 3), temp, (width * 3) );
}
for (int i = 0; i < height; i++) {
unsigned long offset = startpic + i * width * 3;
f.seek(offset, SeekSet);
f.readBytes((char*)temp, width * 3) ;
for (int h = 0; h < width * 3; h = h + 3)
{
uint32_t bp = temp[ h];
bp = (bp << 8) | temp[h + 1];
bp = (bp << 16) | temp[ h + 2];
if (bp >= 0x111111 || y + i > 300) {
buf[width * i * 3 + h] = temp[h];
buf[width * i * 3 + h + 1] = temp[h + 1];
buf[width * i * 3 + h + 2] = temp[h + 2];
}
}
}
SPI.beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
digitalWrite(CS_PIN, LOW); //pull SS slow to prep other end for transfer
SPI.writeBytes((uint8_t*)buf, width * height * 3);
digitalWrite(CS_PIN, HIGH); //pull ss high to signify end of data transfer
SPI.endTransaction();
f.close();
Serial.println("test");
free(buf);
free(temp);
}
void bigImage(uint32_t startpic, uint32_t startbackground, int x, int y, int width, int height, uint32_t tcolor) {
tft.setWindow(x, y, x + width - 1, y + height - 1);
//read background clipping
File f = SPIFFS.open( "/test.bin", "r");
char *buf = (char*)malloc(width * height * 3);
char *temp = (char*)malloc(width * 3);
unsigned long offset = 0;
SPI.beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
digitalWrite(CS_PIN, LOW); //pull SS slow to prep other end for transfer
for (int i = 0; i < height; i++) {
unsigned long...
Read more »
Hi thanks for use full information.Fonts best script place is chat gpt generate script all requirments and all conditions fulfil and use this tool of write best captions, descriptions, and text use Papyrus font generator easy to use and mobile friendly.
https://fontgeneratorfancy.com/papyrus-font/