BufferedImage 的文档非常...简洁。
不同类型的含义是什么?当我调用 getPixel() 时我会得到什么TYPE_INT_ARGB
?当类型为 时,它与我返回的内容有何不同TYPE_3BYTE_BGR
?那么其他类型呢?
BufferedImage 的文档非常...简洁。
不同类型的含义是什么?当我调用 getPixel() 时我会得到什么TYPE_INT_ARGB
?当类型为 时,它与我返回的内容有何不同TYPE_3BYTE_BGR
?那么其他类型呢?
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)
类型代表像素颜色类型。
与 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 组件表示图像如何透明。
同样,其他类型定义不同的配色方案。