java.awt.image

接口
异常
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_BYTETYPE_USHORTTYPE_SHORTTYPE_INTTYPE_FLOATTYPE_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.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
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

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 - 如果 wh 不大于 0
IllegalArgumentException - 如果任意 band 之间的偏移量大于扫描行跨度
IllegalArgumentException - 如果 pixelStridew 的乘积大于 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 - 如果 wh 不大于 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