- java.lang.Object
-
- java.awt.image.SampleModel
-
public abstract class SampleModel extends Object
这个抽象类定义了一个用于提取图像中像素样本的接口。 所有图像数据都表示为像素集合。 每个像素由多个样本组成。 样本是图像的一个频带的基准,频带由图像中特定类型的所有样本组成。 例如,像素可能包含三个样本,表示其红色,绿色和蓝色分量。 包含此像素的图像中有三个波段。 一个乐队由图像中所有像素的所有红色样本组成。 第二频带由所有绿色样本组成,剩余频带由所有蓝色样本组成。 像素可以以各种格式存储。 例如,可以连续存储来自特定频带的所有样本,或者可以连续存储来自单个像素的所有样本。SampleModel的子类指定可以表示的样本类型(例如无符号8位字节,有符号16位短等),并可以指定样本在内存中的组织方式。 在Java 2D(tm)API中,内置的图像处理操作符可能不会对所有可能的样本类型进行操作,但通常适用于16位或更少的无符号积分样本。 一些操作员支持更多种类的样品。
像素的集合被表示为光栅,其由DataBuffer和SampleModel组成。 SampleModel允许访问DataBuffer中的样本,并可能提供程序员可以直接操作DataBuffer中的样本和像素的低级信息。
这个类通常是用于处理图像的倒退方法。 更高效的代码将将SampleModel转换为适当的子类,并提取直接操作DataBuffer中的像素所需的信息。
-
-
构造方法摘要
构造方法 Constructor 描述 SampleModel(int dataType, int w, int h, int numBands)
使用指定的参数构造一个SampleModel。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract SampleModel
createCompatibleSampleModel(int w, int h)
创建一个SampleModel,它描述了SampleModel格式的数据,但是具有不同的宽度和高度。abstract DataBuffer
createDataBuffer()
创建与此SampleModel对应的DataBuffer。abstract SampleModel
createSubsetSampleModel(int[] bands)
使用此SampleModel的一个子带子创建一个新的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)处的像素的指定带中的样本返回为int。double
getSampleDouble(int x, int y, int b, DataBuffer data)
将位于(x,y)的像素的指定带中的样本返回为双倍。float
getSampleFloat(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)
返回int数组中指定的像素矩形的指定带的样本,每个数组元素一个样本。abstract int[]
getSampleSize()
返回所有频段的采样位数。abstract int
getSampleSize(int 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)
使用用于输入的样本的浮点数组来设置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)
从包含每个数组元素一个样本的浮点数组设置一个像素矩形的所有样本。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)
对于位于DataBuffer中(x,y)处的像素的指定带中的样本,使用双倍的输入。void
setSample(int x, int y, int b, float s, DataBuffer data)
使用浮点数为DataBuffer设置位于(x,y)处的像素的指定波段的样本。abstract void
setSample(int x, int y, int b, int s, DataBuffer data)
使用int作为输入,为DataBuffer中位于(x,y)处的像素的指定波段设置一个样本。void
setSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data)
从包含每个数组元素一个样本的双阵列的像素的指定矩形中设置样本。void
setSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data)
从包含每个数组元素一个样本的浮点数组中为指定的像素矩形设置指定带中的样本。void
setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
从包含每个数组元素一个样本的int数组中为指定的像素矩形设置指定带中的样本。
-
-
-
字段详细信息
-
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
- 如果非空,则返回此数组中的样本 -
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
,其存储布局由SampleModel描述sm1
到DataBufferdb2
,其存储布局由SampleModel描述sm2
。 传输通常比使用getPixel / setPixel更有效率。SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, sm1.getDataElements(x, y, null, db1), db2);
如果SampleModels具有相同数量的频带,则使用getDataElements / setDataElements在两个DataBuffer / SampleModel对之间传输是合法的,相应的频带具有与每个样本相同的位数,TransferTypes是相同的。如果obj不为空,则它应该是TransferType类型的原始数组。 否则,抛出ClassCastException。 如果坐标不在边界中,或者如果obj不为空且不够大以容纳像素数据,则可能抛出ArrayIndexOutOfBoundsException。
- 参数
-
x
- 像素位置的X坐标。 -
y
- 像素位置的Y坐标。 -
obj
- 如果非空,则返回像素数据的原始数组。 -
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具有相同数量的频带,则使用getDataElements / setDataElements在两个DataBuffer / SampleModel对之间传输是合法的,相应的频带具有与每个样本相同的位数,TransferTypes是相同的。如果obj不为空,则它应该是TransferType类型的原始数组。 否则,抛出ClassCastException。 如果坐标不在边界中,或者如果obj不为空且不够大以容纳像素数据,则可能抛出ArrayIndexOutOfBoundsException。
- 参数
-
x
- 像素矩形的最小X坐标。 -
y
- 像素矩形的最小Y坐标。 -
w
- 像素矩形的宽度。 -
h
- 像素矩形的高度。 -
obj
- 如果非空,则返回像素数据的原始数组。 -
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
,其存储布局由SampleModel描述sm1
到DataBufferdb2
,其存储布局由SampleModel描述sm2
。 传输通常比使用getPixel / setPixel更有效率。SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, sm1.getDataElements(x, y, null, db1), db2);
如果SampleModels具有相同数量的频带,则使用getDataElements / setDataElements在两个DataBuffer / SampleModel对之间传输是合法的,相应的频带具有与每个样本相同的位数,TransferTypes是相同的。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具有相同数量的频带,则使用getDataElements / setDataElements在两个DataBuffer / SampleModel对之间传输是合法的,相应的频带具有与每个样本相同的位数,TransferTypes是相同的。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
- 如果非空,则返回此数组中的样本。 -
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
- 如果非空,则返回此数组中的样本。 -
data
- 包含图像数据的DataBuffer。 - 结果
- 指定像素的样本。
- 异常
-
NullPointerException
- 如果数据为空。 -
ArrayIndexOutOfBoundsException
- 如果坐标不在边界,或者如果dArray太小,不能容纳输出。 - 另请参见:
-
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
- 如果非空,则返回此数组中的样本。 -
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
- 如果非空,则返回此数组中的样本。 -
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
- 如果非空,则返回此数组中的样本。 -
data
- 包含图像数据的DataBuffer。 - 结果
- 指定像素区域的样本。
- 异常
-
NullPointerException
- 如果数据为空。 -
ArrayIndexOutOfBoundsException
- 如果坐标不在边界内,或者如果dArray太小,不能容纳输出。 - 另请参见:
-
setPixels(int, int, int, int, double[], DataBuffer)
-
getSample
public abstract int getSample(int x, int y, int b, DataBuffer data)
将位于(x,y)处的像素的指定带中的样本返回为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)处的像素的指定带中的样本作为浮点返回。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x
- 像素位置的X坐标。 -
y
- 像素位置的Y坐标。 -
b
- 乐队返回。 -
data
- 包含图像数据的DataBuffer。 - 结果
- 指定像素的指定频带中的样本。
- 异常
-
NullPointerException
- 如果数据为空。 -
ArrayIndexOutOfBoundsException
- 如果坐标或频带索引不在边界内。
-
getSampleDouble
public double getSampleDouble(int x, int y, int b, DataBuffer data)
将位于(x,y)的像素的指定带中的样本返回为双倍。 如果坐标不在边界内,则可能抛出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数组中指定的像素矩形的指定带的样本,每个数组元素一个样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x
- 左上角像素位置的X坐标。 -
y
- 左上角像素位置的Y坐标。 -
w
- 像素矩形的宽度。 -
h
- 像素矩形的高度。 -
b
- 乐队返回。 -
iArray
- 如果非空,则返回此数组中的样本。 -
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)
返回浮点数组中指定的像素矩形的指定波段的样本,每个数组元素一个样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x
- 左上角像素位置的X坐标。 -
y
- 左上角像素位置的Y坐标。 -
w
- 像素矩形的宽度。 -
h
- 像素矩形的高度。 -
b
- 乐队返回。 -
fArray
- 如果非空,则返回此数组中的样本。 -
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
- 如果非空,则返回此数组中的样本。 -
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)
使用用于输入的样本的浮点数组来设置DataBuffer中的像素。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x
- 像素位置的X坐标。 -
y
- 像素位置的Y坐标。 -
fArray
- 浮点数组中的输入样本。 -
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)
从包含每个数组元素一个样本的浮点数组设置一个像素矩形的所有样本。 如果坐标不在边界内,则可能抛出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
- 如果坐标不在边界,或者如果dArray太小,不能容纳输入。 - 另请参见:
-
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)处的像素的指定波段设置一个样本。 如果坐标不在边界内,则可能抛出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)
使用浮点数为DataBuffer设置位于(x,y)处的像素的指定波段的样本。 此方法的默认实现将输入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)
对于位于DataBuffer中(x,y)处的像素的指定带中的样本,使用双倍的输入。 此方法的默认实现将输入double样本转换为int,然后使用该int值调用setSample(int, int, int, DataBuffer)
方法。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x
- 像素位置的X坐标。 -
y
- 像素位置的Y坐标。 -
b
- 乐队设置。 -
s
- 输入样本为双倍。 -
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数组中为指定的像素矩形设置指定带中的样本。 如果坐标不在边界内,则可能抛出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)
从包含每个数组元素一个样本的浮点数组中为指定的像素矩形设置指定带中的样本。 如果坐标不在边界内,则可能抛出ArrayIndexOutOfBoundsException。- 参数
-
x
- 左上角像素位置的X坐标。 -
y
- 左上角像素位置的Y坐标。 -
w
- 像素矩形的宽度。 -
h
- 像素矩形的高度。 -
b
- 乐队设置。 -
fArray
- 一个浮点数组中的输入样本。 -
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)
从包含每个数组元素一个样本的双阵列的像素的指定矩形中设置样本。 如果坐标不在边界内,则可能抛出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的一个子带子创建一个新的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
- 指定的乐队 - 结果
- the size of the samples of the specified band.
-
-