如何將24位RGB顏色轉換16位RGB顏色

2021-09-28 14:58:14 字數 716 閱讀 3223

有許多朋友第一次使用16位彩色顯示屏會遇到如何將24位rgb顏色轉換為對應的16位rgb顏色的問題,

我們知道24位rgb是分別由8位紅色,8位綠色以及8位藍色組成:

rrrrrrrr gggggggg bbbbbbbb

例如:24位rgb紅色表示方法為

11111111 00000000 00000000        (十六進製制表示為:0xff0000)

而對應的16位rgb顏色則是由5位紅色,6位綠色以及5位紅色組成:

rrrr rggg gggb bbbb             

例如:16位rgb紅色表示方法為

1111 1000 0000 0000                (十六進製制表示為:0xf800)

轉換原理:

剛才說了紅色的24位rgb為:11111111 00000000 00000000

轉換為16位的rgb則需要將8位r值右移3位,變為了5位:11111

8位g值右移2位,變成了6位:000000

8位b值右移3位,變成了5位:00000

通過此種轉換,我們最後就得到了對應的16位rgb色彩:rrrr rggg gggb bbbb,轉換為對應的16進製制就是:0xf800,

然後我們操作16位彩色顯示器的時候就可以將對應的16進製制數值賦給顯示器上的某個畫素點了。其他顏色的轉換原理亦是這樣。

【注】本文出自 「世界都一樣」 部落格,請務必保留此出處

QT顏色選擇框以及如何將RGB轉為16進製制數

qt 顏色選擇框的使用 qcolordialog類 宣告變數 qcolordialog m colordialog 獲取被選中的顏色值 注 rgb型別的 qcolor color m colordialog.getrgba 得到 color的值之後,如何將此rgb值轉為16進製制數?可以定義乙個方法...

16進製制顏色轉換RGB原理

colorname 直接用顏色的名稱來指定顏色,比如 red blue green yellow rgb 三通道顏色 hex 十六進製制顏色 使用演示 方式一 uicolor colorwithred 0xf86340 0xff00 8 255.0 green 0xf86340 0xff00 8 2...

32位顏色 轉換成16位顏色

向別人學習而來 分享。1.顏色值有32位儲存和16位儲存實現呼喚。2.原理new color 97,100,255 這個是32位儲存 引數依次是 r g b。省略了a,alpha通道的值 rgba 實現 int32 int32color unsigned int r,unsigned int g,u...