|
TFT是嵌入式可視化輸出的重要原件UTFT庫封裝了 畫圓,畫方,畫線等函數(shù)
大家是否發(fā)現(xiàn)用實(shí)例里面的方法顯示圖片會(huì)使內(nèi)存緊張,沒有靈活性
在研究了BMP結(jié)構(gòu)體之后我做出了顯示24、32位深bmp的方法
不懂結(jié)構(gòu)體的可以百度自行搜查,直接上干貨!
002.png (285.93 KB, 下載次數(shù): 60)
下載附件
2020-8-5 12:11 上傳
001.png (288.23 KB, 下載次數(shù): 63)
下載附件
2020-8-5 12:11 上傳
000.png (304.33 KB, 下載次數(shù): 69)
下載附件
2020-8-5 12:11 上傳
003.png (220.77 KB, 下載次數(shù): 64)
下載附件
2020-8-5 12:22 上傳
看過我上兩篇帖子,有程序基礎(chǔ)的朋友可以直接復(fù)制以下內(nèi)容初始化一下tft sd。
- void BMP_READ(const char *BMP_NAME,int BMP_SET_X,int BMP_SET_Y){
- //圖片名稱(深層文件夾用/分級(jí),具體見SD庫),圖片位置x,圖片位置y
- File myFile;
- int x=-1,x_1,y=0;
- int bmp[54];
- int size_x;
- int size_y;
- int bmp_bit;
- byte bmp_bit_r;
- byte bmp_bit_g;
- byte bmp_bit_b;
- byte bmp_bit_empty;
- myFile = SD.open(BMP_NAME);//100*75
- if(myFile){
- for (int i=0;i<54;i++){
- bmp[i]=myFile.read();
- }
- size_x=bmp[18];
- size_y=bmp[22];
- bmp_bit=bmp[28];
- y=size_y;
- if (bmp_bit==24||32){
- x_1=x+1;
- //Serial.println (myFile.available());//文件總字節(jié)數(shù)
- //Serial.println(size_x);//圖片大小 長
- //Serial.println(size_y);//圖片大小 寬
- //Serial.println(bmp_bit);//圖片格式 位此處只識(shí)別為24 32位
- for (int a=0 ;a < size_x*size_y;a++){
- x=x+1;
- if(x==size_x){
- x=x_1;
- y=y-1;
- }
- bmp_bit_r = myFile.read();
- bmp_bit_g = myFile.read();
- bmp_bit_b = myFile.read();
- if(bmp_bit==32){
- bmp_bit_empty=myFile.read();
- }
- myGLCD.setColor( bmp_bit_b, bmp_bit_g ,bmp_bit_r); //BGR
- myGLCD.drawPixel(x+BMP_SET_X,y+BMP_SET_Y); //自左向右,自下到上,畫像素
- }
- myFile.close();
- return 1;
- }else{
- myGLCD.print("err",BMP_SET_X,BMP_SET_Y);
- Serial.print("err");
- return 0;
- }
- }else{
- Serial.print("err");
- return 0;
- }
- }
復(fù)制代碼 以下包括完整工程文件,所用到的庫,實(shí)例圖片
SD_BMP.zip
(5.31 MB, 下載次數(shù): 15)
2020-8-5 12:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|