標題: ESK32-360開發(fā)板TFT屏顯示功能及擴展(4) [打印本頁]

作者: jinglixixi    時間: 2020-8-10 17:14
標題: ESK32-360開發(fā)板TFT屏顯示功能及擴展(4)
4. 圖片的顯示
在顯示屏的例程中,提供圖片的顯示函數(shù),那我們能否來顯示自己的圖片內(nèi)容呢?
1)色彩模式的辨識
在我們顯示自己的圖片前,首先要弄清楚它所使用的色彩模式及圖片格式等。
通過對例程中對色彩的定義,可以分析出它所使用的是16位色,色彩模式為R5G6B5。

2)制備圖片顯示的數(shù)據(jù)
例程中所提供的圖片顯示函數(shù)為:
void LCD_PicDraw(u8 X_Location, u16Y_Location, u8 Height, u16 Width, uc8 *Pptr)
{
  u32xid = 0;
  u32ImgAdds = 0;
  u32yid = 0;
  u32i = 0, j = 0, color = 0;
  xid= X_Location;
  yid= Y_Location;
LCD_StarterSet(xid, yid);
  for(i = 0; i < Height; i++)    // <240
  {
   LCD_WriteRAMPrior();  
   for (j = 0; j < Width; j++)  //<320
    {
     ImgAdds = (i * Width * 2) + (j * 2);
     color = Pptr[ImgAdds] << 8 | (Pptr[ImgAdds + 1]);
     LCD_WriteRAM(color);
    }
     xid++;
   LCD_StarterSet(xid, yid);
  }
}
由此看出,所顯示的圖片是以字節(jié)為單位進行存儲,每個像素點采用的色彩模式為R5G6B5。
為此我們要顯示一幅圖片可以用Image2Led軟件來把圖片轉換為數(shù)組數(shù)據(jù)來存儲,其轉換前的參數(shù)設置如圖1所示,生成的文件如圖2所示。

1 參數(shù)設置   

2 生成的文件
3)圖片的顯示
顯示圖3所示效果的主程序為:
int main(void)
{
LCD_Init();
LCD_Config();
LCD_Clear(0x2c5c);
LCD_BackColorSet(0x2c5c);
LCD_TextColorSet(Yellow);
  LCD_CharDisplayA(Line1,70, 0);  
  LCD_CharDisplayA(Line1,90, 1);
  LCD_CharDisplayA(Line1,110, 2);
  LCD_CharDisplayA(Line1,130, 3);
  LCD_CharDisplayA(Line1,150, 4);
  LCD_PicDraw((100),(80), 68, 56, gImage_jsj);
while (1);
}

3 顯示效果
值得指出的是當圖片較大時,會出現(xiàn)異,F(xiàn)象,導致無法完成程序下載,見圖4和圖5所示。

4通過編譯

5下載時出現(xiàn)崩潰





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1