RGB555轉RGB565


     做tft彩屏顯示圖片的時候,顯示16位位圖,顯示屏的顯示模式為RGB565。使用img2lcd轉換后的16位bmp,顯示出來后,顏色有偏差;轉換為565格式的bin文件,顯示完全正常,可以確定轉換為bmp后,格式為RGB555。網上查找相關資料顯示,Windows 圖片查看器顯示正常的圖片,均為RGB555格式,系統自帶畫圖畫圖工具保存時,不支持將文件保存為16位位圖格式。

  以下為555轉565的程序片段,轉換后的結果和使用img2lcd軟件保存為565格式的結果完全相同。轉換的結果其實就是將原來5位G擴展為6位。即左移1為,然后右邊補0。這樣轉換后,和img2lcd軟件轉換的結果對比,發現有一部分數據不一致。原來移位后,img2lcd軟件在右邊不是全都補0,而是看原來G中的最后1位若為1,則補1,若為0,則補0,程序中最后加入一句判斷,這樣轉換后,就完全一致了。

char c1=0x6b,c2=0x7b;              // 0rrr rrgg(c1) gggb bbbb(c2)         RGB555   
char c3,c4;                       
c3= c1<<1;
c3|= c2>>7;

c4 = c2<<1;
c4&= 0xc0;
c4|= c2&0x1f;
if(c2&0x20) c4+=0x20;

uint16_t color = (c3<<8) | c4;    // rrrr rggg(c3) gggb bbbb(c4)          RGB565


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM