-RGB畫素值分解的含義-

disable發表於2021-09-09

RGB顏色是由紅(Red)、綠(Green)、藍(Blue)三原色組成的,所以可以使用這三個顏色的組合來代表一種具體的顏色,其中R、G、B的每個數值都位於0-255之間。在表達顏色的時候,即可以使用三個數字來表達,也可以使用一個格式如0X00RRGGBB這樣格式的十六進位制來表達,下面是常見顏色的表達形式:
  紅色:(255,0,0)或0x00FF0000
  綠色:(0,255,0)或0x0000FF00
  藍色:(255,255,255)或0x00FFFFFF
在編寫Android彩色影像處理程式時,需要對影像進行灰度化和二值化處理,很多地方不懂,在借鑑別人的程式碼是看到這樣的表示:
red = (rgb & 0x00ff0000) >> 16;
首先將顏色值與十六進位制表示的00ff0000進行“與”運算,運算結果除了表示紅色的數字值之外,GGBB部分顏色都為0,在將結果向右移位16位,得到的就是紅色值。所以這句程式碼主要用來從一個顏色中抽取其組成色---紅色的值。
int color = 0x0012faff;
例如:我們已經獲取一種顏色,如上所示color。那麼下面這段程式碼的結果將會是18,它是0x12的十進位制表示值。
int redOnly = color & 0x00ff0000;
System.out.println(redOnly >> 16);
同樣的,我們也可以透過以下程式碼得到green和blue的值:
int green = (color & 0x0000ff00) >> 8; // 250 = 0xfa
int blue = (color & 0x000000ff); // 255 = 0xff

來源:http://blog.csdn.net/nannan_smile/article/details/26755619

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/200/viewspace-2799621/,如需轉載,請註明出處,否則將追究法律責任。

相關文章