返回介绍

java.awt.image 类 SampleModel

发布于 2019-10-04 09:50:36 字数 47337 浏览 984 评论 0 收藏 0

java.lang.Object
  └java.awt.image.SampleModel
直接已知子类:
ComponentSampleModel, MultiPixelPackedSampleModel, SinglePixelPackedSampleModel

public abstract class SampleModel
extends Object
 

此抽象类定义了一个提取图像像素样本的接口。所有图像数据都被表示成一个像素集合。每个像素都由许多样本组成。样本是一个图像 band 的基本数据,band 由图像中某一特定类型的所有样本组成。例如,一个像素可能包含三个样本,分别表示红、绿、蓝的分量。在包含此相素的图像中有三个 band。其中一个 band 由图像中所有像素的红色样本组成。第二个 band 由所有绿色样本组成,第三个 band 由所有蓝色样本组成。像素可以以各种格式存储。例如,特定 band 中的所有样本可以连续存储,或者单个像素的所有样本可以连续存储。

SampleModel 的子类指定它们能够表示的样本类型(例如,无符号 8 位字节、有符号 16 位 short 型等),并且可以指定如何在存储器中组织样本。在 Java 2D(tm) API 中,内置的图像处理运算符可能无法处理所有可能的样本类型,但通常可以处理 16 位或 16 位以下的无符号整数样本。某些运算符支持更大范围的样本类型。

像素的集合被表示为一个 Raster,它由 DataBuffer 和 SampleModel 组成。SampleModel 允许访问 DataBuffer 中的样本,并提供程序员可以用来直接操作 DataBuffer 中样本和像素的低级别信息。

此类通常是处理图像的一个回调方法。更为有效的代码将 SampleModel 强行转换为适当的子类,并提取直接操作 DataBuffer 中的像素所需的信息。

另请参见:
DataBuffer , Raster , ComponentSampleModel , PixelInterleavedSampleModel , BandedSampleModel , MultiPixelPackedSampleModel , SinglePixelPackedSampleModel

字段摘要
protected intdataType

存储像素数据的 DataBuffer 的数据类型。

protected intheight

此 SampleModel 描述的图像数据区域的像素高度。

protected intnumBands

此 SampleModel 描述的图像数据的 band 数。

protected intwidth

此 SampleModel 描述的图像数据区域的像素宽度。

构造方法摘要
SampleModel(intdataType, intw, inth, intnumBands)

构造一个具有指定参数的 SampleModel。

方法摘要
abstract SampleModelcreateCompatibleSampleModel(intw, inth)

创建一个用此 SampleModel 的格式描述数据但宽度和高度不同的 SampleModel。

abstract DataBuffercreateDataBuffer()

创建一个对应于此 SampleModel 的 DataBuffer。

abstract SampleModelcreateSubsetSampleModel(int[]bands)

创建一个新 SampleModel,它具有此 SampleModel 的 band 子集。

ObjectgetDataElements(intx, inty, intw, inth, Objectobj, DataBufferdata)

返回 TransferType 类型基本数组中指定像素矩形的像素数据。

abstract ObjectgetDataElements(intx, inty, Objectobj, DataBufferdata)

返回 TransferType 类型的基本数组中单个像素的数据。

intgetDataType()

返回存储像素数据的 DataBuffer 的数据类型。

intgetHeight()

返回像素高度。

intgetNumBands()

返回图像数据的总 band 数。

abstract intgetNumDataElements()

返回通过 getDataElements 和 setDataElements 方法传输一个像素所需的数据元素数。

double[]getPixel(intx, inty, double[]dArray, DataBufferdata)

在一个 double 数组中返回指定像素的样本。

float[]getPixel(intx, inty, float[]fArray, DataBufferdata)

在一个 float 数组中返回指定像素的样本。

int[]getPixel(intx, inty, int[]iArray, DataBufferdata)

在一个 int 数组中返回指定像素的样本,每个数组元素一个样本。

double[]getPixels(intx, inty, intw, inth, double[]dArray, DataBufferdata)

