- 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 intbanks此DataBuffer中的库数。protected intdataType此DataBuffer的数据类型。protected intoffset偏移到默认(第一个)存储区,从中获取第一个元素。protected int[]offsets抵消所有银行。protected intsize所有银行的可用规模。static intTYPE_BYTE标记无符号字节数据。static intTYPE_DOUBLE标记双数据。static intTYPE_FLOAT标记浮点数据。static intTYPE_INT标记int数据。static intTYPE_SHORT标记已签名的短数据。static intTYPE_UNDEFINED标记未定义的数据。static intTYPE_USHORT标记未签名的短数据。
-
构造方法摘要
构造方法 变量 构造器 描述 protectedDataBuffer(int dataType, int size)构造一个DataBuffer,其中包含一个指定数据类型和大小的存储区。protectedDataBuffer(int dataType, int size, int numBanks)构造一个包含指定数量的bank的DataBuffer。protectedDataBuffer(int dataType, int size, int numBanks, int offset)构造一个包含指定数量的bank的DataBuffer。protectedDataBuffer(int dataType, int size, int numBanks, int[] offsets)构造一个包含指定数量的库的DataBuffer。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 intgetDataType()返回此DataBuffer的数据类型。static intgetDataTypeSize(int type)给定数据类型标记,返回数据类型的大小(以位为单位)。intgetElem(int i)以整数形式从第一个(默认)存储区返回请求的数据数组元素。abstract intgetElem(int bank, int i)以整数形式返回指定存储单元中所请求的数据数组元素。doublegetElemDouble(int i)从第一个(默认)bank返回请求的数据数组元素作为double。doublegetElemDouble(int bank, int i)以double形式返回指定bank中请求的数据数组元素。floatgetElemFloat(int i)以float形式从第一个(默认)bank返回请求的数据数组元素。floatgetElemFloat(int bank, int i)以float形式返回指定bank中请求的数据数组元素。intgetNumBanks()返回此DataBuffer中的库数。intgetOffset()返回数组元素中默认bank的偏移量。int[]getOffsets()返回所有库的偏移量(在数组元素中)。intgetSize()返回所有库的大小(在数组元素中)。voidsetElem(int i, int val)从给定的整数设置第一个(默认)库中请求的数据数组元素。abstract voidsetElem(int bank, int i, int val)从给定的整数设置指定库中的请求数据数组元素。voidsetElemDouble(int i, double val)在给定double中的第一个(默认)存储区中设置请求的数据数组元素。voidsetElemDouble(int bank, int i, double val)从给定的double设置指定库中的请求数据数组元素。voidsetElemFloat(int i, float val)从给定的float中设置第一个(默认)库中请求的数据数组元素。voidsetElemFloat(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)
-
-