JavaTM 2 Platform
Standard Ed. 5.0

java.awt.image
类 DataBuffer

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 号元素,请使用数组的 (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
 

字段详细信息

TYPE_BYTE

public static final int TYPE_BYTE
无符号 byte 数据的标记

另请参见:
常量字段值

TYPE_USHORT

public static final int TYPE_USHORT
无符号 short 数据的标记

另请参见:
常量字段值

TYPE_SHORT

public static final int TYPE_SHORT
有符号 short 数据的标记。供将来使用的占位符。

另请参见:
常量字段值

TYPE_INT

public static final int TYPE_INT
int 数据的标记。

另请参见:
常量字段值

TYPE_FLOAT

public static final int TYPE_FLOAT
float 数据的标记。供将来使用的占位符。

另请参见:
常量字段值

TYPE_DOUBLE

public static final int TYPE_DOUBLE
double 数据的标记。供将来使用的占位符。

另请参见:
常量字段值

TYPE_UNDEFINED

public static final int 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。每个存储单元都有指定的大小和 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)
返回由给定 datatype 标记所代表的数据类型的大小(以位为单位)。

参数:
type - 已定义的 datatype 标记之一的值
返回:
数据类型的大小
抛出:
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)
以 float 类型返回第一个(默认)存储单元中所请求的数据数组元素。此类中的实现是将 getElem(i) 强制转换为 float。如果需要其他实现,则子类可以重写此方法。

参数:
i - 所请求的数据数组元素的索引
返回:
表示指定索引处数据数组元素的 float 值。
另请参见:
setElemFloat(int, float), setElemFloat(int, int, float)

getElemFloat

public float getElemFloat(int bank,
                          int i)
以 float 类型返回指定存储单元中所请求的数据数组元素。此类中的实现是将 getElem(int, int) 强制转换为 float。如果需要其他实现,则子类可以重写此方法。

参数:
bank - 指定的存储单元
i - 所请求的数据数组元素的索引
返回:
表示指定索引处指定存储单元中的数据数组元素的 float 值。
另请参见:
setElemFloat(int, float), setElemFloat(int, int, float)

setElemFloat

public void setElemFloat(int i,
                         float val)
根据给定的 float 设置第一个(默认)存储单元中所请求的数据数组元素。此类中的实现是将 val 强制转换为 int 并调用 setElem(int, int)。如果需要其他实现,则子类可以重写此方法。

参数:
i - 指定的索引
val - 用来在数据数组中指定索引处设置元素的值
另请参见:
getElemFloat(int), getElemFloat(int, int)

setElemFloat

public void setElemFloat(int bank,
                         int i,
                         float val)
根据给定的 float 设置指定存储单元中所请求的数据数组元素。此类中的实现是将 val 强制转换为 int 并调用 setElem(int, int)。如果需要其他实现,则子类可以重写此方法。

参数:
bank - 指定的存储单元
i - 指定的索引
val - 用来在数据数组中指定索引处的指定存储单元中设置元素的值
另请参见:
getElemFloat(int), getElemFloat(int, int)

getElemDouble

public double getElemDouble(int i)
以 double 类型返回第一个(默认)存储单元中所请求的数据数组元素。此类中的实现是将 getElem(int) 强制转换为 double。如果需要其他实现,则子类可以重写此方法。

参数:
i - 指定的索引
返回:
代表数据数组中指定索引处的元素的 double。
另请参见:
setElemDouble(int, double), setElemDouble(int, int, double)

getElemDouble

public double getElemDouble(int bank,
                            int i)
以 double 类型返回指定存储单元所请求的数据数组元素。此类中的实现是将 getElem(bank, i) 强制转换为 double。如果需要其他实现,则子类可以重写此方法。

参数:
bank - 指定的存储单元
i - 指定的索引
返回:
表示数据数组中指定索引处的指定存储单元中元素的 double 值。
另请参见:
setElemDouble(int, double), setElemDouble(int, int, double)

setElemDouble

public void setElemDouble(int i,
                          double val)
根据给定的 double 设置第一个(默认)存储单元中所请求的数据数组元素。此类中的实现是将 val 强制转换为 int 并调用 setElem(int, int)。如果需要其他实现,则子类可以重写此方法。

参数:
i - 指定的索引
val - 用来在数据数组中的指定索引处设置元素的值
另请参见:
getElemDouble(int), getElemDouble(int, int)

setElemDouble

public void setElemDouble(int bank,
                          int i,
                          double val)
根据给定的 double 设置指定存储单元中所请求的数据数组元素。此类中的实现是将 val 强制转换为 int 并调用 setElem(int, int)。如果需要其他实现,则子类可以重写此方法。

参数:
bank - 指定的存储单元
i - 指定的索引
val - 用来在数据数组的指定存储单元中的指定索引处进行设置的数值
另请参见:
getElemDouble(int), getElemDouble(int, int)

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策