Module  java.desktop
软件包  java.awt.image

Class PixelInterleavedSampleModel



  • public class PixelInterleavedSampleModel
    extends ComponentSampleModel
    该类表示以像素交错方式存储的图像数据,并且像素的每个样本占据DataBuffer的一个数据元素。 它对ComponentSampleModel进行子类化,但是为ComponentSampleModel提供的访问像素交错图像数据提供了更有效的实现。 该类将DataBuffer的单个存储区中的所有频带的样本数据存储起来。 提供访问方法,以便可以直接操纵图像数据。 像素幅度是同一扫描线上同一频带的两个样本之间的数据数组元素数。 扫描线步幅是给定样本与下一个扫描线同一列中相应样本之间的数据数组元素数。 带偏移表示来自保持每个频带的DataBuffer组的第一数据阵列元素到该频带的第一个样本的数据数组元素的数量。 频带从0到N-1编号。 存储体索引表示数据缓冲器的存储体与图像数据的区段之间的对应关系。 该类支持TYPE_BYTETYPE_USHORTTYPE_SHORTTYPE_INTTYPE_FLOATTYPE_DOUBLE数据类型。
    • 构造方法详细信息

      • PixelInterleavedSampleModel

        public PixelInterleavedSampleModel​(int dataType,
                                           int w,
                                           int h,
                                           int pixelStride,
                                           int scanlineStride,
                                           int[] bandOffsets)
        构造具有指定参数的PixelInterleavedSampleModel。 带宽的数量将由bandOffsets数组的长度给出。
        参数
        dataType - 用于存储样本的数据类型。
        w - 描述的图像数据区域的宽度(以像素为单位)。
        h - 描述的图像数据区域的高度(以像素为单位)。
        pixelStride - 图像数据的像素步幅。
        scanlineStride - 图像数据的行走。
        bandOffsets - 所有乐队的偏移量。
        异常
        IllegalArgumentException - 如果 wh不大于0
        IllegalArgumentException - 如果带之间的任何偏移大于扫描线步幅
        IllegalArgumentException - 如果 pixelStridew的产品大于 scanlineStride
        IllegalArgumentException - 如果 pixelStride小于频带之间的任何偏移量
        IllegalArgumentException - 如果 dataType不是支持的数据类型之一
    • 方法详细信息

      • createCompatibleSampleModel

        public SampleModel createCompatibleSampleModel​(int w,
                                                       int h)
        创建一个具有指定宽度和高度的新PixelInterleavedSampleModel。 新的PixelInterleavedSampleModel将具有与PixelInterleavedSampleModel相同数量的带,存储数据类型和像素跨度。 频带偏移可以被压缩,使得所有频带偏移的最小值为零。
        重写:
        createCompatibleSampleModelComponentSampleModel
        参数
        w - 所得的宽度 SampleModel
        h - 所得的高度 SampleModel
        结果
        一个新的 SampleModel具有指定的宽度和高度。
        异常
        IllegalArgumentException - 如果 wh不大于0
      • createSubsetSampleModel

        public SampleModel createSubsetSampleModel​(int[] bands)
        创建一个新的PixelInterleavedSampleModel与PixelInterleavedSampleModel的带子集。 新的PixelInterleavedSampleModel可以与现有PixelInterleavedSampleModel可以一起使用的任何DataBuffer使用。 新的PixelInterleavedSampleModel / DataBuffer组合将表示具有原始PixelInterleavedSampleModel / DataBuffer组合的带子集的图像。
        重写:
        createSubsetSampleModelComponentSampleModel
        参数
        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可能或可能不被实现为对象的存储器地址的某些功能。)

        重写:
        hashCodeComponentSampleModel
        结果
        该对象的哈希码值。
        另请参见:
        Object.equals(java.lang.Object)System.identityHashCode(java.lang.Object)