2013-10-15 53 views

回答

2

TYPE_INT_ARGB使用整數保存像素的顏色,像

int color = 0xAARRGGBB, 

但3BYTE_BGR使用

byte[] color = new byte[Blue, Green, Red] 

我建議使用INT_ARGB,您可以使用Alpha,在3BYTE有沒有通道α。 Integer是更快的,不是字節,易陣列,例如得到任何顏色的使用:

(COLOR >> 16) & 0xFF; (24-16 bits are RED). 
(COLOR >> 8) & 0xFF; (16- 8 bits are GREEN). 
(COLOR >> 0) & 0xFF; (8- 0 bits are BLUE). 

我總是用INT_ARGB或INT_RGB(如果我不需要阿爾法)

+0

你怎麼知道這個?其他類型呢? –

+0

另外,'getPixel()'返回一個'int []'數組。這是如何與'TYPE_3BYTE_BGR'一起工作的? 'getPixel()'映射值還是每個'byte'都得到一個'int'? –

2

類型代表像素顏色類型。

與TYPE_INT_ARGB類似,ALPHA組件使用8位,RED組件使用8位,GREEN組件使用8位,BLUE顏色組件使用8位。所以像素顏色可以存儲在int的值中。

TYPE_3BYTE_BGR不存儲顏色的ALPHA分量。它僅使用3個字節的int值。

與TYPE_USHORT_555_RGB類似,每個顏色的RED,GREEN和BLUE分量使用5位。由於它僅使用5位,所以其顏色數量將比TYPE_INT_ARGB或TYPE_3BYTE_BGR的數量有限。

ALPHA組件表示圖像是如何透明的。

同樣,其他類型定義了不同的配色方案。