SampleModel的子类指定它们可以表示的样本类型(例如,无符号8位字节,有符号16位短整型等),并且可以指定样本在内存中的组织方式。在Java 2D(tm) API中,内置的图像处理运算符可能不适用于所有可能的样本类型,但通常适用于16位或更少位的无符号整型样本。一些运算符支持更广泛的样本类型。
像素的集合表示为一个Raster,它由一个DataBuffer和一个SampleModel组成。SampleModel允许访问DataBuffer中的样本,并且可能提供程序员可以使用的低级信息,以直接操作DataBuffer中的样本和像素。
这个类通常是处理图像的后备方法。更有效的代码将把SampleModel转换为适当的子类,并提取所需的信息,以直接操作DataBuffer中的像素。
- 参见:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract SampleModelcreateCompatibleSampleModel(int w, int h) 创建一个描述此SampleModel格式中数据的SampleModel,但具有不同的宽度和高度。abstract DataBuffer创建与此SampleModel对应的DataBuffer。abstract SampleModelcreateSubsetSampleModel(int[] bands) 创建一个新的SampleModel,其中包含此SampleModel的部分波段。getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) 返回类型为TransferType的原始数组中指定像素矩形的像素数据。abstract ObjectgetDataElements(int x, int y, Object obj, DataBuffer data) 返回类型为TransferType的原始数组中单个像素的数据。final int返回存储像素数据的DataBuffer的数据类型。final int返回像素的高度。final int返回图像数据的总波段数。abstract int返回通过getDataElements和setDataElements方法传输像素所需的数据元素数量。double[]getPixel(int x, int y, double[] dArray, DataBuffer data) 返回双精度数组中指定像素的样本。float[]getPixel(int x, int y, float[] fArray, DataBuffer data) 返回浮点数组中指定像素的样本。int[]getPixel(int x, int y, int[] iArray, DataBuffer data) 返回整型数组中指定像素的样本,每个数组元素一个样本。double[]getPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data) 返回双精度数组中像素矩形的所有样本,每个数组元素一个样本。float[]getPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data) 返回浮点数组中像素矩形的所有样本,每个数组元素一个样本。int[]getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) 返回整型数组中像素矩形的所有样本,每个数组元素一个样本。abstract intgetSample(int x, int y, int b, DataBuffer data) 返回位于(x,y)处的像素的指定波段的样本作为整数。doublegetSampleDouble(int x, int y, int b, DataBuffer data) 返回位于(x,y)处的像素的指定波段的样本作为双精度数。floatgetSampleFloat(int x, int y, int b, DataBuffer data) 返回位于(x,y)处的像素的指定波段的样本作为浮点数。double[]getSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data) 返回双精度数组中指定像素矩形的指定波段的所有样本,每个数组元素一个样本。float[]getSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data) 返回浮点数组中指定像素矩形的指定波段的所有样本,每个数组元素一个样本。int[]getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data) 返回整型数组中指定像素矩形的指定波段的所有样本,每个数组元素一个样本。abstract int[]返回所有波段样本的位数。abstract intgetSampleSize(int band) 返回指定波段的样本的位数。int返回用于通过getDataElements和setDataElements方法传输像素的TransferType。final intgetWidth()返回像素的宽度。voidsetDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) 从TransferType类型的原始数组中设置指定DataBuffer的像素矩形的数据。abstract voidsetDataElements(int x, int y, Object obj, DataBuffer data) 从TransferType类型的原始数组中设置指定DataBuffer的单个像素的数据。voidsetPixel(int x, int y, double[] dArray, DataBuffer data) 使用双精度样本数组将像素设置到DataBuffer中。voidsetPixel(int x, int y, float[] fArray, DataBuffer data) 使用浮点样本数组将像素设置到DataBuffer中。voidsetPixel(int x, int y, int[] iArray, DataBuffer data) 使用整型样本数组将像素设置到DataBuffer中。voidsetPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data) 从包含一个样本的双精度数组中设置像素矩形的所有样本。voidsetPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data) 从包含一个样本的浮点数组中设置像素矩形的所有样本。voidsetPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) 从包含一个样本的整型数组中设置像素矩形的所有样本。voidsetSample(int x, int y, int b, double s, DataBuffer data) 使用双精度数将指定波段的像素(位于(x,y)处)设置到DataBuffer中。voidsetSample(int x, int y, int b, float s, DataBuffer data) 使用浮点数将指定波段的像素(位于(x,y)处)设置到DataBuffer中。abstract voidsetSample(int x, int y, int b, int s, DataBuffer data) 使用整数将指定波段的像素(位于(x,y)处)设置到DataBuffer中。voidsetSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data) 从包含一个样本的双精度数组中设置指定像素矩形的指定波段的所有样本。voidsetSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data) 从包含一个样本的浮点数组中设置指定像素矩形的指定波段的所有样本。voidsetSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data) 从包含一个样本的整型数组中设置指定像素矩形的指定波段的所有样本。
-
Field Details
-
width
protected int width描述此SampleModel的图像数据区域的像素宽度。 -
height
protected int height描述此SampleModel的图像数据区域的像素高度。 -
numBands
protected int numBands描述此SampleModel的图像数据的波段数。 -
dataType
protected int dataType存储像素数据的DataBuffer的数据类型。- 参见:
-
-
Constructor Details
-
SampleModel
public SampleModel(int dataType, int w, int h, int numBands) 使用指定的参数构造SampleModel。- 参数:
-
dataType- 存储像素数据的DataBuffer的数据类型。 -
w- 图像数据区域的宽度(以像素为单位)。 -
h- 图像数据区域的高度(以像素为单位)。 -
numBands- 图像数据的波段数。 - 抛出:
-
IllegalArgumentException- 如果w或h不大于0 -
IllegalArgumentException- 如果w和h的乘积大于Integer.MAX_VALUE -
IllegalArgumentException- 如果dataType不是DataBuffer类中预定义的数据类型标签之一 -
IllegalArgumentException- 如果numBands小于1
-
-
Method Details
-
getWidth
public final int getWidth()返回像素的宽度。- 返回:
-
描述此
SampleModel所描述的图像数据区域的像素宽度。
-
getHeight
public final int getHeight()返回像素的高度。- 返回:
-
描述此
SampleModel所描述的图像数据区域的像素高度。
-
getNumBands
public final int getNumBands()返回图像数据的总波段数。- 返回:
-
描述此
SampleModel所描述的图像数据的波段数。
-
getNumDataElements
public abstract int getNumDataElements()返回通过getDataElements和setDataElements方法传输像素所需的数据元素数量。当通过这些方法传输像素时,它们可能以打包或未打包的格式传输,这取决于SampleModel的实现。使用这些方法,像素作为由getTransferType()给定的原始类型的getNumDataElements()元素数组传输。TransferType可能与存储的DataType相同也可能不同。- 返回值:
- 数据元素的数量。
- 参见:
-
getDataType
public final int getDataType()返回存储像素数据的DataBuffer的数据类型。- 返回值:
- 数据类型。
-
getTransferType
public int getTransferType()返回通过getDataElements和setDataElements方法传输像素的TransferType。当通过这些方法传输像素时,根据SampleModel的实现,它们可能以打包或未打包的格式传输。使用这些方法,像素作为由getTransferType()给定的原始类型的getNumDataElements()元素数组传输。TransferType可能与存储的DataType相同也可能不同。TransferType将是DataBuffer中定义的类型之一。- 返回值:
- 传输类型。
- 参见:
-
getPixel
返回指定像素的样本,以int数组的形式,每个数组元素一个样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 像素位置的X坐标 -
y- 像素位置的Y坐标 -
iArray- 如果非空,则将样本返回到此数组中 -
data- 包含图像数据的DataBuffer - 返回值:
- 指定像素的样本。
- 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者iArray太小无法容纳输出。 - 参见:
-
getDataElements
返回TransferType类型的原始数组中单个像素的数据。对于Java 2D API支持的图像数据,这将是DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT或DataBuffer.TYPE_DOUBLE之一。数据可能以打包格式返回,从而提高数据传输效率。通常,应将obj传递为null,以便自动创建Object,并且将是正确的原始数据类型。以下代码示例说明了从由SampleModel
sm1描述存储布局的DataBufferdb1中的一个像素传输数据到由SampleModelsm2描述存储布局的DataBufferdb2中。与使用getPixel/setPixel相比,传输通常更有效。SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, sm1.getDataElements(x, y, null, db1), db2);如果SampleModels具有相同数量的波段,相应波段具有相同数量的每个样本的位数,并且TransferTypes相同,则在两个DataBuffer/SampleModel对之间使用getDataElements/setDataElements是合法的。如果obj非空,则应该是TransferType类型的原始数组。否则,将抛出ClassCastException。如果坐标超出范围,或者obj非空且不足以容纳像素数据,则可能会抛出ArrayIndexOutOfBoundsException。
- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
obj- 如果非空,则用于返回像素数据的原始数组。 -
data- 包含图像数据的DataBuffer。 - 返回值:
- 指定像素的数据元素。
- 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者obj太小无法容纳输出。 - 参见:
-
getDataElements
返回指定像素矩形的像素数据,以TransferType类型的原始数组形式。对于Java 2D API支持的图像数据,这将是DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT或DataBuffer.TYPE_DOUBLE之一。数据可能以打包格式返回,从而提高数据传输效率。通常,应将obj传递为null,以便自动创建Object,并且将是正确的原始数据类型。以下代码示例说明了从由SampleModel
sm1描述存储布局的DataBufferdb1中的一个像素传输数据到由SampleModelsm2描述存储布局的DataBufferdb2中。与使用getPixels/setPixels相比,传输通常更有效。SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, w, h, sm1.getDataElements(x, y, w, h, null, db1), db2);如果SampleModels具有相同数量的波段,相应波段具有相同数量的每个样本的位数,并且TransferTypes相同,则在两个DataBuffer/SampleModel对之间使用getDataElements/setDataElements是合法的。如果obj非空,则应该是TransferType类型的原始数组。否则,将抛出ClassCastException。如果坐标超出范围,或者obj非空且不足以容纳像素数据,则可能会抛出ArrayIndexOutOfBoundsException。
- 参数:
-
x- 像素矩形的最小X坐标。 -
y- 像素矩形的最小Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
obj- 如果非空,则用于返回像素数据的原始数组。 -
data- 包含图像数据的DataBuffer。 - 返回值:
- 指定像素区域的数据元素。
- 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者obj太小无法容纳输出。 - 参见:
-
setDataElements
从TransferType类型的原始数组中设置指定DataBuffer中单个像素的数据。对于Java 2D API支持的图像数据,这将是DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT或DataBuffer.TYPE_DOUBLE之一。数组中的数据可能以打包格式存在,从而提高数据传输效率。以下代码示例说明了从由SampleModel
sm1描述存储布局的DataBufferdb1中的一个像素传输数据到由SampleModelsm2描述存储布局的DataBufferdb2中。与使用getPixel/setPixel相比,传输通常更有效。SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, sm1.getDataElements(x, y, null, db1), db2);如果SampleModels具有相同数量的波段,相应波段具有相同数量的每个样本的位数,并且TransferTypes相同,则在两个DataBuffer/SampleModel对之间使用getDataElements/setDataElements是合法的。obj必须是TransferType类型的原始数组。否则,将抛出ClassCastException。如果坐标超出范围,或者obj不足以容纳像素数据,则可能会抛出ArrayIndexOutOfBoundsException。
- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
obj- 包含像素数据的原始数组。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果数据为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者obj太小无法容纳输入。 - 参见:
-
setDataElements
从类型为TransferType的原始数组中设置指定DataBuffer中像素矩形的数据。对于Java 2D API支持的图像数据,这将是DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT或DataBuffer.TYPE_DOUBLE之一。数组中的数据可能是打包格式,从而提高数据传输效率。以下代码示例说明了从DataBuffer
db1(其存储布局由SampleModelsm1描述)传输像素的矩形区域数据到DataBufferdb2(其存储布局由SampleModelsm2描述)。与使用getPixels/setPixels相比,传输通常更有效。SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, w, h, sm1.getDataElements(x, y, w, h, null, db1), db2);如果SampleModels具有相同数量的波段,相应波段具有相同数量的每个样本位数,并且TransferTypes相同,则使用getDataElements/setDataElements在两个DataBuffer/SampleModel对之间进行传输是合法的。obj必须是TransferType类型的原始数组。否则,将抛出ClassCastException。如果坐标超出范围,或者obj不足以容纳像素数据,则可能会抛出ArrayIndexOutOfBoundsException。
- 参数:
-
x- 像素矩形的最小X坐标。 -
y- 像素矩形的最小Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
obj- 包含像素数据的原始数组。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果数据为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者obj太小无法容纳输入。 - 参见:
-
getPixel
返回一个float数组中指定像素的样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
fArray- 如果非null,则将样本返回到此数组中。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定像素的样本。
- 抛出:
-
NullPointerException- 如果数据为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者fArray太小无法容纳输出。 - 参见:
-
getPixel
返回一个double数组中指定像素的样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
dArray- 如果非null,则将样本返回到此数组中。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定像素的样本。
- 抛出:
-
NullPointerException- 如果数据为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者dArray太小无法容纳输出。 - 参见:
-
getPixels
返回一个int数组中指定像素的所有样本,每个数组元素一个样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
iArray- 如果非null,则将样本返回到此数组中。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定像素区域的样本。
- 抛出:
-
NullPointerException- 如果数据为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者iArray太小无法容纳输出。 - 参见:
-
getPixels
返回一个float数组中指定像素的所有样本,每个数组元素一个样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
fArray- 如果非null,则将样本返回到此数组中。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定像素区域的样本。
- 抛出:
-
NullPointerException- 如果数据为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者fArray太小无法容纳输出。 - 参见:
-
getPixels
返回一个double数组中指定像素的所有样本,每个数组元素一个样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
dArray- 如果非null,则将样本返回到此数组中。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定像素区域的样本。
- 抛出:
-
NullPointerException- 如果数据为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者dArray太小无法容纳输出。 - 参见:
-
getSample
返回位于(x,y)处的像素的指定波段的样本作为int。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 要返回的波段。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定像素的指定波段中的样本。
- 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围。 - 参见:
-
getSampleFloat
返回位于(x,y)处的像素的指定波段中的样本作为浮点数。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 要返回的波段。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定像素的指定波段中的样本。
- 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围。
-
getSampleDouble
返回位于(x,y)处的像素的指定波段中的样本作为双精度浮点数。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要返回的波段。 -
iArray- 如果非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定区域像素的指定波段中的样本。
- 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围,或者如果iArray太小无法容纳输出。 - 参见:
-
getSamples
返回一个int数组中指定矩形像素的指定波段的样本,每个数组元素一个样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要返回的波段。 -
fArray- 如果非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定区域像素的指定波段中的样本。
- 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围,或者如果fArray太小无法容纳输出。 - 参见:
-
getSamples
返回一个float数组中指定矩形像素的指定波段的样本,每个数组元素一个样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要返回的波段。 -
fArray- 如果非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定区域像素的指定波段中的样本。
- 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围,或者如果fArray太小无法容纳输出。 - 参见:
-
getSamples
返回一个double数组中指定矩形像素的指定波段的样本,每个数组元素一个样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要返回的波段。 -
dArray- 如果非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 返回:
- 指定区域像素的指定波段中的样本。
- 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围,或者如果dArray太小无法容纳输出。 - 参见:
-
setPixel
使用int数组中的样本设置DataBuffer中的像素。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
iArray- int数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果iArray或data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者如果iArray太小无法容纳输入。 - 参见:
-
setPixel
使用float数组中的样本设置DataBuffer中的像素。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
fArray- float数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果fArray或data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者如果fArray太小无法容纳输入。 - 参见:
-
setPixel
使用double数组中的样本设置DataBuffer中的像素。- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
dArray- double数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果dArray或data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者如果fArray太小无法容纳输入。 - 参见:
-
setPixels
使用包含每个数组元素一个样本的int数组设置像素的DataBuffer中的矩形像素。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
iArray- 一个int数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果iArray或data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者iArray太小无法容纳输入。 - 参见:
-
setPixels
从包含每个数组元素一个样本的float数组中设置像素矩形的所有样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
fArray- 一个float数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果fArray或data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者fArray太小无法容纳输入。 - 参见:
-
setPixels
从包含每个数组元素一个样本的double数组中设置像素矩形的所有样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
dArray- 一个double数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果dArray或data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标超出范围,或者dArray太小无法容纳输入。 - 参见:
-
setSample
使用int类型的输入为DataBuffer中位于(x,y)位置的像素的指定波段设置样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 要设置的波段。 -
s- 作为int的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围。 - 参见:
-
setSample
使用float类型的输入为DataBuffer中位于(x,y)位置的像素的指定波段设置样本。此方法的默认实现将输入的float样本转换为int,然后使用该int值调用setSample(int, int, int, DataBuffer)方法。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 要设置的波段。 -
s- 作为float的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围。 - 参见:
-
setSample
使用double类型的输入为DataBuffer中位于(x,y)位置的像素的指定波段设置样本。此方法的默认实现将输入的double样本转换为int,然后使用该int值调用setSample(int, int, int, DataBuffer)方法。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 要设置的波段。 -
s- 作为double的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围。 - 参见:
-
setSamples
从包含每个数组元素一个样本的int数组中设置指定矩形的像素的指定波段的样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要设置的波段。 -
iArray- 一个int数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果iArray或data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围,或者iArray太小无法容纳输入。 - 参见:
-
setSamples
从包含每个数组元素一个样本的float数组中设置指定矩形的像素的指定波段的样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要设置的波段。 -
fArray- 一个float数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果fArray或data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围,或者fArray太小无法容纳输入。 - 参见:
-
setSamples
从包含每个数组元素一个样本的double数组中设置指定矩形的像素的指定波段的样本。如果坐标超出范围,可能会抛出ArrayIndexOutOfBoundsException。- 参数:
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要设置的波段。 -
dArray- 双精度数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 抛出:
-
NullPointerException- 如果dArray或data为null。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引超出范围,或者dArray太小无法容纳输入。 - 参见:
-
createCompatibleSampleModel
创建一个SampleModel,描述此SampleModel格式中的数据,但具有不同的宽度和高度。- 参数:
-
w- 图像数据的宽度 -
h- 图像数据的高度 - 返回:
-
描述与此
SampleModel相同图像数据的SampleModel,但尺寸不同。
-
createSubsetSampleModel
创建一个具有此SampleModel波段子集的新SampleModel。- 参数:
-
bands- 此SampleModel的波段子集 - 返回:
-
具有此
SampleModel波段子集的SampleModel。
-
createDataBuffer
创建一个与此SampleModel相对应的DataBuffer。DataBuffer的宽度和高度将与此SampleModel相匹配。- 返回:
-
与此
SampleModel相对应的DataBuffer。
-
getSampleSize
public abstract int[] getSampleSize()返回所有波段样本的位大小。- 返回:
- 所有波段样本的大小。
-
getSampleSize
public abstract int getSampleSize(int band) 返回指定波段样本的位大小。- 参数:
-
band- 指定的波段 - 返回:
- 指定波段样本的大小。
-