JavaTM 2 Platform
Standard Ed. 6

java.awt.image
類別 SampleModel

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 位 byte、有符號 16 位 short 等),並且可以指定如何在記憶體中組織樣本。在 Java 2D(tm) API 中,內置的圖像處理運算符可能無法處理所有可能的樣本型別,但通常可以處理 16 位或 16 位以下的無符號整數樣本。某些運算符支持更大範圍的樣本型別。

像素的集合被表示為一個 Raster,它由 DataBuffer 和 SampleModel 組成。SampleModel 允許存取 DataBuffer 中的樣本,並提供開發人員可以用來直接操作 DataBuffer 中樣本和像素的低層級別資訊。

此類別通常是處理圖像的一個回調方法。更為有效的程式碼將 SampleModel 強行轉換為適當的子類別,並提取直接操作 DataBuffer 中的像素所需的資訊。

另請參見:
DataBuffer, Raster, ComponentSampleModel, PixelInterleavedSampleModel, BandedSampleModel, MultiPixelPackedSampleModel, SinglePixelPackedSampleModel

欄位摘要
protected  int dataType
          存儲像素資料的 DataBuffer 的資料型別。
protected  int height
          此 SampleModel 描述的圖像資料區域的高度(以像素位單位)。
protected  int numBands
          此 SampleModel 描述的圖像資料的 band 數。
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,它具有此 SampleModel 的 band 子集。
 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()
          返回圖像資料的總 band 數。
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)
          在一個 double 陣列中返回像素矩形的所有樣本,每個陣列元素對應一個樣本。
 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)
          以 int 形式返回指定 band 中對應於 (x,y) 處像素的樣本。
 double getSampleDouble(int x, int y, int b, DataBuffer data)
          以 double 形式返回指定 band 中對應於 (x,y) 處像素的樣本。
 float getSampleFloat(int x, int y, int b, DataBuffer data)
          以 float 形式返回指定 band 中對應於 (x,y) 處像素的樣本。
 double[] getSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data)
          在一個 double 陣列中返回指定 band 中對應於指定像素矩形的樣本,每個陣列元素對應一個樣本。
 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()
          返回所有 band 樣本的大小(以位為單位)。
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)
          使用輸入的 double 樣本陣列設置 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)
          根據 double 陣列設置像素矩形的所有樣本,該陣列為每個陣列元素包含一個樣本。
 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 設置指定 band 中對應於 DataBuffer (x,y) 處像素的樣本。
 void setSample(int x, int y, int b, float s, DataBuffer data)
          使用輸入的 float 設置指定 band 中對應於 DataBuffer (x,y) 處像素的樣本。
abstract  void setSample(int x, int y, int b, int s, DataBuffer data)
          使用輸入的 int 設置指定 band 中對應於 DataBuffer (x,y) 處像素的樣本。
 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 中對應於指定像素矩形的樣本,該陣列為每個陣列元素包含一個樣本。
 
從類別 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(int dataType,
                   int w,
                   int h,
                   int numBands)
建構一個具有指定參數的 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 的實作。使用這些方法,像素就可以作為基本型別的 getNumDataElements() 元素陣列傳輸,基本型別由 getTransferType() 給定。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 的實作。使用這些方法,像素就可以作為基本型別的 getNumDataElements() 元素陣列傳輸,基本型別由 getTransferType() 給定。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(int x,
                      int y,
                      int[] iArray,
                      DataBuffer data)
在一個 int 陣列中返回指定像素的樣本,每個陣列元素對應一個樣本。如果坐標不在邊界內,則拋出 ArrayIndexOutOfBoundsException。

參數:
x - 像素位置的 X 坐標
y - 像素位置的 Y 坐標
iArray - 如果不為 null,則在此陣列中返回樣本
data - 套件含圖像資料的 DataBuffer
返回:
指定像素的樣本。
拋出:
NullPointerException - 如果 data 為 null。
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);
 
如果兩個 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(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);
 
如果兩個 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(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);
 
如果兩個 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(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);
 
如果兩個 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(int x,
                        int y,
                        float[] fArray,
                        DataBuffer data)
在一個 float 陣列中返回指定像素的樣本。如果坐標不在邊界內,則拋出 ArrayIndexOutOfBoundsException。

