模块  java.desktop
软件包  java.awt.image

Class SampleModel

  • 已知直接子类:
    ComponentSampleModelMultiPixelPackedSampleModelSinglePixelPackedSampleModel

    public abstract class SampleModel
    extends Object
    该抽象类定义了用于提取图像中像素样本的接口。 所有图像数据都表示为像素集合。 每个像素由许多样本组成。 样本是图像的一个波段的数据,波段由图像中特定类型的所有样本组成。 例如,像素可能包含三个样本,表示其红色,绿色和蓝色分量。 包含此像素的图像中有三个波段。 一个波段由图像中所有像素的所有红色样本组成。 第二个波段由所有绿色样本组成,剩余波段由所有蓝色样本组成。 像素可以以各种格式存储。 例如,来自特定频带的所有样本可以连续存储,或者来自单个像素的所有样本可以连续存储。

    SampleModel的子类指定它们可以表示的样本类型(例如,无符号8位字节,带符号的16位短字等),并且可以指定样本在内存中的组织方式。 在Java 2D(tm)API中,内置图像处理运算符可能无法对所有可能的样本类型进行操作,但通常适用于16位或更少的无符号整数样本。 一些运营商支持更多种类的样本。

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

    该类通常是用于处理图像的后退方法。 更高效的代码会将SampleModel强制转换为适当的子类,并提取直接操作DataBuffer中像素所需的信息。

    另请参见:
    DataBufferRasterComponentSampleModelPixelInterleavedSampleModelBandedSampleModelMultiPixelPackedSampleModelSinglePixelPackedSampleModel
    • 字段汇总

      字段  
      变量和类型 字段 描述
      protected int dataType
      存储像素数据的DataBuffer的数据类型。
      protected int height
      此SampleModel描述的图像数据区域的高度(以像素为单位)。
      protected int numBands
      此SampleModel描述的图像数据的波段数。
      protected int width
      此SampleModel描述的图像数据区域的像素宽度。
    • 构造方法摘要

      构造方法  
      构造器 描述
      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 - 如果 wh不大于0
        IllegalArgumentException - 如果 wh的产品大于 Integer.MAX_VALUE
        IllegalArgumentException - 如果 dataType不是受支持的数据类型之一
    • 方法详细信息

      • getWidth

        public final int getWidth()
        以像素为单位返回宽度。
        结果
        SampleModel描述的图像数据区域的宽度(以像素为 SampleModel )。
      • getHeight

        public final int getHeight()
        以像素为单位返回高度。
        结果
        SampleModel描述的图像数据区域的像素高度。
      • getNumBands

        public final int getNumBands()
        返回图像数据的总带数。
        结果
        SampleModel描述的图像数据的带数。
      • getDataType

        public final int getDataType()
        返回存储像素数据的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 (其存储布局由SampleModel sm1描述) sm1到DataBuffer db2 ,其存储布局由SampleModel sm2描述。 传输通常比使用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()DataBuffersetDataElements(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到DataBuffer db2 ,其存储布局由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 (其存储布局由SampleModel sm1描述) sm1到DataBuffer db2 ,其存储布局由SampleModel sm2描述。 传输通常比使用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到DataBuffer db2 ,其存储布局由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)
      • 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)
      • 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.