- java.lang.Object
-
- java.awt.image.SampleModel
-
public abstract class SampleModel extends Object
该抽象类定义了用于提取图像中像素样本的接口。 所有图像数据都表示为像素集合。 每个像素由许多样本组成。 样本是图像的一个波段的数据,波段由图像中特定类型的所有样本组成。 例如,像素可能包含三个样本,表示其红色,绿色和蓝色分量。 包含此像素的图像中有三个波段。 一个波段由图像中所有像素的所有红色样本组成。 第二个波段由所有绿色样本组成,剩余波段由所有蓝色样本组成。 像素可以以各种格式存储。 例如,来自特定频带的所有样本可以连续存储,或者来自单个像素的所有样本可以连续存储。SampleModel的子类指定它们可以表示的样本类型(例如,无符号8位字节,带符号的16位短字等),并且可以指定样本在内存中的组织方式。 在Java 2D(tm)API中,内置图像处理运算符可能无法对所有可能的样本类型进行操作,但通常适用于16位或更少的无符号整数样本。 一些运营商支持更多种类的样本。
像素集合表示为Raster,它由DataBuffer和SampleModel组成。 SampleModel允许访问DataBuffer中的样本,并且可以提供程序员可以用来直接操作DataBuffer中的样本和像素的低级信息。
该类通常是用于处理图像的后退方法。 更高效的代码会将SampleModel强制转换为适当的子类,并提取直接操作DataBuffer中像素所需的信息。
-
-
构造方法摘要
构造方法 构造器 描述 SampleModel(int dataType, int w, int h, int numBands)使用指定的参数构造SampleModel。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract SampleModelcreateCompatibleSampleModel(int w, int h)创建一个SampleModel,它描述此SampleModel格式的数据,但具有不同的宽度和高度。abstract DataBuffercreateDataBuffer()创建与此SampleModel对应的DataBuffer。abstract SampleModelcreateSubsetSampleModel(int[] bands)使用此SampleModel的band子集创建新的SampleModel。ObjectgetDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)返回TransferType类型的基本数组中指定矩形像素的像素数据。abstract ObjectgetDataElements(int x, int y, Object obj, DataBuffer data)返回TransferType类型的基本数组中单个像素的数据。intgetDataType()返回存储像素数据的DataBuffer的数据类型。intgetHeight()以像素为单位返回高度。intgetNumBands()返回图像数据的总带数。abstract intgetNumDataElements()返回通过getDataElements和setDataElements方法传输像素所需的数据元素数。double[]getPixel(int x, int y, double[] dArray, DataBuffer data)返回double数组中指定像素的样本。float[]getPixel(int x, int y, float[] fArray, DataBuffer data)返回float数组中指定像素的样本。int[]getPixel(int x, int y, int[] iArray, DataBuffer data)返回int数组中指定像素的样本,每个数组元素一个样本。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)返回float数组中像素矩形的所有样本,每个数组元素一个样本。int[]getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)返回int数组中像素矩形的所有样本,每个数组元素一个样本。abstract intgetSample(int x, int y, int b, DataBuffer data)将位于(x,y)的像素的指定band中的样本返回为int。doublegetSampleDouble(int x, int y, int b, DataBuffer data)将位于(x,y)的像素的指定波段中的样本返回为double。floatgetSampleFloat(int x, int y, int b, DataBuffer data)将位于(x,y)的像素的指定band中的样本返回为float。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)返回float数组中指定矩形像素的指定band的样本,每个数组元素一个样本。int[]getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)返回int数组中指定矩形像素的指定band的样本,每个数组元素一个样本。abstract int[]getSampleSize()返回所有波段的样本位大小。abstract intgetSampleSize(int band)返回指定band的样本位大小。intgetTransferType()返回用于通过getDataElements和setDataElements方法传输像素的TransferType。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)使用样本的float数组为输入设置DataBuffer中的像素。voidsetPixel(int x, int y, int[] iArray, DataBuffer data)使用int数组样本设置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)为包含每个数组元素一个样本的float数组设置像素矩形的所有样本。voidsetPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)为每个数组元素包含一个样本的int数组设置像素矩形的所有样本。voidsetSample(int x, int y, int b, double s, DataBuffer data)使用double作为输入,为DataBuffer中位于(x,y)的像素设置指定band中的样本。voidsetSample(int x, int y, int b, float s, DataBuffer data)使用float作为输入,为DataBuffer中位于(x,y)的像素设置指定band中的样本。abstract voidsetSample(int x, int y, int b, int s, DataBuffer data)使用int作为输入,为DataBuffer中位于(x,y)的像素设置指定band中的样本。voidsetSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data)从包含每个数组元素一个样本的double数组中为指定的像素矩形设置指定band中的样本。voidsetSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data)从包含每个数组元素一个样本的float数组中为指定的像素矩形设置指定band中的样本。voidsetSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)从包含每个数组元素一个样本的int数组中为指定的像素矩形设置指定band中的样本。
-
-
-
字段详细信息
-
width
protected int width
此SampleModel描述的图像数据区域的像素宽度。
-
height
protected int height
此SampleModel描述的图像数据区域的高度(以像素为单位)。
-
numBands
protected int numBands
此SampleModel描述的图像数据的波段数。
-
dataType
protected int dataType
存储像素数据的DataBuffer的数据类型。- 另请参见:
-
DataBuffer
-
-
构造方法详细信息
-
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不是受支持的数据类型之一
-
-
方法详细信息
-
getWidth
public final int getWidth()
以像素为单位返回宽度。- 结果
-
此
SampleModel描述的图像数据区域的宽度(以像素为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
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)返回int数组中指定像素的样本,每个数组元素一个样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标 -
y- 像素位置的Y坐标 -
iArray- 如果为非null,则返回此数组中的样本 -
data- 包含图像数据的DataBuffer - 结果
- 指定像素的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者iArray太小而无法容纳输出。 - 另请参见:
-
setPixel(int, int, int[], DataBuffer)
-
getDataElements
public abstract Object getDataElements(int x, int y, Object obj, DataBuffer data)
返回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将自动创建并且将具有正确的原始数据类型。以下代码说明了将一个像素的数据从DataBuffer
db1(其存储布局由SampleModelsm1描述)sm1到DataBufferdb2,其存储布局由SampleModelsm2描述。 传输通常比使用getPixel / setPixel更有效。SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, sm1.getDataElements(x, y, null, db1), db2);如果SampleModels具有相同数量的band,相应的band具有相同的每个样本位数,并且TransferTypes相同,则使用getDataElements / setDataElements在两个DataBuffer / SampleModel对之间进行传输是合法的。如果obj为非null,则它应该是TransferType类型的基本数组。 否则,抛出ClassCastException。 如果坐标不在边界内,或者如果obj非空并且不足以容纳像素数据,则可能抛出ArrayIndexOutOfBoundsException。
- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
obj- 如果为非null,则返回像素数据的基本数组。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素的数据元素。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者obj太小而无法保持输出。 - 另请参见:
-
getNumDataElements(),getTransferType(),DataBuffer,setDataElements(int, int, Object, DataBuffer)
-
getDataElements
public Object getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
返回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将自动创建并且将具有正确的原始数据类型。下面的代码说明从DataBuffer中为像素的矩形区域传送数据
db1,其存储布局由SampleModel描述sm1到DataBufferdb2,其存储布局由SampleModel描述sm2。 传输通常比使用getPixels / setPixels更有效。SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, w, h, sm1.getDataElements(x, y, w, h, null, db1), db2);如果SampleModels具有相同数量的band,相应的band具有相同的每个样本位数,并且TransferTypes相同,则使用getDataElements / setDataElements在两个DataBuffer / SampleModel对之间进行传输是合法的。如果obj为非null,则它应该是TransferType类型的基本数组。 否则,抛出ClassCastException。 如果坐标不在边界内,或者如果obj非空并且不足以容纳像素数据,则可能抛出ArrayIndexOutOfBoundsException。
- 参数
-
x- 像素矩形的最小X坐标。 -
y- 像素矩形的最小Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
obj- 如果为非null,则返回像素数据的基本数组。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素区域的数据元素。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者obj太小而无法保持输出。 - 另请参见:
-
getNumDataElements(),getTransferType(),setDataElements(int, int, int, int, Object, DataBuffer),DataBuffer
-
setDataElements
public abstract void setDataElements(int x, int y, Object obj, DataBuffer data)从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描述)sm1到DataBufferdb2,其存储布局由SampleModelsm2描述。 传输通常比使用getPixel / setPixel更有效。SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, sm1.getDataElements(x, y, null, db1), db2);如果SampleModels具有相同数量的band,相应的band具有相同的每个样本位数,并且TransferTypes相同,则使用getDataElements / setDataElements在两个DataBuffer / SampleModel对之间进行传输是合法的。obj必须是TransferType类型的原始数组。 否则,抛出ClassCastException。 如果坐标不在边界内,或者obj不足以容纳像素数据,则可能抛出ArrayIndexOutOfBoundsException。
- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
obj- 包含像素数据的原始数组。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者obj太小而无法容纳输入。 - 另请参见:
-
getNumDataElements(),getTransferType(),getDataElements(int, int, Object, DataBuffer),DataBuffer
-
setDataElements
public void setDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)从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,其存储布局由SampleModel描述sm1到DataBufferdb2,其存储布局由SampleModel描述sm2。 传输通常比使用getPixels / setPixels更有效。SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, w, h, sm1.getDataElements(x, y, w, h, null, db1), db2);如果SampleModels具有相同数量的band,相应的band具有相同的每个样本位数,并且TransferTypes相同,则使用getDataElements / setDataElements在两个DataBuffer / SampleModel对之间进行传输是合法的。obj必须是TransferType类型的原始数组。 否则,抛出ClassCastException。 如果坐标不在边界内,或者obj不足以容纳像素数据,则可能抛出ArrayIndexOutOfBoundsException。
- 参数
-
x- 像素矩形的最小X坐标。 -
y- 像素矩形的最小Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
obj- 包含像素数据的原始数组。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者obj太小而无法容纳输入。 - 另请参见:
-
getNumDataElements(),getTransferType(),getDataElements(int, int, int, int, Object, DataBuffer),DataBuffer
-
getPixel
public float[] getPixel(int x, int y, float[] fArray, DataBuffer data)返回float数组中指定像素的样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
fArray- 如果为非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者fArray太小而无法保持输出。 - 另请参见:
-
setPixel(int, int, float[], DataBuffer)
-
getPixel
public double[] getPixel(int x, int y, double[] dArray, DataBuffer data)返回double数组中指定像素的样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
dArray- 如果为非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者ArrayIndexOutOfBoundsException太小而无法容纳输出。 - 另请参见:
-
setPixel(int, int, double[], DataBuffer)
-
getPixels
public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)返回int数组中像素矩形的所有样本,每个数组元素一个样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
iArray- 如果为非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素区域的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者iArray太小而无法保持输出。 - 另请参见:
-
setPixels(int, int, int, int, int[], DataBuffer)
-
getPixels
public float[] getPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data)返回float数组中像素矩形的所有样本,每个数组元素一个样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
fArray- 如果为非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素区域的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者fArray太小而无法保持输出。 - 另请参见:
-
setPixels(int, int, int, int, float[], DataBuffer)
-
getPixels
public double[] getPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data)返回双数组中像素矩形的所有样本,每个数组元素一个样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
dArray- 如果为非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素区域的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者ArrayIndexOutOfBoundsException太小而无法容纳输出。 - 另请参见:
-
setPixels(int, int, int, int, double[], DataBuffer)
-
getSample
public abstract int getSample(int x, int y, int b, DataBuffer data)将位于(x,y)的像素的指定band中的样本返回为int。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 乐队返回。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素中指定像素的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内。 - 另请参见:
-
setSample(int, int, int, int, DataBuffer)
-
getSampleFloat
public float getSampleFloat(int x, int y, int b, DataBuffer data)将位于(x,y)的像素的指定band中的样本返回为float。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 乐队返回。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素中指定像素的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内。
-
getSampleDouble
public double getSampleDouble(int x, int y, int b, DataBuffer data)将位于(x,y)的像素的指定波段中的样本返回为double。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 乐队返回。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素中指定像素的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内。
-
getSamples
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)返回int数组中指定矩形像素的指定band的样本,每个数组元素一个样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 乐队返回。 -
iArray- 如果为非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素区域的指定波段的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内,或者iArray太小而无法保持输出。 - 另请参见:
-
setSamples(int, int, int, int, int, int[], DataBuffer)
-
getSamples
public float[] getSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data)返回float数组中指定矩形像素的指定band的样本,每个数组元素一个样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 乐队返回。 -
fArray- 如果为非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素区域的指定波段的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内,或者fArray太小而无法保持输出。 - 另请参见:
-
setSamples(int, int, int, int, int, float[], DataBuffer)
-
getSamples
public double[] getSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data)返回双精度数组中指定矩形像素的指定波段的样本,每个数组元素一个样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要返回的乐队。 -
dArray- 如果为非null,则返回此数组中的样本。 -
data- 包含图像数据的DataBuffer。 - 结果
- 指定像素区域的指定波段的样本。
- 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内,或者dArray太小而无法保持输出。 - 另请参见:
-
setSamples(int, int, int, int, int, double[], DataBuffer)
-
setPixel
public void setPixel(int x, int y, int[] iArray, DataBuffer data)使用int数组样本设置DataBuffer中的像素以进行输入。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
iArray- int数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果iArray或数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者iArray太小而无法容纳输入。 - 另请参见:
-
getPixel(int, int, int[], DataBuffer)
-
setPixel
public void setPixel(int x, int y, float[] fArray, DataBuffer data)使用样本的float数组为输入设置DataBuffer中的像素。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
fArray- float数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果fArray或数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者fArray太小而无法容纳输入。 - 另请参见:
-
getPixel(int, int, float[], DataBuffer)
-
setPixel
public void setPixel(int x, int y, double[] dArray, DataBuffer data)使用双数组样本设置DataBuffer中的像素以进行输入。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
dArray- 双数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果NullPointerException或数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者fArray太小而无法容纳输入。 - 另请参见:
-
getPixel(int, int, double[], DataBuffer)
-
setPixels
public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)为每个数组元素包含一个样本的int数组设置像素矩形的所有样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
iArray- int数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果iArray或数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者iArray太小而无法容纳输入。 - 另请参见:
-
getPixels(int, int, int, int, int[], DataBuffer)
-
setPixels
public void setPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data)为包含每个数组元素一个样本的float数组设置像素矩形的所有样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
fArray- float数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果fArray或数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者fArray太小而无法容纳输入。 - 另请参见:
-
getPixels(int, int, int, int, float[], DataBuffer)
-
setPixels
public void setPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data)为每个数组元素包含一个样本的双数组设置像素矩形的所有样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
dArray- 双数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果NullPointerException或数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标不在边界内,或者ArrayIndexOutOfBoundsException太小而无法容纳输入。 - 另请参见:
-
getPixels(int, int, int, int, double[], DataBuffer)
-
setSample
public abstract void setSample(int x, int y, int b, int s, DataBuffer data)使用int作为输入,为DataBuffer中位于(x,y)的像素设置指定band中的样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 要设置的乐队。 -
s- 输入样本为int。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内。 - 另请参见:
-
getSample(int, int, int, DataBuffer)
-
setSample
public void setSample(int x, int y, int b, float s, DataBuffer data)使用float作为输入,为DataBuffer中位于(x,y)的像素设置指定band中的样本。 此方法的默认实现将输入float样本转换为int,然后使用该int值调用setSample(int, int, int, DataBuffer)方法。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 要设置的乐队。 -
s- 输入样本为浮点数。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内。 - 另请参见:
-
getSample(int, int, int, DataBuffer)
-
setSample
public void setSample(int x, int y, int b, double s, DataBuffer data)使用double作为输入,为DataBuffer中位于(x,y)的像素设置指定band中的样本。 此方法的默认实现将输入double样本强制转换为int,然后使用该int值调用setSample(int, int, int, DataBuffer)方法。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 像素位置的X坐标。 -
y- 像素位置的Y坐标。 -
b- 要设置的乐队。 -
s- 输入样本为double。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内。 - 另请参见:
-
getSample(int, int, int, DataBuffer)
-
setSamples
public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)从包含每个数组元素一个样本的int数组中为指定的像素矩形设置指定band中的样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要设置的乐队。 -
iArray- int数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果iArray或数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内,或者iArray太小而无法保持输入。 - 另请参见:
-
getSamples(int, int, int, int, int, int[], DataBuffer)
-
setSamples
public void setSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data)从包含每个数组元素一个样本的float数组中为指定的像素矩形设置指定band中的样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要设置的乐队。 -
fArray- float数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果fArray或数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内,或者fArray太小而无法保持输入。 - 另请参见:
-
getSamples(int, int, int, int, int, float[], DataBuffer)
-
setSamples
public void setSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data)从包含每个数组元素一个样本的double数组中为指定的像素矩形设置指定band中的样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x- 左上角像素位置的X坐标。 -
y- 左上角像素位置的Y坐标。 -
w- 像素矩形的宽度。 -
h- 像素矩形的高度。 -
b- 要设置的乐队。 -
dArray- 双数组中的输入样本。 -
data- 包含图像数据的DataBuffer。 - 异常
-
NullPointerException- 如果NullPointerException或数据为空。 -
ArrayIndexOutOfBoundsException- 如果坐标或波段索引不在边界内,或者dArray太小而无法保持输入。 - 另请参见:
-
getSamples(int, int, int, int, int, double[], DataBuffer)
-
createCompatibleSampleModel
public abstract SampleModel createCompatibleSampleModel(int w, int h)
创建一个SampleModel,它描述此SampleModel格式的数据,但具有不同的宽度和高度。- 参数
-
w- 图像数据的宽度 -
h- 图像数据的高度 - 结果
-
一个
SampleModel描述相同的图像数据,因为这SampleModel,但具有不同的尺寸。
-
createSubsetSampleModel
public abstract SampleModel createSubsetSampleModel(int[] bands)
使用此SampleModel的band子集创建新的SampleModel。- 参数
-
bands- 这个SampleModel的频段子集 - 结果
-
带有
SampleModel频段的SampleModel。
-
createDataBuffer
public abstract DataBuffer createDataBuffer()
创建与此SampleModel对应的DataBuffer。 DataBuffer的宽度和高度将匹配此SampleModel。- 结果
-
DataBuffer对应于这个SampleModel。
-
getSampleSize
public abstract int[] getSampleSize()
返回所有波段的样本位大小。- 结果
- 所有波段的样本大小。
-
getSampleSize
public abstract int getSampleSize(int band)
返回指定band的样本位大小。- 参数
-
band- 指定的波段 - 结果
- the size of the samples of the specified band.
-
-