java.lang.Object
java.awt.image.SampleModel
java.awt.image.ComponentSampleModel
java.awt.image.PixelInterleavedSampleModel
该类表示以像素交错方式存储的图像数据,每个像素的每个样本占据DataBuffer的一个数据元素。它是ComponentSampleModel的子类,但提供了比ComponentSampleModel更高效的实现来访问像素交错的图像数据。该类将所有波段的样本数据存储在DataBuffer的单个存储区中。提供了访问器方法,以便直接操作图像数据。像素步幅是同一波段同一扫描线上两个样本之间的数据数组元素数量。扫描线步幅是给定样本与下一扫描线同一列中相应样本之间的数据数组元素数量。波段偏移量表示从DataBuffer的存储区中每个波段的第一个数据数组元素到波段的第一个样本的数据数组元素数量。波段从0到N-1编号。存储区索引表示数据缓冲区的存储区与图像数据的波段之间的对应关系。该类支持
TYPE_BYTE
、TYPE_USHORT
、TYPE_SHORT
、TYPE_INT
、TYPE_FLOAT
和TYPE_DOUBLE
数据类型。
-
Field Summary
Fields declared in class java.awt.image.ComponentSampleModel
bandOffsets, bankIndices, numBands, numBanks, pixelStride, scanlineStride
Fields declared in class java.awt.image.SampleModel
dataType, height, width
-
Constructor Summary
ConstructorDescriptionPixelInterleavedSampleModel
(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets) 使用指定的参数构造一个PixelInterleavedSampleModel。 -
Method Summary
Modifier and TypeMethodDescriptioncreateCompatibleSampleModel
(int w, int h) 创建一个具有指定宽度和高度的新PixelInterleavedSampleModel。createSubsetSampleModel
(int[] bands) 创建一个具有此PixelInterleavedSampleModel波段子集的新PixelInterleavedSampleModel。Methods declared in class java.awt.image.ComponentSampleModel
createDataBuffer, getBandOffsets, getBankIndices, getDataElements, getNumDataElements, getOffset, getOffset, getPixel, getPixels, getPixelStride, getSample, getSampleDouble, getSampleFloat, getSamples, getSampleSize, getSampleSize, getScanlineStride, setDataElements, setPixel, setPixels, setSample, setSample, setSample, setSamples
Methods declared in class java.awt.image.SampleModel
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples
-
Constructor Details
-
PixelInterleavedSampleModel
public PixelInterleavedSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets) 使用指定的参数构造一个PixelInterleavedSampleModel。波段的数量将由bandOffsets数组的长度确定。- 参数:
-
dataType
- 用于存储样本的数据类型。 -
w
- 描述图像数据区域的宽度(以像素为单位)。 -
h
- 描述图像数据区域的高度(以像素为单位)。 -
pixelStride
- 图像数据的像素步幅。 -
scanlineStride
- 图像数据的行步幅。 -
bandOffsets
- 所有波段的偏移量。 - 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于0 -
IllegalArgumentException
- 如果任何波段之间的偏移大于扫描线步幅 -
IllegalArgumentException
- 如果pixelStride
和w
的乘积大于scanlineStride
-
IllegalArgumentException
- 如果pixelStride
小于任何波段之间的偏移 -
IllegalArgumentException
- 如果dataType
不是支持的数据类型之一
-
-
Method Details
-
createCompatibleSampleModel
创建一个具有指定宽度和高度的新PixelInterleavedSampleModel。新的PixelInterleavedSampleModel将具有与此PixelInterleavedSampleModel相同的波段数量、存储数据类型和像素步幅。波段偏移量可能会被压缩,以使所有波段偏移量的最小值为零。- 覆盖:
-
createCompatibleSampleModel
在类ComponentSampleModel
中 - 参数:
-
w
- 结果SampleModel
的宽度 -
h
- 结果SampleModel
的高度 - 返回:
-
具有指定宽度和高度的新
SampleModel
。 - 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于0
-
createSubsetSampleModel
创建一个具有此PixelInterleavedSampleModel波段子集的新PixelInterleavedSampleModel。新的PixelInterleavedSampleModel可以与现有的PixelInterleavedSampleModel可以使用的任何DataBuffer一起使用。新的PixelInterleavedSampleModel/DataBuffer组合将表示具有原始PixelInterleavedSampleModel/DataBuffer组合的波段子集的图像。- 覆盖:
-
createSubsetSampleModel
在类ComponentSampleModel
中 - 参数:
-
bands
- 来自此ComponentSampleModel
的波段子集 - 返回:
-
使用来自此
ComponentSampleModel
的波段子集创建的ComponentSampleModel
。
-