RGB565和RGB888的轉換

2021-06-27 11:46:18 字數 827 閱讀 6814

(1)rgb565或rgb16格式說明

rgb565彩色模式也稱rgb16彩色模式,指的是用16位表示乙個畫素,即 乙個畫素佔兩個位元組,

其中:第乙個位元組的前5位用來表示r(red),第乙個位元組的後三位+第二個位元組的前三位用來表示g(green),第二個位元組的後5位用來表示b(blue)。如:15 14 13 12 11,10 9 8  7 6 5, 4 3 2 1 0

(2)rgb888或rgb24格式說明

rgb888彩色模式也稱rgb24彩色模式,指的是用24位表示乙個畫素,即 乙個畫素佔三個位元組,

一般bitmap是乙個rgb888,每個畫素由3個位元組組成,r->8bit,g->8bit,b->8bit;而rgb565

的每個pixels是由2位元組組成,r->5bit,g->6bit,b->5bit。轉換的思路是取出原圖的點,對每個取樣進行運算。

(3)互轉程式

#define rgb565_mask_red 0xf800

#define rgb565_mask_green 0x07e0

#define rgb565_mask_blue 0x001f

void rgb565_2_rgb24(byte *rgb24, word rgb565) //把乙個字的565資料轉成3個分離的r ,g,b

ushort rgb24_2_rgb565(int r, int g, int b) //應該會損失資料內容

(3)顯式彩條測試畫面

如果在乙個240x400解析度的lcd螢幕上,設定三條豎彩帶,分別是紅綠藍,以測試畫面效果。程式如下:

void mainaddresssetting()

}

關於LCD以及BMP和RGB565

這次學習s3c2440裸機驅動lcd時,由於以前工作時接觸過這方面內容,對於引數配置現在還是可以確定的,就簡單熟悉了一下。這次做這個實驗了,就把它深入一下,就深入了解了bmp,以及為什麼要首選bmp去顯示。bmp分為1位,2位,4位,8位,16位,24位32痊。這次實驗中用的是16位。bpp 1bp...

BMP資料轉換為RGB565

2010 03 09 tft屏的顯示快取能直接顯示rgb565的資料,所以bmp要轉換成rgb565.24位bmp結構包括檔案頭,資訊頭,位圖資料。首先讀取檔案頭,資訊頭,然後讀取位圖資料。假設讀取的是320 240大小的24位位圖資料,轉換成的rgb565的資料儲存在陣列 u16 buffer b...

BMP資料轉換為RGB565

2010 03 09 tft屏的顯示快取能直接顯示rgb565的資料,所以bmp要轉換成rgb565.24位bmp結構包括檔案頭,資訊頭,位圖資料。首先讀取檔案頭,資訊頭,然後讀取位圖資料。假設讀取的是320 240大小的24位位圖資料,轉換成的rgb565的資料儲存在陣列 u16 buffer b...