模块 java.desktop

类 DataBuffer

java.lang.Object
java.awt.image.DataBuffer
已知子类:
DataBufferByte , DataBufferDouble , DataBufferFloat , DataBufferInt , DataBufferShort , DataBufferUShort

public abstract class DataBuffer extends Object
存在此类以包装一个或多个数据数组。 DataBuffer 中的每个数据数组都称为一个库。用于获取和设置 DataBuffer 的 bank 元素的访问器方法有和没有 bank 说明符。没有银行说明符的方法使用默认的第 0 银行。 DataBuffer 可以选择对每个存储体取一个偏移量,这样即使感兴趣的数据不是从数组位置零开始的,也可以使用现有数组中的数据。获取或设置银行的第 0 个元素,使用数组的第 (0+offset) 个元素。大小字段指定有多少数据数组可供使用。给定 bank 的大小 + 偏移量绝不能大于关联数据数组的长度。数据缓冲区的数据类型表示数据数组的类型,也可以表示额外的语义,例如在字节数组的元素中存储无符号的 8 位数据。数据类型可以是 TYPE_UNDEFINED 或下面定义的类型之一。将来可能会添加其他类型。通常,DataBuffer 类的对象将被向下转换为其数据类型特定的子类之一,以访问数据类型特定的方法以提高性能。目前,Java 2D(tm) API 图像类使用 TYPE_BYTE、TYPE_USHORT、TYPE_INT、TYPE_SHORT、TYPE_FLOAT 和 TYPE_DOUBLE 数据缓冲区来存储图像数据。
参见:
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    protected int
    此 DataBuffer 中的银行数量。
    protected int
    此 DataBuffer 的数据类型。
    protected int
    从中获取第一个元素的默认(第一个)银行的偏移量。
    protected int[]
    抵消所有银行。
    protected int
    所有银行的可用大小。
    static final int
    无符号字节数据的标记。
    static final int
    双数据标记。
    static final int
    浮动数据的标记。
    static final int
    int 数据的标记。
    static final int
    签名短数据的标记。
    static final int
    未定义数据的标记。
    static final int
    无符号短数据的标记。
  • 构造方法总结

    构造方法
    修饰符
    构造方法
    描述
    protected
    DataBuffer(int dataType, int size)
    构造一个包含指定数据类型和大小的存储区的 DataBuffer。
    protected
    DataBuffer(int dataType, int size, int numBanks)
    构造一个包含指定数量银行的 DataBuffer。
    protected
    DataBuffer(int dataType, int size, int numBanks, int offset)
    构造一个包含指定数量银行的 DataBuffer。
    protected
    DataBuffer(int dataType, int size, int numBanks, int[] offsets)
    构造一个包含指定数量银行的 DataBuffer。
  • 方法总结

    修饰符和类型
    方法
    描述
    int
    返回此 DataBuffer 的数据类型。
    static int
    getDataTypeSize(int type)
    给定数据类型标记,返回数据类型的大小(以位为单位)。
    int
    getElem(int i)
    以整数形式从第一个(默认)银行返回请求的数据数组元素。
    abstract int
    getElem(int bank, int i)
    以整数形式从指定银行返回请求的数据数组元素。
    double
    getElemDouble(int i)
    以双精度形式从第一个(默认)银行返回请求的数据数组元素。
    double
    getElemDouble(int bank, int i)
    以双精度形式从指定银行返回请求的数据数组元素。
    float
    getElemFloat(int i)
    以浮点数形式从第一个(默认)银行返回请求的数据数组元素。
    float
    getElemFloat(int bank, int i)
    以浮点数形式从指定银行返回请求的数据数组元素。
    int
    返回此 DataBuffer 中的银行数量。
    int
    返回数组元素中默认银行的偏移量。
    int[]
    返回所有银行的偏移量(在数组元素中)。
    int
    返回所有银行的大小(数组元素)。
    void
    setElem(int i, int val)
    根据给定整数在第一个(默认)库中设置请求的数据数组元素。
    abstract void
    setElem(int bank, int i, int val)
    根据给定整数设置指定银行中请求的数据数组元素。
    void
    setElemDouble(int i, double val)
    从给定的双精度设置第一个(默认)银行中请求的数据数组元素。
    void
    setElemDouble(int bank, int i, double val)
    从给定的双精度设置指定银行中请求的数据数组元素。
    void
    setElemFloat(int i, float val)
    根据给定的浮点数在第一个(默认)组中设置请求的数据数组元素。
    void
    setElemFloat(int bank, int i, float val)
    从给定的浮点数设置指定银行中请求的数据数组元素。

    在类 java.lang.Object 中声明的方法

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 字段详细信息

    • TYPE_BYTE

      @Native public static final int TYPE_BYTE
      无符号字节数据的标记。
      参见:
    • TYPE_USHORT

      @Native public static final int TYPE_USHORT
      无符号短数据的标记。
      参见:
    • TYPE_SHORT

      @Native public static final int TYPE_SHORT
      签名短数据的标记。
      参见:
    • TYPE_INT

      @Native public static final int TYPE_INT
      int 数据的标记。
      参见:
    • TYPE_FLOAT

      @Native public static final int TYPE_FLOAT
      浮动数据的标记。
      参见:
    • TYPE_DOUBLE

      @Native public static final int TYPE_DOUBLE
      双数据标记。
      参见:
    • TYPE_UNDEFINED

      @Native public static final int TYPE_UNDEFINED
      未定义数据的标记。
      参见:
    • dataType

      protected int dataType
      此 DataBuffer 的数据类型。
    • banks

      protected int banks
      此 DataBuffer 中的银行数量。
    • offset

      protected int offset
      从中获取第一个元素的默认(第一个)银行的偏移量。
    • size

      protected int size
      所有银行的可用大小。
    • offsets

      protected int[] offsets
      抵消所有银行。
  • 构造方法详细信息

    • DataBuffer

      protected DataBuffer(int dataType, int size)
      构造一个包含指定数据类型和大小的存储区的 DataBuffer。
      参数:
      dataType - 这个 DataBuffer 的数据类型
      size - 银行的规模
    • DataBuffer

      protected DataBuffer(int dataType, int size, int numBanks)
      构造一个包含指定数量银行的 DataBuffer。每个 bank 都有指定的大小和 0 的偏移量。
      参数:
      dataType - 这个 DataBuffer 的数据类型
      size - 银行的规模
      numBanks - 这个 DataBuffer 中的银行数量
    • DataBuffer

      protected DataBuffer(int dataType, int size, int numBanks, int offset)
      构造一个包含指定数量银行的 DataBuffer。每个 bank 都有指定的数据类型、大小和偏移量。
      参数:
      dataType - 这个 DataBuffer 的数据类型
      size - 银行的规模
      numBanks - 这个 DataBuffer 中的银行数量
      offset - 每个银行的偏移量
    • DataBuffer

      protected DataBuffer(int dataType, int size, int numBanks, int[] offsets)
      构造一个包含指定数量银行的 DataBuffer。每个银行都有指定的数据类型和大小。每个银行的偏移量由其在偏移量数组中的相应条目指定。
      参数:
      dataType - 这个 DataBuffer 的数据类型
      size - 银行的规模
      numBanks - 这个 DataBuffer 中的银行数量
      offsets - 包含每个银行偏移量的数组。
      抛出:
      ArrayIndexOutOfBoundsException - 如果 numBanks 不等于 offsets 的长度
  • 方法详情

    • getDataTypeSize

      public static int getDataTypeSize(int type)
      给定数据类型标记,返回数据类型的大小(以位为单位)。
      参数:
      type - 定义的数据类型标签之一的值
      返回:
      数据类型的大小
      抛出:
      IllegalArgumentException - 如果 type 小于零或大于 TYPE_DOUBLE
    • getDataType

      public int getDataType()
      返回此 DataBuffer 的数据类型。
      返回:
      这个 DataBuffer 的数据类型。
    • getSize

      public int getSize()
      返回所有银行的大小(数组元素)。
      返回:
      所有银行的规模。
    • getOffset

      public int getOffset()
      返回数组元素中默认银行的偏移量。
      返回:
      默认银行的偏移量。
    • getOffsets

      public int[] getOffsets()
      返回所有银行的偏移量(在数组元素中)。
      返回:
      所有银行的抵消。
    • getNumBanks

      public int getNumBanks()
      返回此 DataBuffer 中的银行数量。
      返回:
      银行的数量。
    • getElem

      public int getElem(int i)
      以整数形式从第一个(默认)银行返回请求的数据数组元素。
      参数:
      i - 请求的数据数组元素的索引
      返回:
      指定索引处的数据数组元素。
      参见:
    • getElem

      public abstract int getElem(int bank, int i)
      以整数形式从指定银行返回请求的数据数组元素。
      参数:
      bank - 指定银行
      i - 请求的数据数组元素的索引
      返回:
      来自指定索引处指定银行的指定索引处的数据数组元素。
      参见:
    • setElem

      public void setElem(int i, int val)
      根据给定整数在第一个(默认)库中设置请求的数据数组元素。
      参数:
      i - 数据数组的指定索引
      val - 设置数据数组中指定索引处元素的数据
      参见:
    • setElem

      public abstract void setElem(int bank, int i, int val)
      根据给定整数设置指定银行中请求的数据数组元素。
      参数:
      bank - 指定银行
      i - 数据数组的指定索引
      val - 在数据数组的指定索引处设置指定库中元素的数据
      参见:
    • getElemFloat

      public float getElemFloat(int i)
      以浮点数形式从第一个(默认)银行返回请求的数据数组元素。此类中的实现是将 getElem(i) 转换为浮点数。如果需要另一个实现,子类可以重写此方法。
      参数:
      i - 请求的数据数组元素的索引
      返回:
      表示指定索引处的数据数组元素的浮点值。
      参见:
    • getElemFloat

      public float getElemFloat(int bank, int i)
      以浮点数形式从指定银行返回请求的数据数组元素。此类中的实现是将 getElem(int, int) 转换为浮点数。如果需要另一个实现,子类可以覆盖此方法。
      参数:
      bank - 指定银行
      i - 请求的数据数组元素的索引
      返回:
      一个浮点值,表示指定索引处指定银行的数据数组元素。
      参见:
    • setElemFloat

      public void setElemFloat(int i, float val)
      根据给定的浮点数在第一个(默认)组中设置请求的数据数组元素。此类中的实现是将 val 转换为 int 并调用 setElem(int, int) 。如果需要另一个实现,子类可以覆盖此方法。
      参数:
      i - 指定索引
      val - 设置数据数组中指定索引处元素的值
      参见:
    • setElemFloat

      public void setElemFloat(int bank, int i, float val)
      从给定的浮点数设置指定银行中请求的数据数组元素。此类中的实现是将 val 转换为 int 并调用 setElem(int, int) 。如果需要另一个实现,子类可以覆盖此方法。
      参数:
      bank - 指定银行
      i - 指定索引
      val - 在数据数组的指定索引处设置指定库中元素的值
      参见:
    • getElemDouble

      public double getElemDouble(int i)
      以双精度形式从第一个(默认)银行返回请求的数据数组元素。此类中的实现是将 getElem(int) 转换为双精度数。如果需要另一个实现,子类可以覆盖此方法。
      参数:
      i - 指定索引
      返回:
      一个双精度值,表示数据数组中指定索引处的元素。
      参见:
    • getElemDouble

      public double getElemDouble(int bank, int i)
      以双精度形式从指定银行返回请求的数据数组元素。此类中的实现是将 getElem(bank, i) 转换为 double。如果需要另一个实现,子类可以重写此方法。
      参数:
      bank - 指定银行
      i - 指定索引
      返回:
      一个双精度值,表示数据数组中指定索引处指定银行的元素。
      参见:
    • setElemDouble

      public void setElemDouble(int i, double val)
      从给定的双精度设置第一个(默认)银行中请求的数据数组元素。此类中的实现是将 val 转换为 int 并调用 setElem(int, int) 。如果需要另一个实现,子类可以覆盖此方法。
      参数:
      i - 指定索引
      val - 设置数据数组中指定索引处元素的值
      参见:
    • setElemDouble

      public void setElemDouble(int bank, int i, double val)
      从给定的双精度设置指定银行中请求的数据数组元素。此类中的实现是将 val 转换为 int 并调用 setElem(int, int) 。如果需要另一个实现,子类可以覆盖此方法。
      参数:
      bank - 指定银行
      i - 指定索引
      val - 在数据数组的指定索引处设置指定库中元素的值
      参见: