- java.lang.Object
-
- java.awt.image.DataBuffer
-
- 已知直接子类:
-
DataBufferByte
,DataBufferDouble
,DataBufferFloat
,DataBufferInt
,DataBufferShort
,DataBufferUShort
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来存储图像数据。- 另请参见:
-
Raster
,SampleModel
-
-
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_BYTE
@Native public static final int TYPE_BYTE
标记无符号字节数据。- 另请参见:
- Constant Field Values
-
TYPE_USHORT
@Native public static final int TYPE_USHORT
无符号短数据标签。- 另请参见:
- Constant Field Values
-
TYPE_SHORT
@Native public static final int TYPE_SHORT
标记签名的短数据。 占位符,供将来使用。- 另请参见:
- Constant Field Values
-
TYPE_INT
@Native public static final int TYPE_INT
标签为int数据。- 另请参见:
- 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
-
TYPE_UNDEFINED
@Native public static final int TYPE_UNDEFINED
标记未定义的数据。- 另请参见:
- 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)
- 参数
-
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)
将所请求的数据数组元素从指定的库返回为双精度。 这个类的实现是将getElem(bank,i)转换成一个double。 如果需要另一个实现,子类可以重写此方法。- 参数
-
bank
- 指定银行 -
i
- 指定的索引 - 结果
- 表示来自数据数组中指定索引处的指定库的元素的双精度值。
- 另请参见:
-
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)
-
-