java.lang.Object
java.awt.image.DataBuffer
- 已知子类:
DataBufferByte
,DataBufferDouble
,DataBufferFloat
,DataBufferInt
,DataBufferShort
,DataBufferUShort
存在此类以包装一个或多个数据数组。 DataBuffer 中的每个数据数组都称为一个库。用于获取和设置 DataBuffer 的 bank 元素的访问器方法有和没有 bank 说明符。没有银行说明符的方法使用默认的第 0 银行。 DataBuffer 可以选择对每个存储体取一个偏移量,这样即使感兴趣的数据不是从数组位置零开始的,也可以使用现有数组中的数据。获取或设置银行的第 0 个元素,使用数组的第 (0+offset) 个元素。大小字段指定有多少数据数组可供使用。给定 bank 的大小 + 偏移量绝不能大于关联数据数组的长度。数据缓冲区的数据类型表示数据数组的类型,也可以表示额外的语义,例如在字节数组的元素中存储无符号的 8 位数据。数据类型可以是 TYPE_UNDEFINED 或下面定义的类型之一。将来可能会添加其他类型。通常,DataBuffer 类的对象将被向下转换为其数据类型特定的子类之一,以访问数据类型特定的方法以提高性能。目前,Java 2D(tm) API 图像类使用 TYPE_BYTE、TYPE_USHORT、TYPE_INT、TYPE_SHORT、TYPE_FLOAT 和 TYPE_DOUBLE 数据缓冲区来存储图像数据。
- 参见:
-
字段摘要
字段修饰符和类型Field描述protected int
此 DataBuffer 中的银行数量。protected int
此 DataBuffer 的数据类型。protected int
从中获取第一个元素的默认(第一个)银行的偏移量。protected int[]
抵消所有银行。protected int
所有银行的可用大小。static final int
无符号字节数据的标记。static final int
双数据标记。static final int
浮动数据的标记。static final int
int 数据的标记。static final int
签名短数据的标记。static final int
未定义数据的标记。static final int
无符号短数据的标记。 -
构造方法总结
构造方法修饰符构造方法描述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。 -
方法总结
修饰符和类型方法描述int
返回此 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
返回此 DataBuffer 中的银行数量。int
返回数组元素中默认银行的偏移量。int[]
返回所有银行的偏移量(在数组元素中)。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
无符号字节数据的标记。- 参见:
-
TYPE_USHORT
无符号短数据的标记。- 参见:
-
TYPE_SHORT
签名短数据的标记。- 参见:
-
TYPE_INT
int 数据的标记。- 参见:
-
TYPE_FLOAT
浮动数据的标记。- 参见:
-
TYPE_DOUBLE
双数据标记。- 参见:
-
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) 构造一个包含指定数量银行的 DataBuffer。每个 bank 都有指定的大小和 0 的偏移量。- 参数:
dataType
- 这个DataBuffer
的数据类型size
- 银行的规模numBanks
- 这个DataBuffer
中的银行数量
-
DataBuffer
protected DataBuffer(int dataType, int size, int numBanks, int offset) 构造一个包含指定数量银行的 DataBuffer。每个 bank 都有指定的数据类型、大小和偏移量。- 参数:
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
- 请求的数据数组元素的索引- 返回:
- 指定索引处的数据数组元素。
- 参见:
-
getElem
public abstract int getElem(int bank, int i) 以整数形式从指定银行返回请求的数据数组元素。- 参数:
bank
- 指定银行i
- 请求的数据数组元素的索引- 返回:
- 来自指定索引处指定银行的指定索引处的数据数组元素。
- 参见:
-
setElem
public void setElem(int i, int val) 根据给定整数在第一个(默认)库中设置请求的数据数组元素。- 参数:
i
- 数据数组的指定索引val
- 设置数据数组中指定索引处元素的数据- 参见:
-
setElem
public abstract void setElem(int bank, int i, int val) 根据给定整数设置指定银行中请求的数据数组元素。- 参数:
bank
- 指定银行i
- 数据数组的指定索引val
- 在数据数组的指定索引处设置指定库中元素的数据- 参见:
-
getElemFloat
public float getElemFloat(int i) 以浮点数形式从第一个(默认)银行返回请求的数据数组元素。此类中的实现是将 getElem(i) 转换为浮点数。如果需要另一个实现,子类可以重写此方法。- 参数:
i
- 请求的数据数组元素的索引- 返回:
- 表示指定索引处的数据数组元素的浮点值。
- 参见:
-
getElemFloat
public float getElemFloat(int bank, int i) 以浮点数形式从指定银行返回请求的数据数组元素。此类中的实现是将getElem(int, int)
转换为浮点数。如果需要另一个实现,子类可以覆盖此方法。- 参数:
bank
- 指定银行i
- 请求的数据数组元素的索引- 返回:
- 一个浮点值,表示指定索引处指定银行的数据数组元素。
- 参见:
-
setElemFloat
public void setElemFloat(int i, float val) 根据给定的浮点数在第一个(默认)组中设置请求的数据数组元素。此类中的实现是将 val 转换为 int 并调用setElem(int, int)
。如果需要另一个实现,子类可以覆盖此方法。- 参数:
i
- 指定索引val
- 设置数据数组中指定索引处元素的值- 参见:
-
setElemFloat
public void setElemFloat(int bank, int i, float val) 从给定的浮点数设置指定银行中请求的数据数组元素。此类中的实现是将 val 转换为 int 并调用setElem(int, int)
。如果需要另一个实现,子类可以覆盖此方法。- 参数:
bank
- 指定银行i
- 指定索引val
- 在数据数组的指定索引处设置指定库中元素的值- 参见:
-
getElemDouble
public double getElemDouble(int i) 以双精度形式从第一个(默认)银行返回请求的数据数组元素。此类中的实现是将getElem(int)
转换为双精度数。如果需要另一个实现,子类可以覆盖此方法。- 参数:
i
- 指定索引- 返回:
- 一个双精度值,表示数据数组中指定索引处的元素。
- 参见:
-
getElemDouble
public double getElemDouble(int bank, int i) 以双精度形式从指定银行返回请求的数据数组元素。此类中的实现是将 getElem(bank, i) 转换为 double。如果需要另一个实现,子类可以重写此方法。- 参数:
bank
- 指定银行i
- 指定索引- 返回:
- 一个双精度值,表示数据数组中指定索引处指定银行的元素。
- 参见:
-
setElemDouble
public void setElemDouble(int i, double val) 从给定的双精度设置第一个(默认)银行中请求的数据数组元素。此类中的实现是将 val 转换为 int 并调用setElem(int, int)
。如果需要另一个实现,子类可以覆盖此方法。- 参数:
i
- 指定索引val
- 设置数据数组中指定索引处元素的值- 参见:
-
setElemDouble
public void setElemDouble(int bank, int i, double val) 从给定的双精度设置指定银行中请求的数据数组元素。此类中的实现是将 val 转换为 int 并调用setElem(int, int)
。如果需要另一个实现,子类可以覆盖此方法。- 参数:
bank
- 指定银行i
- 指定索引val
- 在数据数组的指定索引处设置指定库中元素的值- 参见:
-