java.lang.Object java.awt.image.DataBuffer
public abstract class DataBuffer
此类用于包装一个或多个数据数组。DataBuffer 中的每个数据数组都可称作存储单元。获取或设置 DataBuffer 的存储单元中元素的存取方法可以有也可以没有存储单元标识符。没有存储单元标识符的方法使用默认的 0 号存储单元。DataBuffer 可以采用可选的每存储单元偏移量,以便现有数组中的数据即使所需数据不是从数组位置 0 开始也可以使用。要获取或设置存储单元的 0 号元素,请使用数组的 (0+offset) 号元素。size 字段指定数据数组中有多少元素可供使用。给定存储单元的 size + offset 永远不应该大于相关数据数组的长度。数据缓冲区的数据类型指示数据数组的类型,还可以指示其他语义,例如,在字节数组的元素中存储无符号 8 位数据。数据类型可以是 TYPE_UNDEFINED,也可以是下面定义的类型之一。其他类型可以在将来添加。通常,类 DataBuffer 的对象将强制转换为其数据类型的特定子类之一来访问数据类型的特定方法以便改善性能。当前,Java 2D(tm) API 图像类使用 TYPE_BYTE、TYPE_USHORT、TYPE_INT、TYPE_SHORT、TYPE_FLOAT 和 TYPE_DOUBLE DataBuffer 存储图像数据。
Raster
,
SampleModel
字段摘要 | |
---|---|
protected int |
banks 此 DataBuffer 中存储单元的数量。 |
protected int |
dataType 此 DataBuffer 的数据类型。 |
protected int |
offset 默认(第一个)存储单元的偏移量,从中可获得第一个元素。 |
protected int[] |
offsets 所有存储单元的偏移量。 |
protected int |
size 所有存储单元的可用大小。 |
static int |
TYPE_BYTE 无符号 byte 数据的标记 |
static int |
TYPE_DOUBLE double 数据的标记。 |
static int |
TYPE_FLOAT float 数据的标记。 |
static int |
TYPE_INT int 数据的标记。 |
static int |
TYPE_SHORT 有符号 short 数据的标记。 |
static int |
TYPE_UNDEFINED 未定义数据的标记。 |
static int |
TYPE_USHORT 无符号 short 数据的标记 |
构造方法摘要 | |
---|---|
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 |
getDataType() 返回此 DataBuffer 的数据类型。 |
static int |
getDataTypeSize(int type) 返回由给定 datatype 标记所代表的数据类型的大小(以位为单位)。 |
int |
getElem(int i) 以整数类型返回第一个(默认)存储单元中所请求的数据数组元素。 |
abstract int |
getElem(int bank, int i) 以整数类型返回指定存储单元中所请求的数据数组元素。 |
double |
getElemDouble(int i) 以 double 类型返回第一个(默认)存储单元中所请求的数据数组元素。 |
double |
getElemDouble(int bank, int i) 以 double 类型返回指定存储单元所请求的数据数组元素。 |
float |
getElemFloat(int i) 以 float 类型返回第一个(默认)存储单元中所请求的数据数组元素。 |
float |
getElemFloat(int bank, int i) 以 float 类型返回指定存储单元中所请求的数据数组元素。 |
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) 根据给定的 double 设置第一个(默认)存储单元中所请求的数据数组元素。 |
void |
setElemDouble(int bank, int i, double val) 根据给定的 double 设置指定存储单元中所请求的数据数组元素。 |
void |
setElemFloat(int i, float val) 根据给定的 float 设置第一个(默认)存储单元中所请求的数据数组元素。 |
void |
setElemFloat(int bank, int i, float val) 根据给定的 float 设置指定存储单元中所请求的数据数组元素。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public static final int TYPE_BYTE
public static final int TYPE_USHORT
public static final int TYPE_SHORT
public static final int TYPE_INT
public static final int TYPE_FLOAT
public static final int TYPE_DOUBLE
public static final int TYPE_UNDEFINED
protected int dataType
protected int banks
protected int offset
protected int size
protected int[] offsets
构造方法详细信息 |
---|
protected DataBuffer(int dataType, int size)
dataType
- 此
DataBuffer
的数据类型
size
- 存储单元的大小
protected DataBuffer(int dataType, int size, int numBanks)
dataType
- 此
DataBuffer
的数据类型
size
- 存储单元的大小
numBanks
- 此
DataBuffer
中存储单元的数量。
protected DataBuffer(int dataType, int size, int numBanks, int offset)
dataType
- 此
DataBuffer
的数据类型
size
- 存储单元的大小
numBanks
- 此
DataBuffer
中存储单元的数量
offset
- 每个存储单元的偏移量
protected DataBuffer(int dataType, int size, int numBanks, int[] offsets)
dataType
- 此
DataBuffer
的数据类型
size
- 存储单元的大小
numBanks
- 此
DataBuffer
中的存储单元数
offsets
- 包含每个存储单元的偏移量的数组。
ArrayIndexOutOfBoundsException
- 如果
numBanks
不等于
offsets
的长度
方法详细信息 |
---|
public static int getDataTypeSize(int type)
type
- 已定义的 datatype 标记之一的值
IllegalArgumentException
- 如果
type
小于零或大于
TYPE_DOUBLE
public int getDataType()
DataBuffer
的数据类型。
public int getSize()
public int getOffset()
public int[] getOffsets()
public int getNumBanks()
public int getElem(int i)
i
- 所请求的数据数组元素的索引
setElem(int, int)
,
setElem(int, int, int)
public abstract int getElem(int bank, int i)
bank
- 指定的存储单元
i
- 所请求的数据数组元素的索引
setElem(int, int)
,
setElem(int, int, int)
public void setElem(int i, int val)
i
- 数据数组中的指定索引
val
- 用来在数据数组中指定索引处设置元素的数据
getElem(int)
,
getElem(int, int)
public abstract void setElem(int bank, int i, int val)
bank
- 指定的存储单元
i
- 数据数组中的指定索引
val
- 用来在数据数组中指定索引处的指定存储单元中设置元素的数据
getElem(int)
,
getElem(int, int)
public float getElemFloat(int i)
i
- 所请求的数据数组元素的索引
setElemFloat(int, float)
,
setElemFloat(int, int, float)
public float getElemFloat(int bank, int i)
getElem(int, int)
强制转换为 float。如果需要其他实现,则子类可以重写此方法。
bank
- 指定的存储单元
i
- 所请求的数据数组元素的索引
setElemFloat(int, float)
,
setElemFloat(int, int, float)
public void setElemFloat(int i, float val)
setElem(int, int)
。如果需要其他实现,则子类可以重写此方法。
i
- 指定的索引
val
- 用来在数据数组中指定索引处设置元素的值
getElemFloat(int)
,
getElemFloat(int, int)
public void setElemFloat(int bank, int i, float val)
setElem(int, int)
。如果需要其他实现,则子类可以重写此方法。
bank
- 指定的存储单元
i
- 指定的索引
val
- 用来在数据数组中指定索引处的指定存储单元中设置元素的值
getElemFloat(int)
,
getElemFloat(int, int)
public double getElemDouble(int i)
getElem(int)
强制转换为 double。如果需要其他实现,则子类可以重写此方法。
i
- 指定的索引
setElemDouble(int, double)
,
setElemDouble(int, int, double)
public double getElemDouble(int bank, int i)
bank
- 指定的存储单元
i
- 指定的索引
setElemDouble(int, double)
,
setElemDouble(int, int, double)
public void setElemDouble(int i, double val)
setElem(int, int)
。如果需要其他实现,则子类可以重写此方法。
i
- 指定的索引
val
- 用来在数据数组中的指定索引处设置元素的值
getElemDouble(int)
,
getElemDouble(int, int)
public void setElemDouble(int bank, int i, double val)
setElem(int, int)
。如果需要其他实现,则子类可以重写此方法。
bank
- 指定的存储单元
i
- 指定的索引
val
- 用来在数据数组的指定存储单元中的指定索引处进行设置的数值
getElemDouble(int)
,
getElemDouble(int, int)