BufferedImage的文档非常简洁。
不同类型的含义是什么?当我为TYPE_INT_ARGB
调用getPixel()时,我会得到什么?当类型为TYPE_3BYTE_BGR
时,它与我得到的有什么不同?其他类型呢?
答案 0 :(得分:2)
TYPE_INT_ARGB使用Integer来保存像素的颜色,如
int color = 0xAARRGGBB,
但3BYTE_BGR使用
byte[] color = new byte[Blue, Green, Red]
我建议使用INT_ARGB,你可以使用alpha,在3BYTE中没有通道alpha。整数比字节数组更容易,例如使用任何颜色:
(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(如果我不需要alpha)
答案 1 :(得分:2)
Type表示像素颜色类型。
类似于TYPE_INT_ARGB,对于ALPHA组件使用8位,对于RED组件使用8位,对于GREEN组件使用8位,对于蓝色颜色组件使用8位。因此像素颜色可以存储在int
值中。
TYPE_3BYTE_BGR不存储颜色的ALPHA组件。它仅使用3个字节的int
值。
与TYPE_USHORT_555_RGB一样,每个RED,GREEN和BLUE组件使用5位颜色。由于它仅使用5位,因此它的颜色数量将少于TYPE_INT_ARGB或TYPE_3BYTE_BGR。
ALPHA组件表示图像是如何透明的。
同样,其他类型定义了不同的配色方案。