public class WritableRaster extends Raster
这个类的构造函数是受保护的。 要实例化WritableRaster,请在Raster类中使用createWritableRaster工厂方法之一。
dataBuffer, height, minX, minY, numBands, numDataElements, parent, sampleModel, sampleModelTranslateX, sampleModelTranslateY, width
Modifier | Constructor and Description |
---|---|
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。
|
Modifier and Type | Method and Description |
---|---|
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 |
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)
从输入光栅设置像素矩形的数据。
|
void |
setPixel(int x, int y, double[] dArray)
在DataBuffer中使用双重样本数组来设置像素。
|
void |
setPixel(int x, int y, float[] fArray)
使用用于输入的样本的浮点数组来设置DataBuffer中的像素。
|
void |
setPixel(int x, int y, int[] iArray)
使用int数组的样本数据来设置DataBuffer中的一个像素。
|
void |
setPixels(int x, int y, int w, int h, double[] dArray)
从包含每个数组元素一个样本的双数组中设置一个像素矩形的所有样本。
|
void |
setPixels(int x, int y, int w, int h, float[] fArray)
从包含每个数组元素一个样本的浮点数组设置一个像素矩形的所有样本。
|
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)
对于位于DataBuffer中(x,y)处的像素的指定带中的样本,使用双倍的输入。
|
void |
setSample(int x, int y, int b, float s)
使用浮点数为DataBuffer设置位于(x,y)处的像素的指定波段的样本。
|
void |
setSample(int x, int y, int b, int s)
使用int作为输入,为DataBuffer中位于(x,y)处的像素的指定波段设置一个样本。
|
void |
setSamples(int x, int y, int w, int h, int b, double[] dArray)
从包含每个数组元素一个样本的双阵列的像素的指定矩形中设置样本。
|
void |
setSamples(int x, int y, int w, int h, int b, float[] fArray)
从包含每个数组元素一个样本的浮点数组中为指定的像素矩形设置指定带中的样本。
|
void |
setSamples(int x, int y, int w, int h, int b, int[] iArray)
从包含每个数组元素一个样本的int数组中为指定的像素矩形设置指定带中的样本。
|
createBandedRaster, createBandedRaster, createBandedRaster, createChild, createCompatibleWritableRaster, createCompatibleWritableRaster, createCompatibleWritableRaster, createCompatibleWritableRaster, createInterleavedRaster, createInterleavedRaster, createInterleavedRaster, createPackedRaster, createPackedRaster, createPackedRaster, createPackedRaster, createRaster, createTranslatedChild, createWritableRaster, createWritableRaster, getBounds, getDataBuffer, getDataElements, getDataElements, getHeight, getMinX, getMinY, getNumBands, getNumDataElements, getParent, getPixel, getPixel, getPixel, getPixels, getPixels, getPixels, getSample, getSampleDouble, getSampleFloat, getSampleModel, getSampleModelTranslateX, getSampleModelTranslateY, getSamples, getSamples, getSamples, getTransferType, getWidth
protected WritableRaster(SampleModel sampleModel, Point origin)
sampleModel
- 指定布局的SampleModel。
origin
- 指定原点的点。
RasterFormatException
- 如果计算
origin.x + sampleModel.getWidth()
或
origin.y + sampleModel.getHeight()
导致整数溢出
protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
sampleModel
- 指定布局的SampleModel。
dataBuffer
- 包含图像数据的DataBuffer。
origin
- 指定原点的点。
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到光栅坐标的转换的点。
parent
- 此栅格的父(如果有)。
RasterFormatException
- 如果
aRegion
的宽度或高度小于或等于零,或计算
aRegion.x + aRegion.width
或
aRegion.y + aRegion.height
导致整数溢出
public WritableRaster getWritableParent()
WritableRaster
的父母,或
null
。
public WritableRaster createWritableTranslatedChild(int childMinX, int childMinY)
childMinX
- X光栅左上角的X坐标。
childMinY
- 新栅格左上角的Y坐标。
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)相同的像素。
可以通过bandList参数将新的WritableRaster定义为仅包含当前WritableRaster的可能重新排序的带的子集。 如果bandList为null,则将其当前WritableRaster的所有频带包含在当前顺序中。
要创建一个新的WritableRaster,它包含当前WritableRaster的子区域,但共享其坐标系和带,则该方法应该被调用,childMinX等于parentX,childMinY等于parentY,bandList等于null。
parentX
- 这个WritableRaster坐标中左上角的X坐标。
parentY
- 此WritableRaster坐标中左上角的Y坐标。
w
- 从(parentX,parentY)开始的区域的宽度。
h
- 从(parentX,parentY)开始的区域的高度。
childMinX
- 返回的WritableRaster的左上角的X坐标。
childMinY
- 返回的WritableRaster的左上角的Y坐标。
bandList
- 频带索引的数组,或为使用所有频带的null。
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()定义的类型的数组的对象引用和包含要放置在x,y处的像素数据的长度getNumDataElements()。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者如果inData太小,不能容纳输入。
SampleModel.setDataElements(int, int, Object, DataBuffer)
public void setDataElements(int x, int y, Raster inRaster)
x
- 像素位置的X坐标。
y
- 像素位置的Y坐标。
inRaster
- 光栅包含x,y处的数据。
NullPointerException
- 如果
NullPointerException
为空。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内。
public void setDataElements(int x, int y, int w, int h, Object inData)
x
- 左上角像素位置的X坐标。
y
- 左上角像素位置的Y坐标。
w
- 像素矩形的宽度。
h
- 像素矩形的高度。
inData
- 由getTransferType()定义的类型的数组的对象引用,以及包含x,y和x + w-1,y + h-1之间的像素数据的长度w * h * getNumDataElements()的对象引用。
NullPointerException
- 如果inData为空。
ArrayIndexOutOfBoundsException
- 如果坐标不是边界,或者inData太小,不能容纳输入。
SampleModel.setDataElements(int, int, int, int, Object, DataBuffer)
public void setRect(Raster srcRaster)
如果源和目标光栅的所有样本都是整数型,小于或等于32位,则调用此方法相当于对所有x,y
两个光栅中有效的地址执行以下代码。
Raster srcRaster; WritableRaster dstRaster; for (int b = 0; b < srcRaster.getNumBands(); b++) { dstRaster.setSample(x, y, b, srcRaster.getSample(x, y, b)); }
因此,当将积分型源复制到整体型目的地时,如果源样本大小大于特定频带的目的地采样大小,则源样本的高位将被截断。
如果源样本大小小于特定频带的目的地大小,则目标的高阶位将根据srcRaster的SampleModel将该样本视为有符号或无符号数量进行零扩展或符号扩展。
将浮点数或双源复制到整数型目的地时,将将每个源样本转换为目标类型。 当将积分类型的源复制到浮点或双目标时,首先将源转换为32位int(如有必要),使用上述的积分类型的规则,然后将int转换为float或double。
srcRaster
- 从中复制像素的栅格。
NullPointerException
- 如果srcRaster为空。
public void setRect(int dx, int dy, Raster srcRaster)
setRect(Raster)
。
dx
- 从src空间到副本的dst空间的X翻译因子。
dy
- 从src空间到副本的dst空间的Y翻译因子。
srcRaster
- 复制像素的栅格。
NullPointerException
- 如果srcRaster为空。
public void setPixel(int x, int y, int[] iArray)
x
- 像素位置的X坐标。
y
- 像素位置的Y坐标。
iArray
- int数组中的输入样本。
NullPointerException
- 如果iArray为空。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者如果iArray太小,不能容纳输入。
public void setPixel(int x, int y, float[] fArray)
x
- 像素位置的X坐标。
y
- 像素位置的Y坐标。
fArray
- 一个float数组中的输入样本。
NullPointerException
- 如果fArray为空。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者如果fArray太小,不能容纳输入。
public void setPixel(int x, int y, double[] dArray)
x
- 像素位置的X坐标。
y
- 像素位置的Y坐标。
dArray
- 双数组中的输入样本。
NullPointerException
- 如果dArray为空。
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为空。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者如果iArray太小,不能容纳输入。
public void setPixels(int x, int y, int w, int h, float[] fArray)
x
- 左上角像素位置的X坐标。
y
- 左上角像素位置的Y坐标。
w
- 像素矩形的宽度。
h
- 像素矩形的高度。
fArray
- 输入浮点像素数组。
NullPointerException
- 如果fArray为空。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者如果fArray太小,不能容纳输入。
public void setPixels(int x, int y, int w, int h, double[] dArray)
x
- 左上角像素位置的X坐标。
y
- 左上角像素位置的Y坐标。
w
- 像素矩形的宽度。
h
- 像素矩形的高度。
dArray
- 输入双像素阵列。
NullPointerException
- 如果dArray为空。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者如果dArray太小,不能容纳输入。
public void setSample(int x, int y, int b, int s)
x
- 像素位置的X坐标。
y
- 像素位置的Y坐标。
b
- 乐队设定。
s
- 输入样本。
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内。
public void setSample(int x, int y, int b, float s)
x
- 像素位置的X坐标。
y
- 像素位置的Y坐标。
b
- 乐队设定。
s
- 输入样本为浮点数。
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内。
public void setSample(int x, int y, int b, double s)
x
- 像素位置的X坐标。
y
- 像素位置的Y坐标。
b
- 乐队设置。
s
- 输入样本为双倍。
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内。
public void setSamples(int x, int y, int w, int h, int b, int[] iArray)
x
- 左上角像素位置的X坐标。
y
- 左上角像素位置的Y坐标。
w
- 像素矩形的宽度。
h
- 像素矩形的高度。
b
- 乐队设置。
iArray
- 输入int样本数组。
NullPointerException
- 如果iArray为空。
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内,或者如果iArray太小而不能容纳输入。
public void setSamples(int x, int y, int w, int h, int b, float[] fArray)
x
- 左上角像素位置的X坐标。
y
- 左上角像素位置的Y坐标。
w
- 像素矩形的宽度。
h
- 像素矩形的高度。
b
- 乐队设置。
fArray
- 输入float样本数组。
NullPointerException
- 如果fArray为空。
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内,或者如果fArray太小而不能容纳输入。
public void setSamples(int x, int y, int w, int h, int b, double[] dArray)
x
- 左上角像素位置的X坐标。
y
- 左上角像素位置的Y坐标。
w
- 像素矩形的宽度。
h
- 像素矩形的高度。
b
- 乐队设置。
dArray
- 输入双样本数组。
NullPointerException
- 如果dArray为空。
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内,或者如果dArray太小而不能容纳输入。