C 中RGB顏色值與整型值的轉換

2022-05-03 22:21:13 字數 857 閱讀 2118

這兩天看以前乙個系統的資料庫時,發現其中有個color欄位,顯然是儲存顏色的。但字段型別卻是integer,儲存的值是一長串數字。一時犯糊,跑去問經理數字怎麼換算成r、g、b三個值啊?經理說你難道不知道rgb函式麼?哦,想起來了。用vb開發的朋友應該都知道這個函式,確切的說是乙個巨集,在msdn6中找到它的定義:

#define rgb(r, g ,b)  ((dword) (((byte) (r) | \ ((word) (g) << 8)) | \ (((dword) (byte) (b)) << 16)))

也許您跟我一樣計算機基礎學的不好,看到這堆東東有點暈。那麼看下面這個它效果相同的公式就明白了:

rgb = r + g * 256 + b * 256 * 256

c#中沒有rgb函式,不過知道了原理,馬上能寫乙個出來。

辦法一,笨辦法,效率也低,但是好理解,呵呵。

intrgb 

=202+69

*256

+137

*256

*256

;intb 

=rgb /(

256*

256);

intg 

=(rgb -b 

*256

*256) /

256;

intr 

=(rgb -b 

*256

*256-g 

*256

);辦法二:網上找來的,用移位做,號稱是最高效的辦法。不過按msdn上說的,uint、ushort等型別不符合cls,不知道會有什麼問題。

uint

parsergb(color color)

color rgb(

intcolor)

RGB顏色空間轉換為HSV空間顏色值

void rgb2hsv float r,float g,float b,float h,float s,float v if r max h g b delta between yellow magenta else if g max h 2 b r delta between cyan yell...

rgb顏色設定方法及常用顏色的RGB值

1.android設定rgb顏色方法 每乙個rgb顏色都對應乙個int數值,所以我們可以這麼設定 private static final int default background color color.rgb 0,0,0 如何呼叫這個顏色值呢?比如我們要設定背景顏色,則可以使用 imagev...

透明顏色的rgb值 R中的顏色及使用

今天我們談一下r中的顏色系統。一般r中的作圖函式,也就是說,即使我們不特定指定顏色,一般的作圖函式,也會有自己預設的顏色。但是很多時候,這些顏色並不是很美觀,所以適當地改變配色,對我們的工作有一定的意義。然後我們下面介紹一下r中的顏色系統。注 1 r中有4種顏色表達方式 2 r很難直接檢視某種顏色 ...