在一个 double 数组中返回像素矩形的所有样本,每个数组元素一个样本。

float[]getPixels(intx, inty, intw, inth, float[]fArray, DataBufferdata)

在一个 float 数组中返回像素矩形的所有样本,每个数组元素一个样本。

int[]getPixels(intx, inty, intw, inth, int[]iArray, DataBufferdata)

在一个 int 数组中返回像素矩形的所有样本,每个数组元素一个样本。

abstract intgetSample(intx, inty, intb, DataBufferdata)

以 int 形式返回 (x,y) 处像素的指定 band 中的样本。

doublegetSampleDouble(intx, inty, intb, DataBufferdata)

以 double 形式返回 (x,y) 处像素的指定 band 中的样本。

floatgetSampleFloat(intx, inty, intb, DataBufferdata)

以 float 形式返回 (x,y) 处像素的指定 band 中的样本。

double[]getSamples(intx, inty, intw, inth, intb, double[]dArray, DataBufferdata)

在一个 double 数组中返回指定像素矩形的指定 band 的样本,每个数组元素一个样本。

float[]getSamples(intx, inty, intw, inth, intb, float[]fArray, DataBufferdata)

在一个 float 数组中返回指定像素矩形的指定 band 的样本,每个数组元素一个样本。

int[]getSamples(intx, inty, intw, inth, intb, int[]iArray, DataBufferdata)

在一个 int 数组中返回指定像素矩形的指定 band 的样本,每个数组元素一个样本。

abstract int[]getSampleSize()

返回所有 band 样本(以位为单位)的大小。

abstract intgetSampleSize(intband)

返回指定 band 样本(以位为单位)的大小。

intgetTransferType()

返回通过 getDataElements 和 setDataElements 方法传输像素所使用的 TransferType。

intgetWidth()

返回像素宽度。

voidsetDataElements(intx, inty, intw, inth, Objectobj, DataBufferdata)

根据 TransferType 类型的基本数组设置指定 DataBuffer 中像素矩形的数据。

abstract voidsetDataElements(intx, inty, Objectobj, DataBufferdata)

根据 TransferType 类型的基本数组设置指定 DataBuffer 中单个像素的数据。

voidsetPixel(intx, inty, double[]dArray, DataBufferdata)

使用输入样本的 double 数组设置 DataBuffer 中的像素。

voidsetPixel(intx, inty, float[]fArray, DataBufferdata)

使用输入样本的 float 数组设置 DataBuffer 中的像素。

voidsetPixel(intx, inty, int[]iArray, DataBufferdata)

使用输入样本的 int 数组设置 DataBuffer 中的像素。

voidsetPixels(intx, inty, intw, inth, double[]dArray, DataBufferdata)

根据为每个数组元素包含一个样本的 double 数组设置像素矩形的所有样本。

voidsetPixels(intx, inty, intw, inth, float[]fArray, DataBufferdata)

根据为每个数组元素包含一个样本的 float 数组设置像素矩形的所有样本。

voidsetPixels(intx, inty, intw, inth, int[]iArray, DataBufferdata)

根据为每个数组元素包含一个样本的 int 数组设置像素矩形的所有样本。

voidsetSample(intx, inty, intb, doubles, DataBufferdata)

使用输入的 double 设置 DataBuffer 中 (x,y) 处像素的指定 band 中的样本。

voidsetSample(intx, inty, intb, floats, DataBufferdata)

使用输入的 float 设置 DataBuffer 中 (x,y) 处像素的指定 band 中的样本。

abstract voidsetSample(intx, inty, intb, ints, DataBufferdata)

使用输入的 int 设置 DataBuffer 中 (x,y) 处像素的指定 band 中的样本。

voidsetSamples(intx, inty, intw, inth, intb, double[]dArray, DataBufferdata)

根据为每个数组元素包含一个样本的 double 数组设置指定像素矩形的指定 band 中的样本。

voidsetSamples(intx, inty, intw, inth, intb, float[]fArray, DataBufferdata)

