SampleModel  取样模型
Databuffer 数据缓冲区

Raster 光栅
Sample 样本
band  带

SampleModel是java awt中的一个抽象类,它定义了一个接口,用于提取一幅图像中的像素(pixel)的样本(Sample)。一幅图像包含了许多数据,而所有的数据是以像素为基本单位来表达的(像素的集合),其中每个像素又由若干样本来构成。样本(Sample),是指对一幅图像取样得到的属于某个带的单体数据,而带(band),是一副图像中的特定类型的样本的全体。

例如,1个像素可包含3个样本、分别代表红、绿、蓝这三个基色。于是就说以三基色来定义的一幅图像包含了3个带:第一个带含来自图像中的所有像素的红色样本,第二个带含所有的绿色样本,第三个带含所有的蓝色样本。内存存放方式:像素可用不同方式来进行存储。如,把一个带的所有像素按顺序进行存放的方式、和把单个像素所含的样本组(例如三基色的三个样本)的各个样本逐组顺序存放的方式,等等。

SampleModel的子类用来指定样本的表达类型(如,是非负的8比特类型byte还是整数类型的16比特short,等),以及样本在内存的存放格式。Java 2D(tm)提供的图像处理内置API不可能支持所有的样品类型,但通常都会支持16比特无符号整数类型(0 -65535)或更低的类型,其中,有些API支持的数据类型会有很多。

1组像素可表示为1个光栅(Raster。例如一个扫描行)。光栅含1个DataBuffer和1个SampleModel。使用SampleModel可以对DataBuffer中的样本进行存取,有些还可能提供机器级别的信息,帮助编程者直接操作DataBuffer中的样品和像素。

SampleModel处理图像通常是后退法。高效的编程是,把SampleModel 转换(cast)到适当的子类,从中提取出直接操作DataBuffer中的像素所需的信息。

05-11 20:46