I don´t have idea, but you can explore it with the ILI9341_t3 library, by the way, the load of bmp is very slow.
Teensy 3.6 and FT813
I have a teensy 3.6, with a FT813 TFT 5"@GD3_SDIO, with a 8x5 WS2812 matrix and your idea is posible
#include <SPI.h>
#include <GD3_SDIO.h> //THX RndMnkIII
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
File archivo;
SdFatSdio SD;
unsigned long start;
//Neopixel
#define PIN 21
#define NUMPIXELS 40
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(5, 8, 1, 1, PIN,
NEO_MATRIX_COLUMNS + NEO_MATRIX_BOTTOM + NEO_MATRIX_LEFT,
NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int BrilloMX = 150;
void setup()
{
pixels.begin(); // This initializes the NeoPixel library
matrix.begin(); matrix.setBrightness(BrilloMX);
GD.begin();
GD.cmd_setrotate(0);
SD.begin();
JPGSlider();
}
void loop(){}
char nombre[32];
int ID = 1;
long previousMillisBMP = 0, previousMillisNEO = 0;
long intervalBMP = 100, intervalNEO = 30;
void JPGSlider()
{
GD.wr(REG_PWM_DUTY, 0);
while(1){
GD.wr(REG_PWM_DUTY, 30);
unsigned long currentMillisNEO = millis();
if(currentMillisNEO - previousMillisNEO > intervalNEO)
{previousMillisNEO = currentMillisNEO;
Cylon1(100,0,0); pixels.show();}
unsigned long currentMillisBMP = millis();
if(currentMillisBMP - previousMillisBMP > intervalBMP)
{previousMillisBMP = currentMillisBMP;
start = millis();
snprintf(nombre, 30, "V%03d.jpg", ID);
String str(nombre);
archivo = SD.open(str);
GD.cmd_loadimage(0, 0);
GD.loadSDIO(archivo);
CargaJPG(); ID++; if (ID>=161){ID=1;}
}
}
}
void CargaJPG()
{
GD.Clear();
GD.Begin(BITMAPS);
GD.Vertex2ii(0, 0);
GD.ColorRGB(0,255,0); GD.cmd_number(730,465,21,OPT_CENTER|OPT_SIGNED,millis() - start);
GD.swap();
}