根据为每个数组元素包含一个样本的 float 数组设置指定像素矩形的指定 band 中的样本。

voidsetSamples(intx, inty, intw, inth, intb, int[]iArray, DataBufferdata)

根据为每个数组元素包含一个样本的 int 数组设置指定像素矩形的指定 band 中的样本。

从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

字段详细信息

width

protected int width
此 SampleModel 描述的图像数据区域的像素宽度。

height

protected int height
此 SampleModel 描述的图像数据区域的像素高度。

numBands

protected int numBands
此 SampleModel 描述的图像数据的 band 数。

dataType

protected int dataType
存储像素数据的 DataBuffer 的数据类型。
另请参见:
DataBuffer

构造方法详细信息

SampleModel

public SampleModel(intdataType,
                   intw,
                   inth,
                   intnumBands)
构造一个具有指定参数的 SampleModel。
参数:
dataType - 存储像素数据的 DataBuffer 的数据类型。
w - 图像数据区域的(像素)宽度。
h - 图像数据区域的(像素)高度。
numBands - 图像数据的 band 数。
抛出:
IllegalArgumentException - 如果 wh 不大于 0
IllegalArgumentException - 如果 wh 所产生的结果大于 Integer.MAX_VALUE
IllegalArgumentException - 如果 dataType 不是受支持的数据类型之一

方法详细信息

getWidth

public final int getWidth()
返回像素宽度。
返回:
SampleModel 描述的图像数据区域的像素宽度。

getHeight

public final int getHeight()
返回像素高度。
返回:
SampleModel 描述的图像数据区域的像素高度。

getNumBands

public final int getNumBands()
返回图像数据的总 band 数。
返回:
SampleModel 描述的图像数据的 band 数。

getNumDataElements

public abstract int getNumDataElements()
返回通过 getDataElements 和 setDataElements 方法传输一个像素所需的数据元素数。当通过这些方法传输像素时,可以以压缩或非压缩格式传输它们,这取决于 SampleModel 的实现。使用这些方法,像素就可以以具有 getTransferType() 给出的基本类型的 getNumDataElements() 元素数组的格式进行传输。TransferType 可以与 DataType 的存储数据类型相同,也可以不同。
返回:
数据元素的数量。
另请参见:
getDataElements(int, int, Object, DataBuffer) , getDataElements(int, int, int, int, Object, DataBuffer) , setDataElements(int, int, Object, DataBuffer) , setDataElements(int, int, int, int, Object, DataBuffer) , getTransferType()

getDataType

public final int getDataType()
返回存储像素数据的 DataBuffer 的数据类型。
返回:
数据类型。

getTransferType

public int getTransferType()
返回通过 getDataElements 和 setDataElements 方法传输像素所使用的 TransferType。当通过这些方法传输像素时,可以以压缩或非压缩格式传输它们,这取决于 SampleModel 的实现。使用这些方法,像素就可以以具有 getTransferType() 给出的基本类型的 getNumDataElements() 元素数组的格式进行传输。TransferType 可以与 DataType 的存储数据类型相同,也可以不同。TransferType 将是 DataBuffer 中定义的类型之一。
返回:
传输类型。
另请参见:
getDataElements(int, int, Object, DataBuffer) , getDataElements(int, int, int, int, Object, DataBuffer) , setDataElements(int, int, Object, DataBuffer) , setDataElements(int, int, int, int, Object, DataBuffer) , getNumDataElements() , DataBuffer

getPixel

public int[] getPixel(intx,
                      inty,
                      int[]iArray,
                      DataBufferdata)
在一个 int 数组中返回指定像素的样本,每个数组元素一个样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x,y - 像素位置的坐标
iArray - 如果为非 null,则返回此数组中的样本
data - 包含图像数据的 DataBuffer
返回:
指定像素的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 iArray 太小不能容纳输出。
另请参见:
setPixel(int, int, int[], DataBuffer)

getDataElements

