有許多朋友第一次使用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...