Module  java.desktop
软件包  java.awt.image

Class SampleModel

  • 已知直接子类:
    ComponentSampleModelMultiPixelPackedSampleModelSinglePixelPackedSampleModel


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

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

    像素的集合被表示为光栅,其由DataBuffer和SampleModel组成。 SampleModel允许访问DataBuffer中的样本,并可能提供程序员可以直接操作DataBuffer中的样本和像素的低级信息。

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

    另请参见:
    DataBufferRasterComponentSampleModelPixelInterleavedSampleModelBandedSampleModelMultiPixelPackedSampleModelSinglePixelPackedSampleModel
    • Field Summary

      Fields  
      Modifier and Type Field 描述
      protected int dataType
      存储像素数据的DataBuffer的数据类型。
      protected int height
      该SampleModel描述的图像数据区域的像素高度。
      protected int numBands
      该SampleModel描述的图像数据的频带数。
      protected int width
      此SampleModel描述的图像数据区域的宽度(以像素为单位)。
    • 构造方法摘要

      构造方法  
      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 - 如果 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 - 如果非空,则返回此数组中的样本
        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到DataBuffer db2 ,其存储布局由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()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具有相同数量的频带,则使用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到DataBuffer db2 ,其存储布局由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到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具有相同数量的频带,则使用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)
      • 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.