public abstract Object getDataElements(intx,
                                       inty,
                                       Objectobj,
                                       DataBufferdata)
返回 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 传输到 DataBuffer db2 ,前者的存储布局由 SampleModel sm1 描述,后者的存储布局由 SampleModel sm2 描述。该传输通常比使用 getPixel/setPixel 更有效。

             SampleModel sm1, sm2;
             DataBuffer db1, db2;
             sm2.setDataElements(x, y, sm1.getDataElements(x, y, null, db1), db2);

如果 SampleModel 具有相同的 band 数量,相应 band 的每个样本具有相同的位数,且 TransferType 相同,则使用 getDataElements/setDataElements 在两个 DataBuffer/SampleModel 对之间传输是合法的。

如果 obj 为非 null,则它应是 TransferType 类型的基本数组。否则抛出 ClassCastException。如果坐标不在边界内,或者 obj 为非 null 且不足以保存像素数据,则抛出 ArrayIndexOutOfBoundsException。

参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
obj - 如果为非 null,则 obj 是返回像素数据的基本数组。
data - 包含图像数据的 DataBuffer。
返回:
指定像素的数据元素。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 obj 太小不能容纳输出。
另请参见:
getNumDataElements() , getTransferType() , DataBuffer , setDataElements(int, int, Object, DataBuffer)

getDataElements

public Object getDataElements(intx,
                              inty,
                              intw,
                              inth,
                              Objectobj,
                              DataBufferdata)
返回 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 传输到 DataBuffer db2 ,前者的存储布局由 SampleModel sm1 描述,后者的存储布局由 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);

如果 SampleModel 具有相同的 band 数量,相应 band 的每个样本具有相同的位数,且 TransferType 相同,则使用 getDataElements/setDataElements 在两个 DataBuffer/SampleModel 对之间传输是合法的。

如果 obj 为非 null,则它应是 TransferType 类型的基本数组。否则抛出 ClassCastException。如果坐标不在边界内,或者 obj 为非 null 且大小不足以保存像素数据,则抛出 ArrayIndexOutOfBoundsException。

参数:
x - 像素矩形的最小 X 坐标。
y - 像素矩形的最小 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
obj - 如果为非 null,则 obj 是返回像素数据的基本数组。
data - 包含图像数据的 DataBuffer。
返回:
指定像素区域的数据元素。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 obj 太小不能容纳输出。
另请参见:
getNumDataElements() , getTransferType() , setDataElements(int, int, int, int, Object, DataBuffer) , DataBuffer

setDataElements

public abstract void setDataElements(intx,
                                     inty,
                                     Objectobj,
                                     DataBufferdata)
根据 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 传输到 DataBuffer db2 ,前者的存储布局由 SampleModel sm1 描述,后者的存储布局由 SampleModel sm2 描述。该传输通常比使用 getPixel/setPixel 更有效。

             SampleModel sm1, sm2;
             DataBuffer db1, db2;
             sm2.setDataElements(x, y, sm1.getDataElements(x, y, null, db1),
                           db2);

如果 SampleModel 具有相同的 band 数量,相应 band 的每个样本具有相同的位数,且 TransferType 相同,则使用 getDataElements/setDataElements 在两个 DataBuffer/SampleModel 对之间传输是合法的。

obj 必须是 TransferType 类型的基本数组。否则抛出 ClassCastException。如果坐标不在边界内,或者 obj 的大小不足以容纳像素数据,则抛出 ArrayIndexOutOfBoundsException。

参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
obj - 包含像素数据的基本数组。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 obj 太小不能容纳输入。
另请参见:
getNumDataElements() , getTransferType() , getDataElements(int, int, Object, DataBuffer) , DataBuffer

setDataElements

public void setDataElements(intx,
                            inty,
                            intw,
                            inth,
                            Objectobj,
                            DataBufferdata)
根据 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 传输到 DataBuffer db2 ,前者的存储布局由 SampleModel sm1 描述,后者的存储布局由 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);

