顏色基本概念和顏色位移

2021-06-29 08:27:50 字數 939 閱讀 6212

顏色的基本概念:

rgb中0x000000是黑色,0xffffff是白色; alpha當0x00時候是完全透明的,0xff是完全不透明的。

顏色的深度,就是乙個畫素用多少位來表示,一般影象為8位深度,也就是2(^8) = 256種顏色。如果影象深度為24位,那就是2(^24)=

16777216種顏色稱之為真彩色。雖然顏色的深度為8位,但是也不是說r只有8種,g只有8種,b只有4種顏色,也不是說r只能取0x00~0x07,

而是將這256種常用顏色賦值給乙個unsigned int型別的整數(alpha位也是必須的),r位可能是0x00~0xff,所以到

記憶體裡面還是要消耗乙個unsigned int的整型來存放乙個畫素顏色,而顏色的深度只能在磁碟空間或者網路儲存中減少儲存空間。

顏色在記憶體中用調色盤,可以有效的減少記憶體中的占用,比如用乙個unsigned char來表示乙個顏色索引,索引到調色盤。

顏色位移的例子:

uint32_t color::to_argb32() const

// 總結:   

// 1. c/c++語言的位移運算不需要考慮記憶體存放的大小端,因為這個是對邏輯上十六進製制數值的位移, 直接16進製制左右移動即可。

//2.小轉大,大左移《填充:型別的轉換,將小型別轉換為大型別,只需要宣告一塊大資料型別的空間,然後左移填充各個小的資料型別。

//3.大轉小,大右移》擷取:大的轉換為小的先右移,然後直接強制型別轉換擷取,或者格式擷取。

左右移動只是數值上的操作,argb顏色格式在記憶體中數值就是乙個unsigned int整型:argb;儲存方式在記憶體中的由底位址到高位址為:bgra的位元組順序。

左右移動只是改變大資料的值,位址並不改變。輸出是<<,輸入是》。

// 4. 網路上的資料,需要先轉換為主機位元組順序,然後對主機資料進行16進製制處理。

OpenGL基本概念入門4 顏色 光照和材質1

1 opengl中的顏色 在未使用光照系統的前提下,我們可以直接為圖元指定顏色。在傳入頂點之前呼叫glcolor函式,就可以為即將指定的頂點設定顏色。例如 glbegin gl s glcolor3ub 255,0,0 glvertex3f 0,1,0 glvertex3f 1,0,1 glvert...

Flash中顏色位移計算

flash中顏色位移計算 一 說明 要想獲取單個顏色的值,需要對顏色進行位移操作,為什麼要在最前面加兩個零呢?有些顏色是有透明度的,加兩個零是將透明度的值過濾掉,如果你需要透明度的值,可以通過這個獲取var a uint c 24 0xff 位移數值的說明 為什麼要位移24 16 8呢,是因為顏色是...

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...