- 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 SampleModel
createCompatibleSampleModel(int w, int h)
创建一个SampleModel,它描述此SampleModel格式的数据,但具有不同的宽度和高度。abstract DataBuffer
createDataBuffer()
创建与此SampleModel对应的DataBuffer。abstract SampleModel
createSubsetSampleModel(int[] bands)
使用此SampleModel的band子集创建新的SampleModel。Object
getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
返回TransferType类型的基本数组中指定矩形像素的像素数据。abstract Object
getDataElements(int x, int y, Object obj, DataBuffer data)
返回TransferType类型的基本数组中单个像素的数据。int
getDataType()
返回存储像素数据的DataBuffer的数据类型。int
getHeight()
以像素为单位返回高度。int
getNumBands()
返回图像数据的总带数。abstract int
getNumDataElements()
返回通过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 int
getSample(int x, int y, int b, DataBuffer data)
将位于(x,y)的像素的指定band中的样本返回为int。double
getSampleDouble(int x, int y, int b, DataBuffer data)
将位于(x,y)的像素的指定波段中的样本返回为double。float
getSampleFloat(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 int
getSampleSize(int band)
返回指定band的样本位大小。int
getTransferType()
返回用于通过getDataElements和setDataElements方法传输像素的TransferType。int
getWidth()
以像素为单位返回宽度。void
setDataElements(int x, int y, int w, int h, Object obj, DataBuffer data)
从TransferType类型的基本数组中设置指定DataBuffer中像素矩形的数据。abstract void
setDataElements(int x, int y, Object obj, DataBuffer data)
从TransferType类型的基本数组中设置指定DataBuffer中单个像素的数据。void
setPixel(int x, int y, double[] dArray, DataBuffer data)
使用双数组样本设置DataBuffer中的像素以进行输入。void
setPixel(int x, int y, float[] fArray, DataBuffer data)
使用样本的float数组为输入设置DataBuffer中的像素。void
setPixel(int x, int y, int[] iArray, DataBuffer data)
使用int数组样本设置DataBuffer中的像素以进行输入。void
setPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data)
为每个数组元素包含一个样本的双数组设置像素矩形的所有样本。void
setPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data)
为包含每个数组元素一个样本的float数组设置像素矩形的所有样本。void
setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
为每个数组元素包含一个样本的int数组设置像素矩形的所有样本。void
setSample(int x, int y, int b, double s, DataBuffer data)
使用double作为输入,为DataBuffer中位于(x,y)的像素设置指定band中的样本。void
setSample(int x, int y, int b, float s, DataBuffer data)
使用float作为输入,为DataBuffer中位于(x,y)的像素设置指定band中的样本。abstract void
setSample(int x, int y, int b, int s, DataBuffer data)
使用int作为输入,为DataBuffer中位于(x,y)的像素设置指定band中的样本。void
setSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data)
从包含每个数组元素一个样本的double数组中为指定的像素矩形设置指定band中的样本。void
setSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data)
从包含每个数组元素一个样本的float数组中为指定的像素矩形设置指定band中的样本。void
setSamples(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.
-
-