在描述色彩的上, 最常用的標示法為 RGB 與 HSV.
在Android系統上, 有Color這個class可以幫忙轉換與取得所需的色彩資訊.
其中
色彩值(color)為整數(int)
RGB的值均為整數(int) 範圍均為 [0:255]
HSV為浮點數(float) 範圍H:[0.0F : 360.0F] S[0.0F : 1.0F] V[0.0F : 1.0F]
假定, 今天具有RGB的值, 則可利用
int color = Color.rgb(red, green, blue) 來取得對應的顏色.
假定, 今天具有HSV的值, 則可利用
int color = Color.HSVToColor(hsv) 來取得對應的顏色.
相反的, 如果今天給定color值, 則可利用
int red = Color.red(color)
int green = Color.green(color)
int blue = Color.blue(color)
來取得RGB值
亦可利用 Color.colorToHSV(color, hsv) 來將顏色轉換成 hsv.
但因為hsv為浮點數, 所以若將由 color1 轉換成的hsv值在轉換為color2時.
由於其運算會由浮點數再度轉換為整數. 中間可能會有精準度的問題而使得color1不等於color2.
故, 若有顏色轉換上的需求, 盡可能不要用hsv轉為color, 而只要進行color轉向hsv的單向工程. 至於color的來源可藉由同是整數的RGB轉換得來, 或直接使用16進位法的整數表示式即可.(同樣在整數的轉換中, 精準度不會因為轉換而失去)
沒有留言:
張貼留言