模块  java.desktop
软件包  java.awt.image

Class DataBuffer

  • 已知直接子类:
    DataBufferByteDataBufferDoubleDataBufferFloatDataBufferIntDataBufferShortDataBufferUShort

    public abstract class DataBuffer
    extends Object
    此类用于包装一个或多个数据数组。 DataBuffer中的每个数据数组都称为bank。 获取和设置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
    • 字段汇总

      字段  
      变量和类型 字段 描述
      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
      标记未签名的短数据。
    • 构造方法摘要

      构造方法  
      变量 构造器 描述
      protected DataBuffer​(int dataType, int size)
      构造一个DataBuffer,其中包含一个指定数据类型和大小的存储区。
      protected DataBuffer​(int dataType, int size, int numBanks)
      构造一个包含指定数量的bank的DataBuffer。
      protected DataBuffer​(int dataType, int size, int numBanks, int offset)
      构造一个包含指定数量的bank的DataBuffer。
      protected DataBuffer​(int dataType, int size, int numBanks, int[] offsets)
      构造一个包含指定数量的库的DataBuffer。
    • 方法摘要

      所有方法  静态方法  实例方法 抽象方法  具体的方法 
      变量和类型 方法 描述
      int getDataType()
      返回此DataBuffer的数据类型。
      static int getDataTypeSize​(int type)
      给定数据类型标记,返回数据类型的大小(以位为单位)。
      int getElem​(int i)
      以整数形式从第一个(默认)存储区返回请求的数据数组元素。
      abstract int getElem​(int bank, int i)
      以整数形式返回指定存储单元中所请求的数据数组元素。
      double getElemDouble​(int i)
      从第一个(默认)bank返回请求的数据数组元素作为double。
      double getElemDouble​(int bank, int i)
      以double形式返回指定bank中请求的数据数组元素。
      float getElemFloat​(int i)
      以float形式从第一个(默认)bank返回请求的数据数组元素。
      float getElemFloat​(int bank, int i)
      以float形式返回指定bank中请求的数据数组元素。
      int getNumBanks()
      返回此DataBuffer中的库数。
      int getOffset()
      返回数组元素中默认bank的偏移量。
      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)
      在给定double中的第一个(默认)存储区中设置请求的数据数组元素。
      void setElemDouble​(int bank, int i, double val)
      从给定的double设置指定库中的请求数据数组元素。
      void setElemFloat​(int i, float val)
      从给定的float中设置第一个(默认)库中请求的数据数组元素。
      void setElemFloat​(int bank, int i, float val)
      从给定的float设置指定库中的请求数据数组元素。
    • 字段详细信息

      • 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_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)
        构造一个包含指定数量的bank的DataBuffer。 每个银行都有指定的大小和0的偏移量。
        参数
        dataType - 此 DataBuffer的数据类型
        size - 银行的规模
        numBanks - 此 DataBuffer的银行 DataBuffer
      • DataBuffer

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

        protected DataBuffer​(int dataType,
                             int size,
                             int numBanks,
                             int[] offsets)
        构造一个包含指定数量的库的DataBuffer。 每个银行都具有指定的数据类型和大小。 每个库的偏移量由其在偏移量数组中的相应条目指定。
        参数
        dataType - 此 DataBuffer的数据类型
        size - 银行的规模
        numBanks - 这个 DataBuffer的银行 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()
        返回数组元素中默认bank的偏移量。
        结果
        默认银行的偏移量。
      • 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)
        以float形式从第一个(默认)bank返回请求的数据数组元素。 这个类中的实现是将getElem(i)强制转换为float。 如果需要另一个实现,子类可以重写此方法。
        参数
        i - 请求的数据数组元素的索引
        结果
        表示指定索引处的数据数组元素的float值。
        另请参见:
        setElemFloat(int, float)setElemFloat(int, int, float)
      • getElemFloat

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

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

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

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

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

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

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