java.lang.Object
java.awt.image.DataBuffer
- 直接已知的子类:
-
DataBufferByte
,DataBufferDouble
,DataBufferFloat
,DataBufferInt
,DataBufferShort
,DataBufferUShort
此类用于包装一个或多个数据数组。DataBuffer 中的每个数据数组称为一个 bank。存在用于获取和设置 DataBuffer 的 bank 中元素的访问器方法,有的带有 bank 指定符,有的不带。不带 bank 指定符的方法使用默认的第 0 个 bank。DataBuffer 可以选择每个 bank 的偏移量,以便即使感兴趣的数据不从数组位置零开始,也可以使用现有数组中的数据。获取或设置 bank 的第 0 个元素,使用数组的 (0+offset) 个元素。size 字段指定数据数组中有多少可用于使用。对于给定 bank,size + offset 不应大于关联数据数组的长度。数据缓冲区的数据类型指示数据数组的类型,还可以指示其他附加语义,例如在字节数组的元素中存储无符号 8 位数据。数据类型可以是 TYPE_UNDEFINED 或下面定义的类型之一。将来可能会添加其他类型。通常,DataBuffer 类的对象将被转换为其特定数据类型的子类之一,以访问特定于数据类型的方法,以提高性能。目前,Java 2D(tm) API 图像类使用 TYPE_BYTE、TYPE_USHORT、TYPE_INT、TYPE_SHORT、TYPE_FLOAT 和 TYPE_DOUBLE DataBuffers 来存储图像数据。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionprotected int
此 DataBuffer 中的 bank 数量。protected int
此 DataBuffer 的数据类型。protected int
从默认(第一个)bank 中获取第一个元素的偏移量。protected int[]
所有 bank 的偏移量。protected int
所有 bank 的可用大小。static final int
无符号字节数据的标记。static final int
双精度数据的标记。static final int
浮点数据的标记。static final int
整数数据的标记。static final int
有符号短整数数据的标记。static final int
未定义数据的标记。static final int
无符号短整数数据的标记。 -
Constructor Summary
ModifierConstructorDescriptionprotected
DataBuffer
(int dataType, int size) 构造一个包含指定数据类型和大小的一个 bank 的 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) 构造一个包含指定数量的 bank 的 DataBuffer。 -
Method Summary
Modifier and TypeMethodDescriptionint
返回此 DataBuffer 的数据类型。static int
getDataTypeSize
(int type) 返回给定数据类型标记的数据类型的大小(以位为单位)。int
getElem
(int i) 作为整数返回来自第一个(默认)bank 的请求的数据数组元素。abstract int
getElem
(int bank, int i) 作为整数返回来自指定 bank 的请求的数据数组元素。double
getElemDouble
(int i) 作为双精度返回来自第一个(默认)bank 的请求的数据数组元素。double
getElemDouble
(int bank, int i) 作为双精度返回来自指定 bank 的请求的数据数组元素。float
getElemFloat
(int i) 作为浮点数返回来自第一个(默认)bank 的请求的数据数组元素。float
getElemFloat
(int bank, int i) 作为浮点数返回来自指定 bank 的请求的数据数组元素。int
返回此 DataBuffer 中的 bank 数量。int
返回数组元素中默认 bank 的偏移量。int[]
返回所有 bank 的偏移量(以数组元素为单位)。int
getSize()
返回所有 bank 的大小(以数组元素为单位)。void
setElem
(int i, int val) 从给定整数设置第一个(默认)bank 中的请求的数据数组元素。abstract void
setElem
(int bank, int i, int val) 从给定整数设置指定 bank 中的请求的数据数组元素。void
setElemDouble
(int i, double val) 从给定双精度设置第一个(默认)bank 中的请求的数据数组元素。void
setElemDouble
(int bank, int i, double val) 从给定双精度设置指定 bank 中的请求的数据数组元素。void
setElemFloat
(int i, float val) 从给定浮点数设置第一个(默认)bank 中的请求的数据数组元素。void
setElemFloat
(int bank, int i, float val) 从给定浮点数设置指定 bank 中的请求的数据数组元素。
-
Field Details
-
TYPE_BYTE
无符号字节数据的标记。- 参见:
-
TYPE_USHORT
无符号短整数数据的标记。- 参见:
-
TYPE_SHORT
有符号短整数数据的标记。- 参见:
-
TYPE_INT
整数数据的标记。- 参见:
-
TYPE_FLOAT
浮点数据的标记。- 参见:
-
TYPE_DOUBLE
双精度数据的标记。- 参见:
-
TYPE_UNDEFINED
未定义数据的标记。- 参见:
-
dataType
protected int dataType此 DataBuffer 的数据类型。 -
banks
protected int banks此 DataBuffer 中的 bank 数量。 -
offset
protected int offset从默认(第一个)bank 中获取第一个元素的偏移量。 -
size
protected int size所有 bank 的可用大小。 -
offsets
protected int[] offsets所有 bank 的偏移量。
-
-
Constructor Details
-
DataBuffer
protected DataBuffer(int dataType, int size) 构造一个包含指定数据类型和大小的一个 bank 的 DataBuffer。- 参数:
-
dataType
- 此DataBuffer
的数据类型 -
size
- bank 的大小
-
DataBuffer
protected DataBuffer(int dataType, int size, int numBanks) 构造一个包含指定数量的 bank 的 DataBuffer。每个 bank 都具有指定的大小和偏移量为 0。- 参数:
-
dataType
- 此DataBuffer
的数据类型 -
size
- bank 的大小 -
numBanks
- 此DataBuffer
中的 bank 数量
-
DataBuffer
protected DataBuffer(int dataType, int size, int numBanks, int offset) 构造一个包含指定数量的 bank 的 DataBuffer。每个 bank 都具有指定的数据类型、大小和偏移量。- 参数:
-
dataType
- 此DataBuffer
的数据类型 -
size
- bank 的大小 -
numBanks
- 此DataBuffer
中的 bank 数量 -
offset
- 每个 bank 的偏移量
-
DataBuffer
protected DataBuffer(int dataType, int size, int numBanks, int[] offsets) 构造一个包含指定数量的 bank 的 DataBuffer。每个 bank 都具有指定的数据类型和大小。每个 bank 的偏移量由其在偏移量数组中的相应条目指定。- 参数:
-
dataType
- 此DataBuffer
的数据类型 -
size
- bank 的大小 -
numBanks
- 此DataBuffer
中的 bank 数量 -
offsets
- 包含每个 bank 的偏移量的数组 - 抛出:
-
ArrayIndexOutOfBoundsException
- 如果numBanks
不等于offsets
的长度
-
-
Method Details
-
getDataTypeSize
public static int getDataTypeSize(int type) 返回给定数据类型标记的数据类型的大小(以位为单位)。- 参数:
-
type
- 定义的数据类型标记之一的值 - 返回:
- 数据类型的大小
- 抛出:
-
IllegalArgumentException
- 如果type
小于零或大于TYPE_DOUBLE
-
getDataType
public int getDataType()返回此 DataBuffer 的数据类型。- 返回:
-
此
DataBuffer
的数据类型。
-
getSize
public int getSize()返回所有 bank 的大小(以数组元素为单位)。- 返回:
- 所有 bank 的大小。
-
getOffset
public int getOffset()返回数组元素中默认 bank 的偏移量。- 返回:
- 默认 bank 的偏移量。
-
getOffsets
public int[] getOffsets()返回所有 bank 的偏移量(以数组元素为单位)。- 返回:
- 所有 bank 的偏移量。
-
getNumBanks
public int getNumBanks()返回此 DataBuffer 中的 bank 数量。- 返回:
- bank 的数量。
-
getElem
public int getElem(int i) 作为整数返回来自第一个(默认)bank 的请求的数据数组元素。- 参数:
-
i
- 请求的数据数组元素的索引 - 返回:
- 指定索引处的数据数组元素。
- 参见:
-
getElem
public abstract int getElem(int bank, int i) 返回来自指定 bank 的请求的数据数组元素作为整数。- 参数:
-
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转换为整数并调用setElem(int, int)
。如果需要其他实现,子类可以重写此方法。- 参数:
-
i
- 指定的索引 -
val
- 要设置的数据数组中指定索引处的值 - 参见:
-
setElemFloat
public void setElemFloat(int bank, int i, float val) 以浮点数形式从给定浮点数设置指定银行中请求的数据数组元素。此类中的实现是将val转换为整数并调用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)转换为双精度浮点数。如果需要其他实现,子类可以重写此方法。- 参数:
-
bank
- 指定的银行 -
i
- 指定的索引 - 返回:
- 代表指定银行中指定索引处的数据数组元素的双精度浮点数值。
- 参见:
-
setElemDouble
public void setElemDouble(int i, double val) 以双精度浮点数形式从给定双精度数设置第一个(默认)银行中请求的数据数组元素。此类中的实现是将val转换为整数并调用setElem(int, int)
。如果需要其他实现,子类可以重写此方法。- 参数:
-
i
- 指定的索引 -
val
- 要设置的数据数组中指定索引处的值 - 参见:
-
setElemDouble
public void setElemDouble(int bank, int i, double val) 以双精度浮点数形式从给定双精度数设置指定银行中请求的数据数组元素。此类中的实现是将val转换为整数并调用setElem(int, int)
。如果需要其他实现,子类可以重写此方法。- 参数:
-
bank
- 指定的银行 -
i
- 指定的索引 -
val
- 要设置的数据数组中指定银行指定索引处的值 - 参见:
-