- 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 intbanks此DataBuffer中的存储区数。protected intdataTypeDataBuffer的数据类型。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无符号短数据标签。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedDataBuffer(int dataType, int size)构造一个包含指定数据类型和大小的一行的DataBuffer。protectedDataBuffer(int dataType, int size, int numBanks)构造一个包含指定数量的存储区的DataBuffer。protectedDataBuffer(int dataType, int size, int numBanks, int offset)构造包含指定数量的存储区的DataBuffer。protectedDataBuffer(int dataType, int size, int numBanks, int[] offsets)构造一个包含指定数量的存储区的DataBuffer。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 intgetDataType()返回此DataBuffer的数据类型。static intgetDataTypeSize(int type)给出数据类型标签的数据类型的大小(以位为单位)。intgetElem(int i)从第一个(默认)库返回所请求的数据数组元素作为整数。abstract intgetElem(int bank, int i)从指定的库返回所请求的数据数组元素作为整数。doublegetElemDouble(int i)从第一个(默认)库返回所请求的数据数组元素作为双精度。doublegetElemDouble(int bank, int i)将所请求的数据数组元素从指定的库返回为双精度。floatgetElemFloat(int i)作为浮点数从第一个(默认)库返回请求的数据数组元素。floatgetElemFloat(int bank, int i)以浮点形式从指定的库返回所请求的数据数组元素。intgetNumBanks()返回此DataBuffer中的存储区数。intgetOffset()返回数组元素中默认库的偏移量。int[]getOffsets()返回所有银行的偏移量(在数组元素中)。intgetSize()返回所有存储区的大小(以数组为单位)。voidsetElem(int i, int val)从给定的整数设置第一个(默认)库中的请求的数据数组元素。abstract voidsetElem(int bank, int i, int val)从给定的整数设置指定库中的请求的数据数组元素。voidsetElemDouble(int i, double val)从给定的双数设置第一个(默认)库中的请求的数据数组元素。voidsetElemDouble(int bank, int i, double val)从给定的双精度设置指定库中的请求数据数组元素。voidsetElemFloat(int i, float val)从给定的浮点数在第一个(默认)库中设置所请求的数据数组元素。voidsetElemFloat(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)
-
-