从前面的内容可以知道,BufferedImage对象中最重要的一个组件是ColorModel对象,最常用的实现类是IndexColorModel,下面就以此为例来演示如何创建与使用ColorModel对象。首先来看如何创建一个IndexColorModel对象,IndexColorModel的构造函数有五个参数,分别为:
Bits:表示每个像素的所占的位数,对RGB单色来说是8位。
Size:表示颜色组件数组长度,对于RGB取值范围0~255而言,值为256。
r[]:字节数组r表示颜色组件的RED值数组。
g[]:字节数组r表示颜色组件的GREEN值数组。
b[]:字节数组r表示颜色组件的BLUE值数组。
通常而言,每个单色所占的位数都在1~16之间,size值必须大等于1。正确创建Index-ColorModel的代码如下:
public IndexColorModel getColorModel() { byte[] r = new byte[256]; byte[] g = new byte[256]; byte[] b = new byte[256]; for (int i = 0; i < 256; i++) { r[i] = (byte) i; g[i] = (byte) i; b[i] = (byte) i; } return new IndexColorModel(8, 256, r, g, b); }
BufferedImage对象中最重要的两个组件如何创建我们都知道了,下面一小节就一起来看看BufferedImage对象本身是如何创建的。