|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.image.Raster java.awt.image.WritableRaster
public class WritableRaster
此类扩展了 Raster 以提供像素写入功能。关于 Raster 如何存储像素的描述,请参阅 Raster 的类注释。
此类的构造方法声明为 protected。要实例化 WritableRaster,需使用 Raster 类中的一个 createWritableRaster 工厂方法。
字段摘要 |
---|
从类 java.awt.image.Raster 继承的字段 |
---|
dataBuffer, height, minX, minY, numBands, numDataElements, parent, sampleModel, sampleModelTranslateX, sampleModelTranslateY, width |
构造方法摘要 | |
---|---|
protected |
WritableRaster(SampleModel sampleModel,
DataBuffer dataBuffer,
Point origin)
构造具有给定 SampleModel 和 DataBuffer 的 WritableRaster。 |
protected |
WritableRaster(SampleModel sampleModel,
DataBuffer dataBuffer,
Rectangle aRegion,
Point sampleModelTranslate,
WritableRaster parent)
构造具有给定 SampleModel、DataBuffer 和父亲的 WritableRaster。 |
protected |
WritableRaster(SampleModel sampleModel,
Point origin)
构造具有给定 SampleModel 的 WritableRaster。 |
方法摘要 | |
---|---|
WritableRaster |
createWritableChild(int parentX,
int parentY,
int w,
int h,
int childMinX,
int childMinY,
int[] bandList)
返回新的 WritableRaster,它共享此 WritableRaster 的全部或部分 DataBuffer。 |
WritableRaster |
createWritableTranslatedChild(int childMinX,
int childMinY)
在不同的位置上创建一个与此 WritableRaster 具有相同大小、SampleModel 和 DataBuffer 的 WritableRaster。 |
WritableRaster |
getWritableParent()
返回此 WritableRaster 的父 WritableRaster(如果有),否则返回 null。 |
void |
setDataElements(int x,
int y,
int w,
int h,
Object inData)
为类型 TransferType 基本数组中的像素矩形设置数据。 |
void |
setDataElements(int x,
int y,
Object inData)
为类型 TransferType 基本数组中的单个像素设置数据。 |
void |
setDataElements(int x,
int y,
Raster inRaster)
为输入 Raster 中的像素矩形设置数据。 |
void |
setPixel(int x,
int y,
double[] dArray)
使用输入样本的 double 型数组设置 DataBuffer 中的像素。 |
void |
setPixel(int x,
int y,
float[] fArray)
使用输入样本的 float 型数组设置 DataBuffer 中的像素。 |
void |
setPixel(int x,
int y,
int[] iArray)
使用输入样本的 int 型数组设置 DataBuffer 中的像素。 |
void |
setPixels(int x,
int y,
int w,
int h,
double[] dArray)
为每个数组元素包含一个样本的 double 型数组中的像素矩形设置所有样本。 |
void |
setPixels(int x,
int y,
int w,
int h,
float[] fArray)
为每个数组元素包含一个样本的 float 型数组中的像素矩形设置所有样本。 |
void |
setPixels(int x,
int y,
int w,
int h,
int[] iArray)
为每个数组元素包含一个样本的 int 型数组中的像素矩形设置所有样本。 |
void |
setRect(int dx,
int dy,
Raster srcRaster)
将像素从 Raster srcRaster 复制到此 WritableRaster。 |
void |
setRect(Raster srcRaster)
将像素从 Raster srcRaster 复制到此 WritableRaster。 |
void |
setSample(int x,
int y,
int b,
double s)
使用 double 型的输入样本,在指定 band 中为位于 DataBuffer 中 (x,y) 位置的像素设置样本。 |
void |
setSample(int x,
int y,
int b,
float s)
使用 float 型的输入样本,在指定 band 中为位于 DataBuffer 中 (x,y) 位置的像素设置样本。 |
void |
setSample(int x,
int y,
int b,
int s)
使用 int 型的输入样本,在指定 band 中为位于 DataBuffer 中 (x,y) 位置的像素设置样本。 |
void |
setSamples(int x,
int y,
int w,
int h,
int b,
double[] dArray)
为每个数组元素包含一个样本的 double 型数组中指定的像素矩形在指定 band 中设置样本。 |
void |
setSamples(int x,
int y,
int w,
int h,
int b,
float[] fArray)
为每个数组元素包含一个样本的 float 型数组中指定的像素矩形在指定 band 中设置样本。 |
void |
setSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray)
为每个数组元素包含一个样本的 int 型数组中指定的像素矩形在指定 band 中设置样本。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
protected WritableRaster(SampleModel sampleModel, Point origin)
sampleModel
- 指定布局的 SampleModel。origin
- 指定原点的 Point。
RasterFormatException
- 如果 origin.x + sampleModel.getWidth()
或者 origin.y + sampleModel.getHeight()
的计算结果整数溢出protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
sampleModel
- 指定布局的 SampleModel。dataBuffer
- 包含图像数据的 DataBuffer。origin
- 指定原点的 Point。
RasterFormatException
- 如果 origin.x + sampleModel.getWidth()
或 origin.y + sampleModel.getHeight()
的计算结果整数溢出protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, WritableRaster parent)
sampleModel
- 指定布局的 SampleModel。dataBuffer
- 包含图像数据的 DataBuffer。aRegion
- 指定图像区域的 Rectangle。sampleModelTranslate
- 指定从 SampleModel 向 Raster 进行坐标转换的 Point。parent
- 此 raster 的父亲(如果有)。
RasterFormatException
- 如果 aRegion
的宽度和高度小于等于 0,或者 aRegion.x + aRegion.width
或 aRegion.y + aRegion.height
的计算结果整数溢出方法详细信息 |
---|
public WritableRaster getWritableParent()
WritableRaster
的父亲,或 null
。public WritableRaster createWritableTranslatedChild(int childMinX, int childMinY)
childMinX
- 新 Raster 左上角的 X 坐标。childMinY
- 新 Raster 左上角的 Y 坐标。
WritableRaster
相同的 WritableRaster
。
RasterFormatException
- 如果 childMinX + this.getWidth()
或 childMinY + this.getHeight()
的计算结果整数溢出public WritableRaster createWritableChild(int parentX, int parentY, int w, int h, int childMinX, int childMinY, int[] bandList)
parentX、parentY、width 和 height 参数在此 WritableRaster 坐标空间中形成一个 Rectangle,指示要共享的像素区域。如果此 Rectangle 没有包含在当前 WritableRaster 的边界内部,则会抛出错误。
新 WritableRaster 可以另外转换到与当前 WritableRaster 不同的平面坐标系统中。childMinX 和 childMinY 参数给定返回的 WritableRaster 左上角像素的新 (x, y) 坐标;新 WritableRaster 的坐标 (childMinX, childMinY) 将映射到当前 WritableRaster 中相同像素的坐标 (parentX, parentY)。
新 WritableRaster 可以定义为只包含当前 WritableRaster band 的一个子集,该子集可能通过 bandList 参数进行了重新排序。如果 bandList 为 null,则它将以其当前顺序包含当前 WritableRaster 的所有 band。
要创建新的 WritableRaster,使其包含当前 WritableRaster 的子区域,但共享其坐标系和 band,此方法在调用时应该令 childMinX 等于 parentX,childMinY 等于 parentY 且 bandList 为 null。
parentX
- 此 WritableRaster 坐标中左上角的 X 坐标。parentY
- 此 WritableRaster 坐标中左上角的 Y 坐标。w
- 从 (parentX, parentY) 开始的区域宽度。w
- 从 (parentX, parentY) 开始的区域高度。childMinX
- 返回的 WritableRaster 左上角的 X 坐标。childMinY
- 返回的 WritableRaster 左上角的 Y 坐标。bandList
- band 的索引数组,取 null 则使用所有 band。
WritableRaster
,它共享此 WritableRaster
全部或部分 DataBuffer
。
RasterFormatException
- 如果子区域位于光栅边界的外部。
RasterFormatException
- 如果 w
或 h
小于等于 0,或者 parentX + w
、parentY + h
、childMinX + w
或 childMinY + h
中任何一个的计算结果整数溢出public void setDataElements(int x, int y, Object inData)
x
- 像素位置的 X 坐标。y
- 像素位置的 Y 坐标。inData
- 引用类型数组的对象,该类型由 getTransferType() 定义,并且其长度 getNumDataElements() 包含到 x,y 位置的像素数据。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部,或者 inData 太小不能容纳输入。SampleModel.setDataElements(int, int, Object, DataBuffer)
public void setDataElements(int x, int y, Raster inRaster)
x
- 像素位置的 X 坐标。y
- 像素位置的 Y 坐标。inRaster
- 包含 x,y 位置数据的 Raster。
NullPointerException
- 如果 inRaster 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部。public void setDataElements(int x, int y, int w, int h, Object inData)
x
- 左上角像素位置的 X 坐标。y
- 左上角像素位置的 Y 坐标。w
- 像素矩形的宽度。h
- 像素矩形的高度。inData
- 引用类型数组的对象,该类型是由 getTransferType() 定义的,并且它的长度 w*h*getNumDataElements() 包含 x,y 和 x+w-1, y+h-1 位置之间的像素数据。
NullPointerException
- 如果 inData 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部,或者 inData 太小不能容纳输入。SampleModel.setDataElements(int, int, int, int, Object, DataBuffer)
public void setRect(Raster srcRaster)
如果源 Raster 和目标 Raster 的所有样本都是整型,且大小小于等于 32 位,则调用此方法等价于对源 Raster 和目标 Raster 中所有有效的 x,y
地址执行以下代码。
Raster srcRaster; WritableRaster dstRaster; for (int b = 0; b < srcRaster.getNumBands(); b++) { dstRaster.setSample(x, y, b, srcRaster.getSample(x, y, b)); }因此,当将整型的源复制到整型的目标时,如果对于特定的 band 源样本大小大于目标样本大小,则源样本的高位将被截断。如果特定 band 的源样本大小小于目标样本大小,则根据 srcRaster 的 SampleModel 是将样本作为有符号的量还是无符号的量,对目标样本的高位进行零扩展(zero-extend)或符号扩展(sign-extend)。
当从一个 float 型或 double 型的源复制到整型的目标时,每个源样本强制转换为目标类型。当从整形的源复制到 float 型或 double 型的目标时,源首先使用上面的整型转换规则转换为 32-位的 int(如果需要的话),然后此 int 强制转换为 float 型或 double 型。
srcRaster
- 从其复制像素的 Raster。
NullPointerException
- 如果 srcRaster 为 null。public void setRect(int dx, int dy, Raster srcRaster)
setRect(Raster)
。
dx
- 从 src 空间复制到 dst 空间的 X 转换因子。dy
- 从 src 空间复制到 dst 空间的 Y 转换因子。srcRaster
- 从其复制像素的 Raster。
NullPointerException
- 如果 srcRaster 为 null。public void setPixel(int x, int y, int[] iArray)
x
- 像素位置的 X 坐标。y
- 像素位置的 Y 坐标。iArray
- 以 int 型数组表示的输入样本。
NullPointerException
- 如果 iArray 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部,或者 iArray 太小不能容纳输入。public void setPixel(int x, int y, float[] fArray)
x
- 像素位置的 X 坐标。y
- 像素位置的 Y 坐标。fArray
- 以 float 型数组表示的输入样本。
NullPointerException
- 如果 fArray 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部,或者 fArray 太小不能容纳输入。public void setPixel(int x, int y, double[] dArray)
x
- 像素位置的 X 坐标。y
- 像素位置的 Y 坐标。dArray
- 以 double 型数组表示的输入样本。
NullPointerException
- 如果 dArray 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部,或者 dArray 太小不能容纳输入。public void setPixels(int x, int y, int w, int h, int[] iArray)
x
- 左上角像素位置的 X 坐标。y
- 左上角像素位置的 Y 坐标。w
- 像素矩形的宽度。h
- 像素矩形的高度。iArray
- 输入的 int 像素数组。
NullPointerException
- 如果 iArray 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部,或者 iArray 太小不能容纳输入。public void setPixels(int x, int y, int w, int h, float[] fArray)
x
- 左上角像素位置的 X 坐标。y
- 左上角像素位置的 Y 坐标。w
- 像素矩形的宽度。h
- 像素矩形的高度。fArray
- 输入的 float 型像素数组。
NullPointerException
- 如果 fArray 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部,或者 fArray 太小不能容纳输入。public void setPixels(int x, int y, int w, int h, double[] dArray)
x
- 左上角像素位置的 X 坐标。y
- 左上角像素位置的 Y 坐标。w
- 像素矩形的宽度。h
- 像素矩形的高度。dArray
- 输入的 double 型数组。
NullPointerException
- 如果 dArray 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部,或者 dArray 太小不能容纳输入。public void setSample(int x, int y, int b, int s)
x
- 像素位置的 X 坐标。y
- 像素位置的 Y 坐标。b
- 要设置的 band。s
- 输入样本。
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内部。public void setSample(int x, int y, int b, float s)
x
- 像素位置的 X 坐标。y
- 像素位置的 Y 坐标。b
- 要设置的 band。s
- 以 float 的形式输入的样本。
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内部。public void setSample(int x, int y, int b, double s)
x
- 像素位置的 X 坐标。y
- 像素位置的 Y 坐标。b
- 要设置的 band。s
- 以 double 形式输入的样本。
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内部。public void setSamples(int x, int y, int w, int h, int b, int[] iArray)
x
- 左上角像素位置的 X 坐标。y
- 左上角像素位置的 Y 坐标。w
- 像素矩形的宽度。h
- 像素矩形的高度。b
- 要设置的 band。iArray
- 输入的 int 型样本数组。
NullPointerException
- 如果 iArray 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内部,或者 iArray 太小不能容纳输入。public void setSamples(int x, int y, int w, int h, int b, float[] fArray)
x
- 左上角像素位置的 X 坐标。y
- 左上角像素位置的 Y 坐标。w
- 像素矩形的宽度。h
- 像素矩形的高度。b
- 要设置的 band。fArray
- 输入的 float 型样本数组。
NullPointerException
- 如果 fArray 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内部,或者 fArray 太小不能容纳输入。public void setSamples(int x, int y, int w, int h, int b, double[] dArray)
x
- 左上角像素位置的 X 坐标。y
- 左上角像素位置的 Y 坐标。w
- 像素矩形的宽度。h
- 像素矩形的高度。b
- 要设置的 band。dArray
- 输入的 double 型样本数组。
NullPointerException
- 如果 dArray 为 null。
ArrayIndexOutOfBoundsException
- 如果坐标或 band 索引不在边界内,或者 dArray 太小不能容纳输入。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。