public class Raster extends Object
光栅定义占据平面的特定矩形区域的像素的值,不一定包括(0,0)。 被称为光栅的边界矩形并通过getBounds方法可用的矩形由minX,minY,width和height值定义。 minX和minY值定义栅格左上角的坐标。 对边界矩形外的像素的引用可能导致抛出异常,或者可能导致引用栅格相关联的DataBuffer的非预期元素。 用户有责任避免访问这些像素。
SampleModel描述了栅格的样本如何存储在DataBuffer的基元数组元素中。 样本可以像PixelInterleavedSampleModel或BandedSampleModel中的每个数据元素一样存储,或者将多个数据包装到一个元素中,如在SinglePixelPackedSampleModel或MultiPixelPackedSampleModel中。 SampleModel还控制样本是否进行符号扩展,允许将未签名的数据存储在已签名的Java数据类型(如byte,short和int)中。
虽然光栅可能存在于飞机上的任何位置,但是SampleModel使用从(0,0)开始的简单坐标系。 因此,栅格包含一个翻译因子,允许在栅格坐标系和SampleModel坐标系之间映射像素位置。 通过getSampleModelTranslateX和getSampleModelTranslateY方法可以从SampleModel坐标系转换为栅格的坐标系。
栅格可以通过显式构造或通过使用createChild和createTranslatedChild方法与另一个栅格共享DataBuffer。 通过这些方法创建的栅格可以通过getParent方法返回对其创建的栅格的引用。 对于没有通过调用createTranslatedChild或createChild构造的栅格,getParent将返回null。
createTranslatedChild方法返回一个新的Raster,它共享当前栅格的所有数据,但占用一个相同宽度和高度但具有不同起始点的边界矩形。 例如,如果父栅格占据了区域(10,10)到(100,100),并且被翻译的栅格被定义为在(50,50)处开始,则父像素(像素(20,20) 60,60)在两个Raster共享的DataBuffer中占据相同的位置。 在第一种情况下,应将(-10,-10)添加到像素坐标中以获得相应的SampleModel坐标,并且在第二种情况下(-50,-50)应该被添加。
父子节点之间的转换光栅可以通过从父节点的子像素中减去子样本的SampleModelTranslateX和sampleModelTranslateY值来确定。
createChild方法可以用于创建一个新的栅格,它只占据其父层的边界矩形(具有相同或翻译的坐标系)的子集,或者与其父层的子集。
所有构造函数都受到保护。 创建光栅的正确方法是使用此类中定义的静态创建方法之一。 这些方法创建使用标准交错,带状和打包样品模型的栅格实例,并且可以比通过组合外部生成的SampleModel和DataBuffer创建的栅格更有效地处理栅格。
Modifier and Type | Field and Description |
---|---|
protected DataBuffer |
dataBuffer
DataBuffer存储图像数据。
|
protected int |
height
这个光栅的高度。
|
protected int |
minX
此栅格左上角像素的X坐标。
|
protected int |
minY
此光栅左上角像素的Y坐标。
|
protected int |
numBands
光栅中的乐队数。
|
protected int |
numDataElements
每像素DataBuffer数据元素的数量。
|
protected Raster |
parent
此栅格的父项,或null。
|
protected SampleModel |
sampleModel
SampleModel描述了这个栅格的像素如何存储在DataBuffer中。
|
protected int |
sampleModelTranslateX
从Raster的SampleModel的坐标空间到光栅的X平移。
|
protected int |
sampleModelTranslateY
从Raster的SampleModel的坐标空间到栅格的坐标空间的Y翻译。
|
protected int |
width
这个光栅的宽度。
|
Modifier | Constructor and Description |
---|---|
protected |
Raster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
使用给定的SampleModel和DataBuffer构造光栅。
|
protected |
Raster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, Raster parent)
使用给定的SampleModel,DataBuffer和父构造栅格。
|
protected |
Raster(SampleModel sampleModel, Point origin)
使用给定的SampleModel构造光栅。
|
Modifier and Type | Method and Description |
---|---|
static WritableRaster |
createBandedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
根据指定的DataBuffer,width,height,scanline stride,bank index和band offsets创建一个基于BandedSampleModel的光栅。
|
static WritableRaster |
createBandedRaster(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
基于具有指定数据类型,宽度,高度,扫描线步长,银行索引和带偏移的BandedSampleModel创建光栅。
|
static WritableRaster |
createBandedRaster(int dataType, int w, int h, int bands, Point location)
根据具有指定数据类型,宽度,高度和频带数的BandedSampleModel创建栅格。
|
Raster |
createChild(int parentX, int parentY, int width, int height, int childMinX, int childMinY, int[] bandList)
返回一个新的Raster,它共享此Raster DataBuffer的全部或部分。
|
WritableRaster |
createCompatibleWritableRaster()
创建与此Raster相同大小的兼容WritableRaster,具有相同的SampleModel和新的初始化DataBuffer。
|
WritableRaster |
createCompatibleWritableRaster(int w, int h)
创建一个具有指定大小的兼容WritableRaster,一个新的SampleModel和一个新的初始化DataBuffer。
|
WritableRaster |
createCompatibleWritableRaster(int x, int y, int w, int h)
创建一个兼容的WritableRaster,具有指定的位置(minX,minY)和size(width,height),一个新的SampleModel和一个新的初始化的DataBuffer。
|
WritableRaster |
createCompatibleWritableRaster(Rectangle rect)
创建一个兼容的WritableRaster,它具有由rect指定的位置(minX,minY)和size(width,height),一个新的SampleModel和一个新的初始化的DataBuffer。
|
static WritableRaster |
createInterleavedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
基于具有指定DataBuffer,宽度,高度,扫描线步长,像素步幅和带偏移的PixelInterleavedSampleModel创建光栅。
|
static WritableRaster |
createInterleavedRaster(int dataType, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
基于具有指定数据类型,宽度,高度,扫描线步长,像素步长和带偏移的PixelInterleavedSampleModel创建光栅。
|
static WritableRaster |
createInterleavedRaster(int dataType, int w, int h, int bands, Point location)
基于具有指定数据类型,宽度,高度和频带数的PixelInterleavedSampleModel创建光栅。
|
static WritableRaster |
createPackedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bandMasks, Point location)
基于具有指定DataBuffer,宽度,高度,扫描线步长和带屏蔽的SinglePixelPackedSampleModel创建光栅。
|
static WritableRaster |
createPackedRaster(DataBuffer dataBuffer, int w, int h, int bitsPerPixel, Point location)
基于具有指定DataBuffer,宽度,高度和每像素位数的MultiPixelPackedSampleModel创建光栅。
|
static WritableRaster |
createPackedRaster(int dataType, int w, int h, int[] bandMasks, Point location)
基于具有指定数据类型,宽度,高度和带屏蔽的SinglePixelPackedSampleModel创建光栅。
|
static WritableRaster |
createPackedRaster(int dataType, int w, int h, int bands, int bitsPerBand, Point location)
根据指定的数据类型,宽度,高度,频带数和每个频段的位数,打包SampleModel创建光栅。
|
static Raster |
createRaster(SampleModel sm, DataBuffer db, Point location)
使用指定的SampleModel和DataBuffer创建光栅。
|
Raster |
createTranslatedChild(int childMinX, int childMinY)
创建一个具有相同大小的光栅,SampleModel和DataBuffer,但是具有不同的位置。
|
static WritableRaster |
createWritableRaster(SampleModel sm, DataBuffer db, Point location)
使用指定的SampleModel和DataBuffer创建WritableRaster。
|
static WritableRaster |
createWritableRaster(SampleModel sm, Point location)
使用指定的SampleModel创建WritableRaster。
|
Rectangle |
getBounds()
返回此栅格的边界矩形。
|
DataBuffer |
getDataBuffer()
返回与此栅格相关联的DataBuffer。
|
Object |
getDataElements(int x, int y, int w, int h, Object outData)
返回TransferType类型的原始数组中指定的像素矩形的像素数据。
|
Object |
getDataElements(int x, int y, Object outData)
返回TransferType类型的原始数组中单个像素的数据。
|
int |
getHeight()
返回栅格的高度(像素)。
|
int |
getMinX()
返回栅格的最小有效X坐标。
|
int |
getMinY()
返回栅格的最小有效Y坐标。
|
int |
getNumBands()
返回此光栅中的带数(每像素的样本数)。
|
int |
getNumDataElements()
返回通过getDataElements和setDataElements方法传输一个像素所需的数据元素数。
|
Raster |
getParent()
返回此栅格的父栅格(如果有)或null。
|
double[] |
getPixel(int x, int y, double[] dArray)
返回指定像素的double数组中的样本。
|
float[] |
getPixel(int x, int y, float[] fArray)
返回指定像素的float数组中的样本。
|
int[] |
getPixel(int x, int y, int[] iArray)
返回指定像素的int数组中的样本。
|
double[] |
getPixels(int x, int y, int w, int h, double[] dArray)
返回一个包含像素矩形的所有样本的双数组,每个数组元素一个样本。
|
float[] |
getPixels(int x, int y, int w, int h, float[] fArray)
返回一个float数组,其中包含一个像素矩形的所有样本,每个数组元素一个样本。
|
int[] |
getPixels(int x, int y, int w, int h, int[] iArray)
返回一个包含矩形像素的所有样本的int数组,每个数组元素一个样本。
|
int |
getSample(int x, int y, int b)
将位于(x,y)处的像素的指定带中的样本返回为int。
|
double |
getSampleDouble(int x, int y, int b)
将位于(x,y)的像素的指定带中的样本返回为双倍。
|
float |
getSampleFloat(int x, int y, int b)
将位于(x,y)处的像素的指定带中的样本作为浮点返回。
|
SampleModel |
getSampleModel()
返回描述图像数据布局的SampleModel。
|
int |
getSampleModelTranslateX()
从SampleModel的坐标系返回到Raster的X转换。
|
int |
getSampleModelTranslateY()
从SampleModel的坐标系返回到Raster的Y转换。
|
double[] |
getSamples(int x, int y, int w, int h, int b, double[] dArray)
返回双阵列中指定的像素矩形的指定波段的样本,每个数组元素一个样本。
|
float[] |
getSamples(int x, int y, int w, int h, int b, float[] fArray)
返回浮点数组中指定的像素矩形的指定波段的样本,每个数组元素一个样本。
|
int[] |
getSamples(int x, int y, int w, int h, int b, int[] iArray)
返回int数组中指定的像素矩形的指定带的样本,每个数组元素一个样本。
|
int |
getTransferType()
返回用于通过getDataElements和setDataElements方法传输像素的TransferType。
|
int |
getWidth()
返回栅格宽度(以像素为单位)。
|
protected SampleModel sampleModel
protected DataBuffer dataBuffer
protected int minX
protected int minY
protected int width
protected int height
protected int sampleModelTranslateX
protected int sampleModelTranslateY
protected int numBands
protected int numDataElements
protected Raster parent
protected Raster(SampleModel sampleModel, Point origin)
sampleModel
- 指定布局的SampleModel
origin
- 指定原点的点
RasterFormatException
- 如果计算
origin.x + sampleModel.getWidth()
或
origin.y + sampleModel.getHeight()
导致整数溢出
NullPointerException
-
sampleModel
或
origin
为null
protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
sampleModel
- 指定布局的SampleModel
dataBuffer
- 包含图像数据的DataBuffer
origin
- 指定原点的点
RasterFormatException
- 如果计算
origin.x + sampleModel.getWidth()
或
origin.y + sampleModel.getHeight()
导致整数溢出
NullPointerException
-
sampleModel
或
origin
为null
protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, Raster parent)
sampleModel
- 指定布局的SampleModel
dataBuffer
- 包含图像数据的DataBuffer
aRegion
- 指定图像区域的Rectangle
sampleModelTranslate
- 指定从SampleModel到光栅坐标的转换的点
parent
- 此栅格的父(如果有)
NullPointerException
如果任何-
sampleModel
,
dataBuffer
,
aRegion
或
sampleModelTranslate
为null
RasterFormatException
- 如果
aRegion
的宽度或高度小于或等于零,或计算
aRegion.x + aRegion.width
或
aRegion.y + aRegion.height
导致整数溢出
public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int bands, Point location)
光栅的左上角由位置参数给出。 如果位置为空,则使用(0,0)。 dataType参数应该是DataBuffer类中定义的枚举值之一。
请注意,不支持交错的DataBuffer.TYPE_INT
栅格。 要创建一个类型为DataBuffer.TYPE_INT
的1波段光栅,请使用Raster.createPackedRaster()。
目前唯一支持的数据类型是TYPE_BYTE和TYPE_USHORT。
dataType
- 存储样本的数据类型
w
- 图像数据的宽度(以像素为单位)
h
- 图像数据的高度(像素)
bands
- 乐队的数量
location
- 左上角的
Raster
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
location.x + w
或
location.y + h
导致整数溢出
public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
光栅的左上角由位置参数给出。 如果位置为空,则使用(0,0)。 dataType参数应该是DataBuffer类中定义的枚举值之一。
需要注意的是交错DataBuffer.TYPE_INT
栅格不被支持。 要创建一个类型为DataBuffer.TYPE_INT
的1波段光栅,请使用Raster.createPackedRaster()。
目前唯一支持的数据类型是TYPE_BYTE和TYPE_USHORT。
dataType
- 存储样本的数据类型
w
- 图像数据的宽度(像素)
h
- 图像数据的高度(像素)
scanlineStride
- 图像数据的行走
pixelStride
- 图像数据的像素步幅
bandOffsets
- 所有频段的偏移量
location
- 左上角的
Raster
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
location.x + w
或
location.y + h
导致整数溢出
IllegalArgumentException
- 如果
dataType
不是支持的数据类型之一,它们是
DataBuffer.TYPE_BYTE
或
DataBuffer.TYPE_USHORT
。
public static WritableRaster createBandedRaster(int dataType, int w, int h, int bands, Point location)
光栅的左上角由位置参数给出。 如果位置为空,则使用(0,0)。 dataType参数应该是DataBuffer类中定义的枚举值之一。
目前唯一支持的数据类型是TYPE_BYTE,TYPE_USHORT和TYPE_INT。
dataType
- 存储样本的数据类型
w
- 图像数据的宽度(以像素为单位)
h
- 图像数据的高度(像素)
bands
- 乐队的数量
location
-
Raster
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
location.x + w
或
location.y + h
导致整数溢出
ArrayIndexOutOfBoundsException
- 如果
bands
小于1
public static WritableRaster createBandedRaster(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
光栅的左上角由位置参数给出。 dataType参数应该是DataBuffer类中定义的枚举值之一。
目前唯一支持的数据类型是TYPE_BYTE,TYPE_USHORT和TYPE_INT。
dataType
- 存储样本的数据类型
w
- 图像数据的宽度(以像素为单位)
h
- 图像数据的高度(像素)
scanlineStride
- 图像数据的行走
bankIndices
- 每个乐队的银行指数
bandOffsets
- 所有频段的偏移量
location
- 左上角的
Raster
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
location.x + w
或
location.y + h
导致整数溢出
IllegalArgumentException
-如果
dataType
是不支持的数据类型,这是一个
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
或
DataBuffer.TYPE_INT
ArrayIndexOutOfBoundsException
- 如果
bankIndices
或
bandOffsets
是
null
public static WritableRaster createPackedRaster(int dataType, int w, int h, int[] bandMasks, Point location)
光栅的左上角由位置参数给出。 如果位置为空,则使用(0,0)。 dataType参数应该是DataBuffer类中定义的枚举值之一。
目前唯一支持的数据类型是TYPE_BYTE,TYPE_USHORT和TYPE_INT。
dataType
- 存储样品的数据类型
w
- 图像数据的宽度(以像素为单位)
h
- 图像数据的高度(像素)
bandMasks
- 一个包含每个频带的条目的数组
location
- 左上角的
Raster
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
location.x + w
或
location.y + h
导致整数溢出
IllegalArgumentException
-如果
dataType
是不支持的数据类型,这是一个
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
或
DataBuffer.TYPE_INT
public static WritableRaster createPackedRaster(int dataType, int w, int h, int bands, int bitsPerBand, Point location)
如果频带数多于一个,则SampleModel将为SinglePixelPackedSampleModel,每个频带都具有位数位数。 在任何一种情况下,必须满足相应SampleModel对dataType和bitsPerBand的要求。
光栅的左上角由位置参数给出。 如果位置为空,则使用(0,0)。 dataType参数应该是DataBuffer类中定义的枚举值之一。
目前唯一支持的数据类型是TYPE_BYTE,TYPE_USHORT和TYPE_INT。
dataType
- 存储样本的数据类型
w
- 图像数据的宽度(以像素为单位)
h
- 图像数据的高度(像素)
bands
- 乐队的数量
bitsPerBand
- 每个频段的位数
location
- 左上角的
Raster
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
location.x + w
或
location.y + h
导致整数溢出
IllegalArgumentException
- 如果
bitsPerBand
和
bands
的产品大于
dataType
IllegalArgumentException
- 如果
bitsPerBand
或
bands
不大于零
IllegalArgumentException
-如果
dataType
是不支持的数据类型,这是一个
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
或
DataBuffer.TYPE_INT
public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
请注意,不支持交错的DataBuffer.TYPE_INT
栅格。 要创建一个类型为DataBuffer.TYPE_INT
的1波段光栅,请使用Raster.createPackedRaster()。
dataBuffer
- 包含图像数据的
DataBuffer
w
- 图像数据的宽度(以像素为单位)
h
- 图像数据的高度(像素)
scanlineStride
- 图像数据的行走
pixelStride
- 图像数据的像素步幅
bandOffsets
- 所有频段的偏移量
location
- 左上角的
Raster
DataBuffer
,宽度,高度,扫描间距,像素间距和带偏移。
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
location.x + w
或
location.y + h
导致整数溢出
IllegalArgumentException
-如果
dataType
是不支持的数据类型,这是一个
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
RasterFormatException
- 如果
dataBuffer
有多个银行。
NullPointerException
- 如果
dataBuffer
为空
public static WritableRaster createBandedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
dataBuffer
- 包含图像数据的
DataBuffer
w
- 图像数据的宽度(以像素为单位)
h
- 图像数据的高度(像素)
scanlineStride
- 图像数据的行走
bankIndices
- 每个乐队的银行指数
bandOffsets
- 所有频段的偏移量
location
- 左上角的
Raster
DataBuffer
,宽度,高度,扫描行间距,存储单元索引和带偏移。
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
location.x + w
或
location.y + h
导致整数溢出
IllegalArgumentException
-如果
dataType
是不支持的数据类型,这是一个
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
或
DataBuffer.TYPE_INT
NullPointerException
- 如果
dataBuffer
为空
public static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bandMasks, Point location)
dataBuffer
- 包含图像数据的
DataBuffer
w
- 图像数据的宽度(以像素为单位)
h
- 图像数据的高度(以像素为单位)
scanlineStride
- 图像数据的行走
bandMasks
- 一个包含每个乐队条目的数组
location
- 左上角的
Raster
DataBuffer
,宽度,高度,扫描行间距和band掩码。
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
location.x + w
或
location.y + h
导致整数溢出
IllegalArgumentException
-如果
dataType
是不支持的数据类型,这是一个
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
或
DataBuffer.TYPE_INT
RasterFormatException
- 如果
dataBuffer
有多个银行。
NullPointerException
- 如果
dataBuffer
为空
public static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int bitsPerPixel, Point location)
dataBuffer
- 包含图像数据的
DataBuffer
w
- 图像数据的宽度(以像素为单位)
h
- 图像数据的高度(像素)
bitsPerPixel
- 每个像素的位数
location
- 左上角的
Raster
DataBuffer
,宽度,高度和每像素位数。
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
location.x + w
或
location.y + h
导致整数溢出
IllegalArgumentException
-如果
dataType
是不支持的数据类型,这是一个
DataBuffer.TYPE_BYTE
,
DataBuffer.TYPE_USHORT
或
DataBuffer.TYPE_INT
RasterFormatException
- 如果
dataBuffer
有多个银行。
NullPointerException
- 如果
dataBuffer
为null
public static Raster createRaster(SampleModel sm, DataBuffer db, Point location)
sm
- 指定的
SampleModel
db
- 指定的
DataBuffer
location
-
Raster
Raster
具有指定
SampleModel
,
DataBuffer
和位置。
RasterFormatException
- 如果计算
location.x + sm.getWidth()
或
location.y + sm.getHeight()
导致整数溢出
RasterFormatException
- 如果
db
有多个银行,并且
sm
是PixelInterleavedSampleModel,SinglePixelPackedSampleModel或MultiPixelPackedSampleModel。
NullPointerException
- 如果SampleModel或DataBuffer为null
public static WritableRaster createWritableRaster(SampleModel sm, Point location)
sm
- 指定的
SampleModel
location
- 左上角的
WritableRaster
WritableRaster
与指定的
SampleModel
和位置。
RasterFormatException
- 如果计算
location.x + sm.getWidth()
或
location.y + sm.getHeight()
导致整数溢出
public static WritableRaster createWritableRaster(SampleModel sm, DataBuffer db, Point location)
sm
- 指定的
SampleModel
db
- 指定的
DataBuffer
location
- 左上角的
WritableRaster
WritableRaster
具有指定
SampleModel
,
DataBuffer
和位置。
RasterFormatException
- 如果计算
location.x + sm.getWidth()
或
location.y + sm.getHeight()
导致整数溢出
RasterFormatException
- 如果
db
有多个银行,并且
sm
是PixelInterleavedSampleModel,SinglePixelPackedSampleModel或MultiPixelPackedSampleModel。
NullPointerException
- 如果SampleModel或DataBuffer为null
public Raster getParent()
null
或
null
。
public final int getSampleModelTranslateX()
public final int getSampleModelTranslateY()
public WritableRaster createCompatibleWritableRaster()
WritableRaster
。
public WritableRaster createCompatibleWritableRaster(int w, int h)
w
- 指定宽度的新的
WritableRaster
h
- 新的
WritableRaster
的指定高度
WritableRaster
兼容的WritableRaster和新的样本模型和数据缓冲区。
RasterFormatException
- 如果宽度或高度小于或等于零。
public WritableRaster createCompatibleWritableRaster(Rectangle rect)
rect
-一个
Rectangle
指定的大小和位置
WritableRaster
WritableRaster
具有指定大小和位置和一个新的采样模型和数据缓冲器。
RasterFormatException
- 如果
rect
的宽度或高度小于或等于零,或计算
rect.x + rect.width
或
rect.y + rect.height
导致整数溢出
NullPointerException
- 如果
rect
为空
public WritableRaster createCompatibleWritableRaster(int x, int y, int w, int h)
x
-
x
的X
WritableRaster
y
-
y
的Y
WritableRaster
w
- 指定宽度的
WritableRaster
h
- 指定高度的
WritableRaster
WritableRaster
具有指定大小和位置和一个新的采样模型和数据缓冲器。
RasterFormatException
- 如果
w
或
h
小于或等于零,或计算
x + w
或
y + h
导致整数溢出
public Raster createTranslatedChild(int childMinX, int childMinY)
childMinX
- 新的
Raster
左上角的X
Raster
childMinY
- 新的
Raster
左上角的Y
Raster
Raster
,SampleModel和DataBuffer这个
Raster
,但是具有指定的位置。
RasterFormatException
- 如果计算
childMinX + this.getWidth()
或
childMinY + this.getHeight()
导致整数溢出
public Raster createChild(int parentX, int parentY, int width, int height, int childMinX, int childMinY, int[] bandList)
parentX,parentY,width和height参数在此栅格坐标空间中形成一个Rectangle,指示要共享的像素面积。 如果此Rectangle不包含当前栅格的边界,将抛出一个错误。
新的光栅可以另外被转换为与当前光栅所使用的平面不同的坐标系。 childMinX和childMinY参数给出返回的Raster的左上角像素的新(x,y)坐标; 新栅格中的坐标(childMinX,childMinY)将映射到与当前栅格中的坐标(parentX,parentY)相同的像素。
新的栅格可以被定义为仅通过bandList参数仅包含当前栅格的可能重新排序的波段的子集。 如果bandList为null,则将其当前顺序包括当前栅格的所有频带。
要创建一个包含当前栅格的子区域的新栅格,但共享其坐标系和带,则该方法应该调用childMinX等于parentX,childMinY等于parentY,bandList等于null。
parentX
- 此栅格坐标中左上角的X坐标
parentY
- 此栅格坐标中左上角的Y坐标
width
- 从(parentX,parentY)开始的区域的宽度
height
- 从(parentX,parentY)开始的区域的高度。
childMinX
- 返回光栅左上角的X坐标
childMinY
- 返回光栅左上角的Y坐标
bandList
- 频带索引的数组,或使用所有频带的null
Raster
。
RasterFormatException
- 如果指定的子区域在栅格边界之外。
RasterFormatException
-如果
width
或
height
小于或等于0,或者计算任何的
parentX + width
,
parentY + height
,
childMinX + width
,或
childMinY + height
导致整数溢出
public Rectangle getBounds()
Raster
的边框。
public final int getMinX()
Raster
的最小x
Raster
。
public final int getMinY()
Raster
的最小y
Raster
。
public final int getWidth()
Raster
。
public final int getHeight()
Raster
的高度。
public final int getNumBands()
Raster
的乐队的
Raster
。
public final int getNumDataElements()
public final int getTransferType()
public DataBuffer getDataBuffer()
DataBuffer
的这个
Raster
。
public SampleModel getSampleModel()
SampleModel
的
Raster
。
public Object getDataElements(int x, int y, Object outData)
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
outData
- 由getTransferType()和length getNumDataElements()定义的类型数组的对象引用。
如果为null,则将分配适当类型和大小的数组
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者outData太小,不能保存输出。
SampleModel.getDataElements(int, int, Object, DataBuffer)
public Object getDataElements(int x, int y, int w, int h, Object outData)
x
- 左上角像素位置的X坐标
y
- 左上角像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
outData
- 由getTransferType()和length w * h * getNumDataElements()定义的类型数组的对象引用。
如果为null,则将分配适当类型和大小的数组。
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者outData太小,不能容纳输出。
SampleModel.getDataElements(int, int, int, int, Object, DataBuffer)
public int[] getPixel(int x, int y, int[] iArray)
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
iArray
- 可选的预先分配的int数组
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者如果iArray太小,不能容纳输出。
public float[] getPixel(int x, int y, float[] fArray)
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
fArray
- 可选的预分配浮点数组
ArrayIndexOutOfBoundsException
- 如果坐标不是边界,或者如果fArray太小,不能容纳输出。
public double[] getPixel(int x, int y, double[] dArray)
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
dArray
- 可选的预分配双阵列
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者如果dArray太小,不能保存输出。
public int[] getPixels(int x, int y, int w, int h, int[] iArray)
x
- 左上角像素位置的X坐标
y
- 左上角像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
iArray
- 可选预先分配的int数组
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者如果iArray太小,不能容纳输出。
public float[] getPixels(int x, int y, int w, int h, float[] fArray)
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
fArray
- 可选预先分配的浮点数组
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者如果fArray太小,不能容纳输出。
public double[] getPixels(int x, int y, int w, int h, double[] dArray)
x
- 左上角像素位置的X坐标
y
- 左上角像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
dArray
- 可选预先分配的双阵列
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者如果dArray太小,不能容纳输出。
public int getSample(int x, int y, int b)
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
b
- 乐队返回
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内。
public float getSampleFloat(int x, int y, int b)
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
b
- 乐队返回
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内。
public double getSampleDouble(int x, int y, int b)
x
- 像素位置的X坐标
y
- 像素位置的Y坐标
b
- 乐队返回
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内。
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray)
x
- 左上角像素位置的X坐标
y
- 左上角像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
b
- 乐队返回
iArray
- 可选预先分配的int数组
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界,或者如果iArray太小,不能容纳输出。
public float[] getSamples(int x, int y, int w, int h, int b, float[] fArray)
x
- 左上角像素位置的X坐标
y
- 左上角像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
b
- 乐队返回
fArray
- 一个可选的预先分配的浮点数组
ArrayIndexOutOfBoundsException
- 如果坐标或带索引不在边界内,或者如果fArray太小而不能保存输出。
public double[] getSamples(int x, int y, int w, int h, int b, double[] dArray)
x
- 左上角像素位置的X坐标
y
- 左上角像素位置的Y坐标
w
- 像素矩形的宽度
h
- 像素矩形的高度
b
- 乐队返回
dArray
- 可选预分配的双阵列
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内,或者如果dArray太小而不能保存输出。