如果 SampleModel 具有相同的 band 数量,相应 band 的每个样本具有相同的位数,且 TransferType 相同,则使用 getDataElements/setDataElements 在两个 DataBuffer/SampleModel 对之间传输是合法的。

obj 必须是 TransferType 类型的基本数组。否则抛出 ClassCastException。如果坐标不在边界内,或者 obj 的大小不足以容纳像素数据,则抛出 ArrayIndexOutOfBoundsException。

参数:
x - 像素矩形的最小 X 坐标。
y - 像素矩形的最小 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
obj - 包含像素数据的基本数组。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 obj 太小不能容纳输入。
另请参见:
getNumDataElements() , getTransferType() , getDataElements(int, int, int, int, Object, DataBuffer) , DataBuffer

getPixel

public float[] getPixel(intx,
                        inty,
                        float[]fArray,
                        DataBufferdata)
在一个 float 数组中返回指定像素的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
fArray - 如果为非 null,则在此数组中返回样本。
data - 包含图像数据的 DataBuffer。
返回:
指定像素的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 fArray 太小不能容纳输出。
另请参见:
setPixel(int, int, float[], DataBuffer)

getPixel

public double[] getPixel(intx,
                         inty,
                         double[]dArray,
                         DataBufferdata)
在一个 double 数组中返回指定像素的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
dArray - 如果为非 null,则在此数组中返回样本。
data - 包含图像数据的 DataBuffer。
返回:
指定像素的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 dArray 太小不能容纳输出。
另请参见:
setPixel(int, int, double[], DataBuffer)

getPixels

public int[] getPixels(intx,
                       inty,
                       intw,
                       inth,
                       int[]iArray,
                       DataBufferdata)
在一个 int 数组中返回像素矩形的所有样本,每个数组元素一个样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
iArray - 如果为非 null,则在此数组中返回样本。
data - 包含图像数据的 DataBuffer。
返回:
指定像素区域的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 iArray 太小不能容纳输出。
另请参见:
setPixels(int, int, int, int, int[], DataBuffer)

getPixels

public float[] getPixels(intx,
                         inty,
                         intw,
                         inth,
                         float[]fArray,
                         DataBufferdata)
在一个 float 数组中返回像素矩形的所有样本,每个数组元素一个样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
fArray - 如果为非 null,则在此数组中返回样本。
data - 包含图像数据的 DataBuffer。
返回:
指定像素区域的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 fArray 太小不能容纳输出。
另请参见:
setPixels(int, int, int, int, float[], DataBuffer)

getPixels

public double[] getPixels(intx,
                          inty,
                          intw,
                          inth,
                          double[]dArray,
                          DataBufferdata)
在一个 double 数组中返回像素矩形的所有样本,每个数组元素一个样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
dArray - 如果为非 null,则在此数组中返回样本。
data - 包含图像数据的 DataBuffer。
返回:
指定像素区域的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 dArray 太小不能容纳输出。
另请参见:
setPixels(int, int, int, int, double[], DataBuffer)

getSample

public abstract int getSample(intx,
                              inty,
                              intb,
                              DataBufferdata)
以 int 形式返回 (x,y) 处像素的指定 band 中的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
b - 要返回的 band。
data - 包含图像数据的 DataBuffer。
返回:
指定像素的指定 band 中的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内。
另请参见:
setSample(int, int, int, int, DataBuffer)

getSampleFloat

public float getSampleFloat(intx,
                            inty,
                            intb,
                            DataBufferdata)
以 float 形式返回 (x,y) 处像素的指定 band 中的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
b - 要返回的 band。
data - 包含图像数据的 DataBuffer。
返回:
指定像素的指定 band 中的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内。

getSampleDouble

public double getSampleDouble(intx,
                              inty,
                              intb,
                              DataBufferdata)
以 double 形式返回 (x,y) 处像素的指定 band 中的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
b - 要返回的 band。
data - 包含图像数据的 DataBuffer。
返回:
指定像素的指定 band 中的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内。

getSamples

