- java.lang.Object
-
- java.awt.image.DataBuffer
-
- 已知直接子类:
-
DataBufferByte
,DataBufferDouble
,DataBufferFloat
,DataBufferInt
,DataBufferShort
,DataBufferUShort
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来存储图像数据。- 另请参见:
-
Raster
,SampleModel
-
-
字段汇总
字段 变量和类型 字段 描述 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设置指定库中的请求数据数组元素。
-
-
-
构造方法详细信息
-
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)
- 参数
-
bank
- 指定的银行 -
i
- 请求的数据数组元素的索引 - 结果
- 一个浮点值,表示指定索引处指定库中的数据数组元素。
- 另请参见:
-
setElemFloat(int, float)
,setElemFloat(int, int, float)
-
setElemFloat
public void setElemFloat(int i, float val)
- 参数
-
i
- 指定的索引 -
val
- 在数据数组中的指定索引处设置元素的值 - 另请参见:
-
getElemFloat(int)
,getElemFloat(int, int)
-
setElemFloat
public void setElemFloat(int bank, int i, float val)
- 参数
-
bank
- 指定的银行 -
i
- 指定的索引 -
val
- 在数据数组中的指定索引处设置指定库中的元素的值 - 另请参见:
-
getElemFloat(int)
,getElemFloat(int, int)
-
getElemDouble
public double getElemDouble(int i)
- 参数
-
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)
- 参数
-
i
- 指定的索引 -
val
- 在数据数组中的指定索引处设置元素的值 - 另请参见:
-
getElemDouble(int)
,getElemDouble(int, int)
-
setElemDouble
public void setElemDouble(int bank, int i, double val)
- 参数
-
bank
- 指定的银行 -
i
- 指定的索引 -
val
- 在数据数组的指定索引处设置指定库中的元素的值 - 另请参见:
-
getElemDouble(int)
,getElemDouble(int, int)
-
-