java.lang.Objectjava.awt.image.SampleModel
java.awt.image.ComponentSampleModel
java.awt.image.PixelInterleavedSampleModel
public class PixelInterleavedSampleModel
此类表示以像素交替方式存储的图像数据,其中像素的每个采样占用 DataBuffer 的一个数据元素。该类子类化 ComponentSampleModel,不过在对像素交替存储图像数据的访问方面,它提供的实现比 ComponentSampleModel 提供的要更为高效。此类在 DataBuffer 的单个存储单元中存储所有 band 的采样数据。还提供了存取方法,这样就可以直接操作图像数据。像素跨度是相同扫描行上同一 band 的两个采样之间的数据数组元素数。扫描行跨度是给定采样和下一扫描行同一列中的对应采样之间的数据数组元素数。band 偏移量表示从保存每个 band 的 DataBuffer 存储单元的第一个数据数组元素到第一个 band 采样之间的数据数组元素数。band 编号从 0 到 N-1。band 索引表示数据缓冲区的存储单元和图像数据 band 之间的对应关系。此类支持 TYPE_BYTE、TYPE_USHORT、TYPE_SHORT、TYPE_INT、TYPE_FLOAT 和 TYPE_DOUBLE 数据类型。
| 字段摘要 |
|---|
| 从类 java.awt.image.ComponentSampleModel 继承的字段 |
|---|
bandOffsets, bankIndices, numBands, numBanks, pixelStride, scanlineStride |
| 从类 java.awt.image.SampleModel 继承的字段 |
|---|
dataType, height, width |
| 构造方法摘要 | |
|---|---|
PixelInterleavedSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets) 构造一个带指定参数的 PixelInterleavedSampleModel。 |
|
| 方法摘要 | |
|---|---|
SampleModel |
createCompatibleSampleModel(int w, int h) 创建一个具有指定宽度和高度的 PixelInterleavedSampleModel。 |
SampleModel |
createSubsetSampleModel(int[] bands) 创建一个具有此 PixelInterleavedSampleModel 的 band 子集的 PixelInterleavedSampleModel。 |
int |
hashCode() 返回该对象的哈希码值。 |
| 从类 java.awt.image.SampleModel 继承的方法 |
|---|
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public PixelInterleavedSampleModel(int dataType,
int w,
int h,
int pixelStride,
int scanlineStride,
int[] bandOffsets)
dataType - 存储采样的数据类型。
w - 所描述的图像数据区域的宽度(以像素为单位)。
h - 所描述的图像数据区域的高度(以像素为单位)。
pixelStride - 图像数据的像素跨度。
scanlineStride - 图像数据的行跨度。
bandOffsets - 所有 band 的偏移量。
IllegalArgumentException - 如果
w 或
h 不大于 0
IllegalArgumentException - 如果任意 band 之间的偏移量大于扫描行跨度
IllegalArgumentException - 如果
pixelStride 和
w 的乘积大于
scanlineStride
IllegalArgumentException - 如果
pixelStride 小于任意 band 之间的偏移量
IllegalArgumentException - 如果
dataType 不是受支持的数据类型之一
| 方法详细信息 |
|---|
public SampleModel createCompatibleSampleModel(int w, int h)
w - 所得
SampleModel 的宽度
h - 所得
SampleModel 的高度
SampleModel。
IllegalArgumentException - 如果
w 或
h 不大于 0
public SampleModel createSubsetSampleModel(int[] bands)
bands - 此
ComponentSampleModel 的 band 子集
ComponentSampleModel band 子集的
ComponentSampleModel。
public int hashCode()
Object 复制的描述
java.util.Hashtable 提供的哈希表)的性能。
hashCode 的常规协定是:
hashCode 方法都必须生成相同的整数结果。 Object.equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。 实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)
ComponentSampleModel 中的
hashCode
Object.equals(java.lang.Object),
Hashtable