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

Class DataBuffer

  • 已知直接子类:
    DataBufferByteDataBufferDoubleDataBufferFloatDataBufferIntDataBufferShortDataBufferUShort


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

      Fields  
      Modifier and Type Field 描述
      protected int banks
      此DataBuffer中的存储区数。
      protected int dataType
      DataBuffer的数据类型。
      protected int offset
      偏移到默认(第一)银行,从中获取第一个元素。
      protected int[] offsets
      抵销所有银行。
      protected int size
      所有银行的可用规模。
      static int TYPE_BYTE
      标记无符号字节数据。
      static int TYPE_DOUBLE
      标记为双数据。
      static int TYPE_FLOAT
      标签浮点数据。
      static int TYPE_INT
      标签为int数据。
      static int TYPE_SHORT
      标记签名的短数据。
      static int TYPE_UNDEFINED
      标记未定义的数据。
      static int TYPE_USHORT
      无符号短数据标签。
    • 构造方法摘要

      构造方法  
      Modifier Constructor 描述
      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。
    • 方法摘要

      所有方法  静态方法  接口方法  抽象方法  具体的方法 
      Modifier and Type 方法 描述
      int getDataType​()
      返回此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 getNumBanks​()
      返回此DataBuffer中的存储区数。
      int getOffset​()
      返回数组元素中默认库的偏移量。
      int[] getOffsets​()
      返回所有银行的偏移量(在数组元素中)。
      int getSize​()
      返回所有存储区的大小(以数组为单位)。
      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)
      从给定的浮点数设置指定库中的请求数据数组元素。
    • 字段详细信息

      • TYPE_SHORT

        @Native
        public static final int TYPE_SHORT
        标记签名的短数据。 占位符,供将来使用。
        另请参见:
        Constant Field Values
      • TYPE_FLOAT

        @Native
        public static final int TYPE_FLOAT
        标签浮点数据。 占位符,供将来使用。
        另请参见:
        Constant Field Values
      • TYPE_DOUBLE

        @Native
        public static final int TYPE_DOUBLE
        标记为双数据。 占位符,供将来使用。
        另请参见:
        Constant Field Values
      • 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。 每个银行都有指定的大小,偏移量为0。
        参数
        dataType - 该数据类型 DataBuffer
        size - 银行的大小
        numBanks - 这个 DataBuffer的银行数量
      • DataBuffer

        protected DataBuffer​(int dataType,
                             int size,
                             int numBanks,
                             int offset)
        构造包含指定数量的存储区的DataBuffer。 每个银行都有指定的数据类型,大小和偏移量。
        参数
        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 - 请求的数据数组元素的索引
        结果
        指定索引处的数据数组元素。
        另请参见:
        setElem(int, int)setElem(int, int, int)
      • getElem

        public abstract int getElem​(int bank,
                                    int i)
        从指定的库返回所请求的数据数组元素作为整数。
        参数
        bank - 指定银行
        i - 请求的数据数组元素的索引
        结果
        指定索引处指定索引处的数据数组元素。
        另请参见:
        setElem(int, int)setElem(int, int, int)
      • setElem

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

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

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

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

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

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

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

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

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

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