public int[] getSamples(intx,
                        inty,
                        intw,
                        inth,
                        intb,
                        int[]iArray,
                        DataBufferdata)
在一个 int 数组中返回指定像素矩形的指定 band 的样本,每个数组元素一个样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
b - 要返回的 band。
iArray - 如果为非 null,则在此数组中返回样本。
data - 包含图像数据的 DataBuffer。
返回:
指定像素区域的指定 band 的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内,或者 iArray 太小不能容纳输出。
另请参见:
setSamples(int, int, int, int, int, int[], DataBuffer)

getSamples

public float[] getSamples(intx,
                          inty,
                          intw,
                          inth,
                          intb,
                          float[]fArray,
                          DataBufferdata)
在一个 float 数组中返回指定像素矩形的指定 band 的样本,每个数组元素一个样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
b - 要返回的 band。
fArray - 如果为非 null,则在此数组中返回样本。
data - 包含图像数据的 DataBuffer。
返回:
指定像素区域的指定 band 的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内,或者 fArray 太小不能容纳输出。
另请参见:
setSamples(int, int, int, int, int, float[], DataBuffer)

getSamples

public double[] getSamples(intx,
                           inty,
                           intw,
                           inth,
                           intb,
                           double[]dArray,
                           DataBufferdata)
在一个 double 数组中返回指定像素矩形的指定 band 的样本,每个数组元素一个样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
b - 要返回的 band。
dArray - 如果为非 null,则在此数组中返回样本。
data - 包含图像数据的 DataBuffer。
返回:
指定像素区域的指定 band 的样本。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内,或者 dArray 太小不能容纳输出。
另请参见:
setSamples(int, int, int, int, int, double[], DataBuffer)

setPixel

public void setPixel(intx,
                     inty,
                     int[]iArray,
                     DataBufferdata)
使用输入样本的 int 数组设置 DataBuffer 中的像素。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
iArray - int 数组中的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 iArray 或 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 iArray 太小不能容纳输入。
另请参见:
getPixel(int, int, int[], DataBuffer)

setPixel

public void setPixel(intx,
                     inty,
                     float[]fArray,
                     DataBufferdata)
使用输入样本的 float 数组设置 DataBuffer 中的像素。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
fArray - float 数组中的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 fArray 或 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 fArray 太小不能容纳输入。
另请参见:
getPixel(int, int, float[], DataBuffer)

setPixel

public void setPixel(intx,
                     inty,
                     double[]dArray,
                     DataBufferdata)
使用输入样本的 double 数组设置 DataBuffer 中的像素。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
dArray - double 数组中的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 dArray 或 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 fArray 太小不能容纳输入。
另请参见:
getPixel(int, int, double[], DataBuffer)

setPixels

public void setPixels(intx,
                      inty,
                      intw,
                      inth,
                      int[]iArray,
                      DataBufferdata)
根据为每个数组元素包含一个样本的 int 数组设置像素矩形的所有样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
iArray - int 数组中的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 iArray 或 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 iArray 太小不能容纳输入。
另请参见:
getPixels(int, int, int, int, int[], DataBuffer)

setPixels

public void setPixels(intx,
                      inty,
                      intw,
                      inth,
                      float[]fArray,
                      DataBufferdata)
根据为每个数组元素包含一个样本的 float 数组设置像素矩形的所有样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
fArray - float 数组中的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 fArray 或 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 fArray 太小不能容纳输入。
另请参见:
getPixels(int, int, int, int, float[], DataBuffer)

setPixels

public void setPixels(intx,
                      inty,
                      intw,
                      inth,
                      double[]dArray,
                      DataBufferdata)
根据为每个数组元素包含一个样本的 double 数组设置像素矩形的所有样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
dArray - double 数组中的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 dArray 或 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标不在边界内,或者 dArray 太小不能容纳输入。
另请参见:
getPixels(int, int, int, int, double[], DataBuffer)

setSample

public abstract void setSample(intx,
                               inty,
                               intb,
                               ints,
                               DataBufferdata)
