所有类
java.awt.image
类 PixelInterleavedSampleModel
java.lang.Object
java.awt.image.SampleModel
java.awt.image.ComponentSampleModel
java.awt.image.PixelInterleavedSampleModel
-
public class PixelInterleavedSampleModel
- extends ComponentSampleModel
此类表示以像素交替方式存储的图像数据,其中像素的每个采样占用 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
数据类型。
构造方法摘要 |
PixelInterleavedSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets) 构造一个带指定参数的 PixelInterleavedSampleModel。 |
从类 java.awt.image.ComponentSampleModel 继承的方法 |
createDataBuffer, equals, getBandOffsets, getBankIndices, getDataElements, getNumDataElements, getOffset, getOffset, getPixel, getPixels, getPixelStride, getSample, getSampleDouble, getSampleFloat, getSamples, getSampleSize, getSampleSize, getScanlineStride, setDataElements, setPixel, setPixels, setSample, setSample, setSample, setSamples |
从类 java.awt.image.SampleModel 继承的方法 |
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples |
PixelInterleavedSampleModel
public PixelInterleavedSampleModel(int dataType,
int w,
int h,
int pixelStride,
int scanlineStride,
int[] bandOffsets)
-
构造一个带指定参数的 PixelInterleavedSampleModel。通过 bandOffsets 数组的长度给出 band 数。
-
参数:
-
dataType
- 存储采样的数据类型。
-
w
- 所描述的图像数据区域的宽度(以像素为单位)。
-
h
- 所描述的图像数据区域的高度(以像素为单位)。
-
pixelStride
- 图像数据的像素跨度。
-
scanlineStride
- 图像数据的行跨度。
-
bandOffsets
- 所有 band 的偏移量。
-
抛出:
-
IllegalArgumentException
- 如果 w
或 h
不大于 0
-
IllegalArgumentException
- 如果任意 band 之间的偏移量大于扫描行跨度
-
IllegalArgumentException
- 如果 pixelStride
和 w
的乘积大于 scanlineStride
-
IllegalArgumentException
- 如果 pixelStride
小于任意 band 之间的偏移量
-
IllegalArgumentException
- 如果 dataType
不是受支持的数据类型之一
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w,
int h)
-
创建一个具有指定宽度和高度的 PixelInterleavedSampleModel。新的 PixelInterleavedSampleModel 具有与此 PixelInterleavedSampleModel 相同的 band 数、数据存储类型和像素跨度。可能压缩 band 偏移量,使得所有 band 偏移量的最小值是 0。
-
-
覆盖:
-
类
ComponentSampleModel
中的 createCompatibleSampleModel
-
-
参数:
-
w
- 所得 SampleModel
的宽度
-
h
- 所得 SampleModel
的高度
-
返回:
-
具有指定宽度和高度的新
SampleModel
。
-
抛出:
-
IllegalArgumentException
- 如果 w
或 h
不大于 0
createSubsetSampleModel
public SampleModel createSubsetSampleModel(int[] bands)
-
创建一个具有此 PixelInterleavedSampleModel 的 band 子集的 PixelInterleavedSampleModel。新的 PixelInterleavedSampleModel 可以使用现有 PixelInterleavedSampleModel 使用的所有 DataBuffer。新的 PixelInterleavedSampleModel/DataBuffer 组合表示的图像具有原 PixelInterleavedSampleModel/DataBuffer 组合的 band 子集。
-
-
覆盖:
-
类
ComponentSampleModel
中的 createSubsetSampleModel
-
-
参数:
-
bands
- 此 ComponentSampleModel
的 band 的子集
-
返回:
-
已创建的具有此
ComponentSampleModel
的 band 子集的 ComponentSampleModel
。
hashCode
public int hashCode()
-
从类
Object
复制的描述
-
返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,
java.util.Hashtable
提供的哈希表。
hashCode
的常规协定是:
- 在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
- 如果根据 equals(Object) 方法,两个对象是相等的,那么在两个对象中的每个对象上调用
hashCode
方法都必须生成相同的整数结果。
- 以下情况不 是必需的:如果根据
Object.equals(java.lang.Object)
方法,两个对象不相等,那么在两个对象中的任一对象上调用 hashCode 方法必定会生成不同的整数结果。但是,程序员应该知道,为不相等的对象生成不同整数结果可以提高哈希表的性能。
实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)
-
-
覆盖:
-
类
ComponentSampleModel
中的 hashCode
-
-
返回:
-
此对象的一个哈希码值。
-
另请参见:
-
Object.equals(java.lang.Object)
, Hashtable
所有类