image2lcd轉(zhuǎn)換圖片值數(shù)組_第1頁
image2lcd轉(zhuǎn)換圖片值數(shù)組_第2頁
image2lcd轉(zhuǎn)換圖片值數(shù)組_第3頁
image2lcd轉(zhuǎn)換圖片值數(shù)組_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

image2lcd轉(zhuǎn)換圖片值數(shù)組STM32上的TFT彩屏要顯示圖片,常見的是把圖片轉(zhuǎn)換為數(shù)組,然后進(jìn)行處理,使用的軟件是image2lcd,圖標(biāo)和界面如下:由于彩屏是320*240的分辨率,這里我們先找一副320*240分辨率的圖片對圖片進(jìn)行取模了。先將要取模的圖片翻開,配置好寬度和高度,這里配置為240*320。將“高位在前〞取消,設(shè)置為“16位真彩色〞,保存為“C語言數(shù)組〞,參數(shù)的配置如上圖所示:這里有一點值得注意的是:轉(zhuǎn)換之后將獲得了一個長度為153608的數(shù)組gImage_12[153608],如果不是這個就要進(jìn)行修改,否那么最終是不能正常顯示的,至于153608是怎么來的,如下:因為分辨率是240*320,并且每個像素點是16位真彩色〔2字節(jié)〕,因此圖片數(shù)據(jù)的數(shù)據(jù)長度就應(yīng)該是240*320*2==152600,數(shù)據(jù)幀頭還有8字節(jié),所以總共為153608字節(jié),假設(shè)獲取的不是153608字節(jié)的數(shù)據(jù),請檢查圖片的分辨率,和取模軟件的參數(shù)配置。最后將獲得的文件,保存為TXT文本文檔。image2lcd圖片頭文件信息:圖片頭數(shù)據(jù)的第2~5個字節(jié)表示寬和高,假設(shè)圖片數(shù)組BMP_BUF[],高位在前時bmp_withd=(BMP_BUF[2]<<8)|BMP_BUF[3]bmp_lenth=(BMP_BUF[4]<<8)|BMP_BUF[5]第一個字節(jié)是掃描方式,低四位為0水平掃描,為1垂直掃描第二字節(jié)輸出灰度0x04--16灰0x18--24真彩色,0x10--16真彩色0x20--32真彩色針對STM32F103的TFT來說,分辨率都是320*240,對應(yīng)的函數(shù)處理是ili9320_DrawPicture(x0,y0,x1,y1,(u16*)(picture+BmpHeadSize));#defineBmpHeadSize(8)這里要明確x0,x1,y0,y1voidili9320_DrawPicture(u16StartX,u16StartY,u16EndX,u16EndY,u16*pic){u32i,total;ili9320_SetWindows(StartX,StartY,EndX,EndY);ili9320_SetCursor(StartX,StartY);LCD_WriteRAM_Prepare();total=EndX*EndY;for(i=0;i<total;i++){LCD_WriteRAM(*pic++);}}就用這個函數(shù)就夠了;參數(shù)設(shè)置:圖片素材—女神以上就是按照程序稍微的改動一下,只能針對320*240的圖片,如果想要在液晶屏上360度無死角隨意顯示,還需要改動一下程序,同時理解程序的意思首先:先理解液晶的坐標(biāo)軸XY,上圖上的左上角為〔0,0〕,右下角為〔319,239〕,橫向為X軸,縱向為Y軸其次1:理解函數(shù)四個參數(shù)的意思,我覺得很坑爹,voidili9320_DrawPicture(u16StartX0,u16StartY0,u16EndX1,u16EndY1,u16*pic)黑色的局部為圖像的起點,但是藍(lán)色的堅決不是圖像的終點,而是分別代表圖像的高和寬〔Y1-Y0〕(因程序而改變的),特別申明*pic要去掉圖像的頭文件信息8個字節(jié)其次2:掃描的模式為水平掃描,說明顯示的時候Y坐標(biāo)軸是不能變的,舉例假設(shè)掃描180*200,Y1-Y0+1一定是200,如果不是的話,就會是亂碼,仔細(xì)想想應(yīng)該可以知道,X1就是看你要不要截屏了!最后:ili9320_DrawPicture(50,50,60,169,(u16*)(picture+BmpHeadSize));這句話的意思就是起點在〔50,50〕開始截屏去高為60,寬為169-50+1=120voidili9320_DrawPicture(u16StartX,u16StartY,u16EndX,u16EndY,u16*pic){u32i,total;u16x,y;ili9320_SetWindows(StartX,StartY,EndX,EndY);ili9320_SetCursor(StartX,StartY);x=StartX;y=StartY;LCD_WriteRAM_Prepare();total=EndX*EndY;for(i=0;i<total;i++){ili9320_SetPoint(x,y,*pic++);y++;if(y>EndY){x++;y=StartY;}//這幾行決定了寬度不是Y1,而是Y1-Y0,//LCD_WriteRAM(*pic++);}}設(shè)置有點不一樣了,要上下顛倒了!實驗證明:可以無死角顯示圖片!增加程序執(zhí)行效率:voidili9320_DrawPicture(u16StartX,u16StartY,u16EndX,u16EndY,u16*pic){u32i,total;u16x,y;//ili9320_SetWindows(StartX,StartY,EndX,EndY);//ili9320_SetCursor(StartX,StartY);x=StartX;y=StartY;//LCD_WriteRAM_Prepare();total=EndX*(EndY-StartY+1);for(i=0;i<total;i++){ili932

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論