- java.lang.Object
-
- java.awt.image.SampleModel
-
- java.awt.image.ComponentSampleModel
-
- java.awt.image.PixelInterleavedSampleModel
-
public class PixelInterleavedSampleModel extends ComponentSampleModel
该类表示以像素交错方式存储的图像数据,并且像素的每个样本占据DataBuffer的一个数据元素。 它对ComponentSampleModel进行子类化,但是为ComponentSampleModel提供的访问像素交错图像数据提供了更有效的实现。 该类将DataBuffer的单个存储区中的所有频带的样本数据存储起来。 提供访问方法,以便可以直接操纵图像数据。 像素幅度是同一扫描线上同一频带的两个样本之间的数据数组元素数。 扫描线步幅是给定样本与下一个扫描线同一列中相应样本之间的数据数组元素数。 带偏移表示来自保持每个频带的DataBuffer组的第一数据阵列元素到该频带的第一个样本的数据数组元素的数量。 频带从0到N-1编号。 存储体索引表示数据缓冲器的存储体与图像数据的区段之间的对应关系。 该类支持TYPE_BYTE
,TYPE_USHORT
,TYPE_SHORT
,TYPE_INT
,TYPE_FLOAT
和TYPE_DOUBLE
数据类型。
-
-
Field Summary
-
Fields inherited from class java.awt.image.ComponentSampleModel
bandOffsets, bankIndices, numBands, numBanks, pixelStride, scanlineStride
-
Fields inherited from class java.awt.image.SampleModel
dataType, height, width
-
-
构造方法摘要
构造方法 Constructor 描述 PixelInterleavedSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)
构造具有指定参数的PixelInterleavedSampleModel。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 SampleModel
createCompatibleSampleModel(int w, int h)
创建一个具有指定宽度和高度的新PixelInterleavedSampleModel。SampleModel
createSubsetSampleModel(int[] bands)
创建一个新的PixelInterleavedSampleModel与PixelInterleavedSampleModel的带子集。int
hashCode()
返回对象的哈希码值。-
Methods inherited from class 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
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class 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数组的长度给出。- 参数
-
dataType
- 用于存储样本的数据类型。 -
w
- 描述的图像数据区域的宽度(以像素为单位)。 -
h
- 描述的图像数据区域的高度(以像素为单位)。 -
pixelStride
- 图像数据的像素步幅。 -
scanlineStride
- 图像数据的行走。 -
bandOffsets
- 所有乐队的偏移量。 - 异常
-
IllegalArgumentException
- 如果w
或h
不大于0 -
IllegalArgumentException
- 如果带之间的任何偏移大于扫描线步幅 -
IllegalArgumentException
- 如果pixelStride
和w
的产品大于scanlineStride
-
IllegalArgumentException
- 如果pixelStride
小于频带之间的任何偏移量 -
IllegalArgumentException
- 如果dataType
不是支持的数据类型之一
-
-
方法详细信息
-
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
创建一个具有指定宽度和高度的新PixelInterleavedSampleModel。 新的PixelInterleavedSampleModel将具有与PixelInterleavedSampleModel相同数量的带,存储数据类型和像素跨度。 频带偏移可以被压缩,使得所有频带偏移的最小值为零。- 重写:
-
createCompatibleSampleModel
在ComponentSampleModel
- 参数
-
w
- 所得的宽度SampleModel
-
h
- 所得的高度SampleModel
- 结果
-
一个新的
SampleModel
具有指定的宽度和高度。 - 异常
-
IllegalArgumentException
- 如果w
或h
不大于0
-
createSubsetSampleModel
public SampleModel createSubsetSampleModel(int[] bands)
创建一个新的PixelInterleavedSampleModel与PixelInterleavedSampleModel的带子集。 新的PixelInterleavedSampleModel可以与现有PixelInterleavedSampleModel可以一起使用的任何DataBuffer使用。 新的PixelInterleavedSampleModel / DataBuffer组合将表示具有原始PixelInterleavedSampleModel / DataBuffer组合的带子集的图像。- 重写:
-
createSubsetSampleModel
在ComponentSampleModel
- 参数
-
bands
- 这个ComponentSampleModel
一个子集 - 结果
-
一个
ComponentSampleModel
用这个ComponentSampleModel
的带子子集创建。
-
hashCode
public int hashCode()
描述从类别复制:Object
返回对象的哈希码值。 支持这种方法是为了散列表的利益,如HashMap
所提供的那样 。hashCode
的总合同是:- 无论何时在执行Java应用程序时多次调用同一对象,
hashCode
方法必须始终返回相同的整数,前提是修改了对象中equals
比较中的信息。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。 - 如果两个对象根据
equals(Object)
方法相等,则在两个对象中的每个对象上调用hashCode
方法必须产生相同的整数结果。 - 不要求如果两个对象根据
Object.equals(java.lang.Object)
方法不相等,那么在两个对象中的每个对象上调用hashCode
方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。
尽可能合理实用,由类
Object
定义的hashCode方法确实为不同对象返回不同的整数。 (在某个时间点,hashCode可能或可能不被实现为对象的存储器地址的某些功能。)- 重写:
-
hashCode
在ComponentSampleModel
- 结果
- 该对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
- 无论何时在执行Java应用程序时多次调用同一对象,
-
-