使用输入的 int 设置 DataBuffer 中 (x,y) 处像素的指定 band 中的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
b - 要设置的 band。
s - int 形式的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内。
另请参见:
getSample(int, int, int, DataBuffer)

setSample

public void setSample(intx,
                      inty,
                      intb,
                      floats,
                      DataBufferdata)
使用输入的 float 设置 DataBuffer 中 (x,y) 处像素的指定 band 中的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
b - 要设置的 band。
s - float 形式的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内。
另请参见:
getSample(int, int, int, DataBuffer)

setSample

public void setSample(intx,
                      inty,
                      intb,
                      doubles,
                      DataBufferdata)
使用输入的 double 设置 DataBuffer 中 (x,y) 处像素的指定 band 中的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 像素位置的 X 坐标。
y - 像素位置的 Y 坐标。
b - 要设置的 band。
s - double 形式的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内。
另请参见:
getSample(int, int, int, DataBuffer)

setSamples

public void setSamples(intx,
                       inty,
                       intw,
                       inth,
                       intb,
                       int[]iArray,
                       DataBufferdata)
根据为每个数组元素包含一个样本的 int 数组设置指定像素矩形的指定 band 中的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
b - 要设置的 band。
iArray - int 数组中的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 iArray 或 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内,或者 iArray 太小不能容纳输入。
另请参见:
getSamples(int, int, int, int, int, int[], DataBuffer)

setSamples

public void setSamples(intx,
                       inty,
                       intw,
                       inth,
                       intb,
                       float[]fArray,
                       DataBufferdata)
根据为每个数组元素包含一个样本的 float 数组设置指定像素矩形的指定 band 中的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
b - 要设置的 band。
fArray - float 数组中的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 fArray 或 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内,或者 fArray 太小不能容纳输入。
另请参见:
getSamples(int, int, int, int, int, float[], DataBuffer)

setSamples

public void setSamples(intx,
                       inty,
                       intw,
                       inth,
                       intb,
                       double[]dArray,
                       DataBufferdata)
根据为每个数组元素包含一个样本的 double 数组设置指定像素矩形的指定 band 中的样本。如果坐标不在边界内,则抛出 ArrayIndexOutOfBoundsException。
参数:
x - 左上角像素位置的 X 坐标。
y - 左上角像素位置的 Y 坐标。
w - 像素矩形的宽度。
h - 像素矩形的高度。
b - 要设置的 band。
dArray - double 数组中的输入样本。
data - 包含图像数据的 DataBuffer。
抛出:
NullPointerException - 如果 dArray 或 data 为 null。
ArrayIndexOutOfBoundsException - 如果坐标或 band 索引不在边界内,或者 dArray 太小不能容纳输入。
另请参见:
getSamples(int, int, int, int, int, double[], DataBuffer)

createCompatibleSampleModel

public abstract SampleModel createCompatibleSampleModel(intw,
                                                        inth)
创建一个用此 SampleModel 的格式描述数据但宽度和高度不同的 SampleModel。
参数:
w - 图像数据的宽度
h - 图像数据的高度
返回:
描绘的数据与此 SampleModel 相同但大小不同的 SampleModel

createSubsetSampleModel

public abstract SampleModel createSubsetSampleModel(int[]bands)
创建一个新 SampleModel,它具有此 SampleModel 的 band 子集。
参数:
bands - 此 SampleModel 的 band 子集
返回:
具有此 SampleModel 的 band 子集的 SampleModel

createDataBuffer

public abstract DataBuffer createDataBuffer()
创建一个对应于此 SampleModel 的 DataBuffer。DataBuffer 的宽度和高度将与此 SampleModel 的匹配。
返回:
对应于此 SampleModelDataBuffer

getSampleSize

public abstract int[] getSampleSize()
返回所有 band 样本(以位为单位)的大小。
返回:
所有 band 样本的大小。

getSampleSize

public abstract int getSampleSize(intband)
返回指定 band 样本(以位为单位)的大小。
参数:
band - 指定的 band
返回:
指定 band 样本的大小。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文