參數:
x - 像素位置的 X 坐標。
y - 像素位置的 Y 坐標。
fArray - 如果不為 null,則在此陣列中返回樣本。
data - 套件含圖像資料的 DataBuffer。
返回:
指定像素的樣本。
拋出:
NullPointerException - 如果 data 為 null。
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 - 如果 data 為 null。
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 - 如果不為 null,則在此陣列中返回樣本。
data - 套件含圖像資料的 DataBuffer。
返回:
指定像素區域的樣本。
拋出:
NullPointerException - 如果 data 為 null。
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 - 如果 data 為 null。
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)
在一個 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(int x,
                              int y,
                              int b,
                              DataBuffer data)
以 int 形式返回指定 band 中對應於 (x,y) 處像素的樣本。如果坐標不在邊界內,則拋出 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(int x,
                            int y,
                            int b,
                            DataBuffer data)
以 float 形式返回指定 band 中對應於 (x,y) 處像素的樣本。如果坐標不在邊界內,則拋出 ArrayIndexOutOfBoundsException。

參數:
x - 像素位置的 X 坐標。
y - 像素位置的 Y 坐標。
b - 要返回的 band。
data - 套件含圖像資料的 DataBuffer。
返回:
指定 band 中對應於指定像素的樣本。
拋出:
NullPointerException - 如果 data 為 null。
ArrayIndexOutOfBoundsException - 如果坐標或 band 索引不在邊界內。

getSampleDouble

public double getSampleDouble(int x,
                              int y,
                              int b,
                              DataBuffer data)
以 double 形式返回指定 band 中對應於 (x,y) 處像素的樣本。如果坐標不在邊界內,則拋出 ArrayIndexOutOfBoundsException。

參數:
x - 像素位置的 X 坐標。
y - 像素位置的 Y 坐標。
b - 要返回的 band。
data - 套件含圖像資料的 DataBuffer。
返回:
指定 band 中對應於指定像素的樣本。
拋出:
NullPointerException - 如果 data 為 null。
ArrayIndexOutOfBoundsException - 如果坐標或 band 索引不在邊界內。

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 - 要返回的 band。
iArray - 如果不為 null,則在此陣列中返回樣本。
data - 套件含圖像資料的 DataBuffer。
返回:
指定 band 中對應於指定像素區域的樣本。
拋出:
NullPointerException - 如果 data 為 null。
ArrayIndexOutOfBoundsException - 如果坐標或 band 索引不在邊界內,或者 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 - 要返回的 band。
fArray - 如果不為 null,則在此陣列中返回樣本。
data - 套件含圖像資料的 DataBuffer。
返回:
指定 band 中對應於指定像素區域的樣本。
拋出:
NullPointerException - 如果 data 為 null。
ArrayIndexOutOfBoundsException - 如果坐標或 band 索引不在邊界內,或者 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)
在一個 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(int x,
                     int y,
                     int[] iArray,
                     DataBuffer data)
使用輸入的 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(int x,
                     int y,
                     float[] fArray,
                     DataBuffer data)
使用輸入的 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(int x,
                     int y,
                     double[] dArray,
                     DataBuffer data)
使用輸入的 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(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 或 data 為 null。
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 或 data 為 null。
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)
根據 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(int x,
                               int y,
                               int b,
                               int s,
                               DataBuffer data)
使用輸入的 int 設置指定 band 中對應於 DataBuffer (x,y) 處像素的樣本。如果坐標不在邊界內,則拋出 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(int x,
                      int y,
                      int b,
                      float s,
                      DataBuffer data)
使用輸入的 float 設置指定 band 中對應於 DataBuffer (x,y) 處像素的樣本。此方法的預設實作將輸入 float 樣本強制轉換為 int 值,然後使用該 int 值調用 setSample(int, int, int, DataBuffer) 方法。如果坐標不在邊界內,則拋出 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(int x,
                      int y,
                      int b,
                      double s,
                      DataBuffer data)
使用輸入的 double 設置指定 band 中對應於 DataBuffer (x,y) 處像素的樣本。此方法的預設實作將輸入 double 樣本強制轉換為 int 值,然後使用該 int 值調用 setSample(int, int, int, DataBuffer) 方法。如果坐標不在邊界內,則拋出 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(int x,
                       int y,
                       int w,
                       int h,
                       int b,
                       int[] iArray,
                       DataBuffer data)
根據 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(int x,
                       int y,
                       int w,
                       int h,
                       int b,
                       float[] fArray,
                       DataBuffer data)
根據 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(int x,
                       int y,
                       int w,
                       int h,
                       int b,
                       double[] dArray,
                       DataBuffer data)
根據 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(int w,
                                                        int h)
創建一個用此 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(int band)
返回指定 band 樣本的大小(以位為單位)。

參數:
band - 指定的 band
返回:
指定 band 樣本的大小。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only