|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.image
类 WritableRaster
java.lang.Object java.awt.image.Raster java.awt.image.WritableRaster
-
public class WritableRaster
- extends Raster
此类扩展了 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 |
构造方法详细信息 |
---|
WritableRaster
protected WritableRaster(SampleModel sampleModel, Point origin)
-
构造具有给定 SampleModel 的 WritableRaster。WritableRaster 的左上角为原点,其大小与 SampleModel 相同。自动创建一个大小足以描述 WritableRaster 的 DataBuffer。
- 参数:
-
sampleModel
- 指定布局的 SampleModel。 -
origin
- 指定原点的 Point。 - 抛出:
-
RasterFormatException
- 如果origin.x + sampleModel.getWidth()
或者origin.y + sampleModel.getHeight()
的计算结果整数溢出
WritableRaster
protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
-
构造具有给定 SampleModel 和 DataBuffer 的 WritableRaster。WritableRaster 的左上角为原点,其大小与 SampleModel 相同。DataBuffer 是未初始化的,它必须与 SampleModel 兼容。
- 参数:
-
sampleModel
- 指定布局的 SampleModel。 -
dataBuffer
- 包含图像数据的 DataBuffer。 -
origin
- 指定原点的 Point。 - 抛出:
-
RasterFormatException
- 如果origin.x + sampleModel.getWidth()
或origin.y + sampleModel.getHeight()
的计算结果整数溢出
WritableRaster
protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, WritableRaster parent)
-
构造具有给定 SampleModel、DataBuffer 和父亲的 WritableRaster。aRegion 指定新 Raster 的边界矩形。当向基 Raster 的坐标系统转换时,基 Raster 必须包含 aRegion。(基 Raster 是 Raster 的祖先,它没有父亲)sampleModelTranslate 指定新 Raster 的 sampleModelTranslateX 值和 sampleModelTranslateY 值。 注意,此构造方法通常应该由其他构造方法或创建方法调用,不应该直接使用。
- 参数:
-
sampleModel
- 指定布局的 SampleModel。 -
dataBuffer
- 包含图像数据的 DataBuffer。 -
aRegion
- 指定图像区域的 Rectangle。 -
sampleModelTranslate
- 指定从 SampleModel 向 Raster 进行坐标转换的 Point。 -
parent
- 此 raster 的父亲(如果有)。 - 抛出:
-
RasterFormatException
- 如果aRegion
的宽度和高度小于等于 0,或者aRegion.x + aRegion.width
或aRegion.y + aRegion.height
的计算结果整数溢出
方法详细信息 |
---|
getWritableParent
public WritableRaster getWritableParent()
- 返回此 WritableRaster 的父 WritableRaster(如果有),否则返回 null。
-
- 返回:
-
此
WritableRaster
的父亲,或null
。
createWritableTranslatedChild
public WritableRaster createWritableTranslatedChild(int childMinX, int childMinY)
- 在不同的位置上创建一个与此 WritableRaster 具有相同大小、SampleModel 和 DataBuffer 的 WritableRaster。新 WritableRaster 将具有对当前 WritableRaster 的引用,可以通过其 getParent() 和 getWritableParent() 方法进行访问。
-
- 参数:
-
childMinX
- 新 Raster 左上角的 X 坐标。 -
childMinY
- 新 Raster 左上角的 Y 坐标。 - 返回:
-
除了指定的位置不同外,与此
WritableRaster
相同的WritableRaster
。 - 抛出:
-
RasterFormatException
- 如果childMinX + this.getWidth()
或childMinY + this.getHeight()
的计算结果整数溢出
createWritableChild
public WritableRaster createWritableChild(int parentX, int parentY, int w, int h, int childMinX, int childMinY, int[] bandList)
-
返回新的 WritableRaster,它共享此 WritableRaster 的全部或部分 DataBuffer。新 WritableRaster 将具有对当前 WritableRaster 的引用,可以通过其 getParent() 和 getWritableParent() 方法进行访问。
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
中任何一个的计算结果整数溢出
setDataElements
public void setDataElements(int x, int y, Object inData)
- 为类型 TransferType 基本数组中的单个像素设置数据。对于 Java 2D(tm) API 所支持的图像数据,这将是 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE 中的一个。数组中的数据可以是打包的格式,从而提高数据传输的效率。如果坐标不在边界内部,或者 inData 的大小不够容纳像素数据,则会抛出 ArrayIndexOutOfBoundsException。但是,不保证显示的边界检查。如果输入对象不为 null 且引用 TransferType 数组之外的任何数组,则会抛出 ClassCastException。
-
- 参数:
-
x
- 像素位置的 X 坐标。 -
y
- 像素位置的 Y 坐标。 -
inData
- 引用类型数组的对象,该类型由 getTransferType() 定义,并且其长度 getNumDataElements() 包含到 x,y 位置的像素数据。 - 抛出:
-
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部,或者 inData 太小不能容纳输入。 - 另请参见:
-
SampleModel.setDataElements(int, int, Object, DataBuffer)
setDataElements
public void setDataElements(int x, int y, Raster inRaster)
- 为输入 Raster 中的像素矩形设置数据。输入的 Raster 必须与此 WritableRaster 兼容,即它们必须具有相同的 band,对应 band 的每个样本必须具有相同的位数,TransferType 和 NumDataElement 必须相同,并且 getDataElements/setDataElements 使用的打包方式必须一致。如果坐标不在边界内部,则可能会抛出 ArrayIndexOutOfBoundsException。但是,不保证显示的边界检查。
-
- 参数:
-
x
- 像素位置的 X 坐标。 -
y
- 像素位置的 Y 坐标。 -
inRaster
- 包含 x,y 位置数据的 Raster。 - 抛出:
-
NullPointerException
- 如果 inRaster 为 null。 -
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内部。