JavaTM 2 Platform
Standard Ed. 6

java.awt.image
類別 Raster

java.lang.Object
  繼承者 java.awt.image.Raster
直接已知子類別:
WritableRaster

public class Raster
extends Object

表示像素矩形陣列的類別。Raster 封裝存儲樣本值的 DataBuffer,以及描述如何在 DataBuffer 中定位給定樣本值的 SampleModel。

Raster 定義佔據特定平面矩形區域的像素值,該區域不一定包括 (0, 0)。該矩形也稱為 Raster 的邊界矩形,可以通過 getBounds 方法獲得,由 minX、minY、width 和 height 值定義。minX 和 minY 值定義 Raster 左上角的坐標。對邊界矩形外部像素的參考可能導致拋出異常,也可能導致參考與 Raster 的關聯 DataBuffer 無關的元素。使用者應該避免存取這種像素。

SampleModel 描述如何將 Raster 的樣本存儲在 DataBuffer 的基本陣列元素中。可按每個資料元素一個樣本的方式存儲樣本(使用 PixelInterleavedSampleModel 或 BandedSampleModel),或者將多個樣本打包到一個元素中(使用 SinglePixelPackedSampleModel 或 MultiPixelPackedSampleModel)。SampleModel 還控制樣本是否為符號擴展的,即是否允許將無符號資料以有符號的 Java 資料型別(如 byte、short 和 int)存儲。

雖然 Raster 可能存在於平面中的任何位置,但 SampleModel 使用從 (0, 0) 開始的簡單坐標系。因此 Raster 套件含一個平移係數,允許在 Raster 的坐標系和 SampleModel 的坐標系之間映射像素位置。通過 getSampleModelTranslateX 和 getSampleModelTranslateY 方法可獲取從 SampleModel 坐標系到 Raster 坐標系的平移。

通過顯示建構或使用 createChild 和 createTranslatedChild 方法,Raster 可與另一個 Raster 共享 DataBuffer。這些方法創建的 Raster 可以返回對通過 getParent 方法創建的 Raster 的參考。對於不是通過調用 createTranslatedChild 或 createChild 建構的 Raster,getParent 將返回 null。

createTranslatedChild 方法返回一個與當前 Raster 共享所有資料的新 Raster,但卻佔用一個具有不同開始點、相同寬度和高度的邊界矩形。例如,如果父 Raster 佔用 (10, 10) 到 (100, 100) 的區域,並定義了平移的 Raster 從 (50, 50) 開始,則父 Raster 的像素 (20, 20) 和子 Raster 的像素 (60, 60) 佔用兩個 Raster 共享的 DataBuffer 中的同一位置。在第一種情況中,像素坐標應該加上 (-10, -10) 以得到對應的 SampleModel 坐標,第二種情況中則應加上 (-50, -50)。

通過從父 Raster 的 sampleModelTranslateX 和 sampleModelTranslateY 值中減去子 Raster 的 sampleModelTranslateX 和 sampleModelTranslateY 值,可以確定父 Raster 和子 Raster 之間的平移。

createChild 方法可用於創建新的 Raster,該 Raster 只佔用其父 Raster 邊界矩形的一個子集(具有相同或平移後的坐標系),或者具有其父 Raster 的 band 子集。

所有建構子都是受保護的。創建 Raster 的正確方式是使用此類別中定義的某個靜態創建方法。這些方法創建使用標準 Interleaved、Banded 和 Packed SampleModel 的 Raster 實例,相比通過結合外部產生的 SampleModel 和 DataBuffer 所創建的 Raster,該 Raster 的處理要更高效。

另請參見:
DataBuffer, SampleModel, PixelInterleavedSampleModel, BandedSampleModel, SinglePixelPackedSampleModel, MultiPixelPackedSampleModel

欄位摘要
protected  DataBuffer dataBuffer
          存儲圖像資料的 DataBuffer。
protected  int height
          此 Raster 的高度。
protected  int minX
          此 Raster 左上角像素的 X 坐標。
protected  int minY
          此 Raster 左上角像素的 Y 坐標。
protected  int numBands
          Raster 中的 band 數。
protected  int numDataElements
          每個像素的 DataBuffer 資料元素數。
protected  Raster parent
          此 Raster 的父 Raster,或者為 null。
protected  SampleModel sampleModel
          描述此 Raster 的像素在 DataBuffer 中存儲方式的 SampleModel。
protected  int sampleModelTranslateX
          從 Raster 的 SampleModel 坐標空間到該 Raster 坐標空間的 X 平移。
protected  int sampleModelTranslateY
          從 Raster 的 SampleModel 坐標空間到該 Raster 坐標空間的 Y 平移。
protected  int width
          此 Raster 的寬度。
 
建構子摘要
protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
          建構具有給定 SampleModel 和 DataBuffer 的 Raster。
protected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, Raster parent)
          建構具有給定 SampleModel、DataBuffer 和父 Raster 的 Raster。
protected Raster(SampleModel sampleModel, Point origin)
          建構具有給定 SampleModel 的 Raster。
 
方法摘要
static WritableRaster createBandedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
          根據 BandedSampleModel 創建一個具有指定 DataBuffer、寬度、高度、掃瞄行間距、存儲單元索引和 band 偏移量的 Raster。
static WritableRaster createBandedRaster(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
          根據 BandedSampleModel 創建一個具有指定資料型別、寬度、高度、掃瞄行間距、存儲單元索引和 band 偏移量的 Raster。
static WritableRaster createBandedRaster(int dataType, int w, int h, int bands, Point location)
          根據 BandedSampleModel 創建一個具有指定資料型別、寬度、高度和 band 數的 Raster。
 Raster createChild(int parentX, int parentY, int width, int height, int childMinX, int childMinY, int[] bandList)
          返回共享此 Raster 全部或部分 DataBuffer 的新 Raster。
 WritableRaster createCompatibleWritableRaster()
          創建一個相容的 WritableRaster,使其具有與此 Raster 相同的大小、SampleModel,以及一個新初始化的 DataBuffer。
 WritableRaster createCompatibleWritableRaster(int w, int h)
          創建一個相容的 WritableRaster,使其具有指定大小、新 SampleModel 和新初始化的 DataBuffer。
 WritableRaster createCompatibleWritableRaster(int x, int y, int w, int h)
          創建一個相容的 WritableRaster,使其具有指定位置 (minX, minY) 和大小 (width, height)、新 SampleModel 和新初始化的 DataBuffer。
 WritableRaster createCompatibleWritableRaster(Rectangle rect)
          創建一個相容的 WritableRaster,使其具有由 rect 指定的位置 (minX, minY) 和大小 (width, height)、新 SampleModel 和新初始化的 DataBuffer。
static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
          根據 PixelInterleavedSampleModel 創建一個具有指定 DataBuffer、寬度、高度、掃瞄行間距、像素間距和 band 偏移量的 Raster。
static WritableRaster createInterleavedRaster(int dataType, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
          根據 PixelInterleavedSampleModel 創建一個具有指定資料型別、寬度、高度、掃瞄行間距、像素間距和 band 偏移量的 Raster。
static WritableRaster createInterleavedRaster(int dataType, int w, int h, int bands, Point location)
          根據 PixelInterleavedSampleModel 創建一個具有指定資料型別、寬度、高度和 band 數的 Raster。
static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bandMasks, Point location)
          根據 SinglePixelPackedSampleModel 創建一個具有指定 DataBuffer、寬度、高度、掃瞄行間距和 band 遮罩碼的 Raster。
static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int bitsPerPixel, Point location)
          根據 MultiPixelPackedSampleModel 創建一個具有指定 DataBuffer、寬度、高度和每像素位數的 Raster。
static WritableRaster createPackedRaster(int dataType, int w, int h, int[] bandMasks, Point location)
          根據 SinglePixelPackedSampleModel 創建一個具有指定資料型別、寬度、高度和 band 遮罩碼的 Raster。
static WritableRaster createPackedRaster(int dataType, int w, int h, int bands, int bitsPerBand, Point location)
          根據打套件的 SampleModel 創建一個具有指定資料型別、寬度、高度、band 數和每 band 位數的 Raster。
static Raster createRaster(SampleModel sm, DataBuffer db, Point location)
          創建具有指定 SampleModel 和 DataBuffer 的 Raster。
 Raster createTranslatedChild(int childMinX, int childMinY)
          創建一個 Raster,使其大小、SampleModel 和 DataBuffer 與此 Raster 相同,但是位置不同。
static WritableRaster createWritableRaster(SampleModel sm, DataBuffer db, Point location)
          創建一個具有指定 SampleModel 和 DataBuffer 的 WritableRaster。
static WritableRaster createWritableRaster(SampleModel sm, Point location)
          創建一個具有指定 SampleModel 的 WritableRaster。
 Rectangle getBounds()
          返回此 Raster 的邊界 Rectangle。
 DataBuffer getDataBuffer()
          返回與此 Raster 關聯的 DataBuffer。
 Object getDataElements(int x, int y, int w, int h, Object outData)
          以 TransferType 型別基本陣列形式返回指定像素矩形的像素資料。
 Object getDataElements(int x, int y, Object outData)
          以 TransferType 型別的基本陣列形式返回單個像素的資料。
 int getHeight()
          返回 Raster 的像素高度。
 int getMinX()
          返回 Raster 的最小有效 X 坐標。
 int getMinY()
          返回 Raster 的最小有效 Y 坐標。
 int getNumBands()
          返回此 Raster 中的 band 數(每像素樣本)。
 int getNumDataElements()
          返回通過 getDataElements 和 setDataElements 方法傳輸一個像素所需的資料元素數。
 Raster getParent()
          返回此 Raster 的父 Raster(如果有),或者 null。
 double[] getPixel(int x, int y, double[] dArray)
          以 double 陣列形式返回指定像素的樣本。
 float[] getPixel(int x, int y, float[] fArray)
          以 float 陣列形式返回指定像素的樣本。
 int[] getPixel(int x, int y, int[] iArray)
          以 int 陣列形式返回指定像素的樣本。
 double[] getPixels(int x, int y, int w, int h, double[] dArray)
          返回一個套件含像素矩形所有樣本的 double 陣列,每個陣列元素對應一個樣本。
 float[] getPixels(int x, int y, int w, int h, float[] fArray)
          返回一個套件含像素矩形所有樣本的 float 陣列,每個陣列元素對應一個樣本。
 int[] getPixels(int x, int y, int w, int h, int[] iArray)
          返回一個套件含像素矩形所有樣本的 int 陣列,每個陣列元素對應一個樣本。
 int getSample(int x, int y, int b)
          以 int 形式返回指定 band 中對應於 (x,y) 處像素的樣本。
 double getSampleDouble(int x, int y, int b)
          以 double 形式返回指定 band 中對應於 (x,y) 處像素的樣本。
 float getSampleFloat(int x, int y, int b)
          以 float 形式返回指定 band 中對應於 (x,y) 處像素的樣本。
 SampleModel getSampleModel()
          返回描述圖像資料佈局的 SampleModel。
 int getSampleModelTranslateX()
          返回從 SampleModel 坐標系到 Raster 坐標系的 X 平移。
 int getSampleModelTranslateY()
          返回從 SampleModel 坐標系到 Raster 坐標系的 Y 平移。
 double[] getSamples(int x, int y, int w, int h, int b, double[] dArray)
          以 double 陣列形式返回指定 band 中對應於指定像素矩形的樣本,每個陣列元素對應一個樣本。
 float[] getSamples(int x, int y, int w, int h, int b, float[] fArray)
          以 float 陣列形式返回指定 band 中對應於指定像素矩形的樣本,每個陣列元素對應一個樣本。
 int[] getSamples(int x, int y, int w, int h, int b, int[] iArray)
          以 int 陣列形式返回指定 band 中對應於指定像素矩形的樣本,每個陣列元素對應一個樣本。
 int getTransferType()
          返回通過 getDataElements 和 setDataElements 方法傳輸像素所使用的 TransferType。
 int getWidth()
          返回 Raster 的像素寬度。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

sampleModel

protected SampleModel sampleModel
描述此 Raster 的像素在 DataBuffer 中存儲方式的 SampleModel。


dataBuffer

protected DataBuffer dataBuffer
存儲圖像資料的 DataBuffer。


minX

protected int minX
此 Raster 左上角像素的 X 坐標。


minY

protected int minY
此 Raster 左上角像素的 Y 坐標。


width

protected int width
此 Raster 的寬度。


height

protected int height
此 Raster 的高度。


sampleModelTranslateX

protected int sampleModelTranslateX
從 Raster 的 SampleModel 坐標空間到該 Raster 坐標空間的 X 平移。


sampleModelTranslateY

protected int sampleModelTranslateY
從 Raster 的 SampleModel 坐標空間到該 Raster 坐標空間的 Y 平移。


numBands

protected int numBands
Raster 中的 band 數。


numDataElements

protected int numDataElements
每個像素的 DataBuffer 資料元素數。


parent

protected Raster parent
此 Raster 的父 Raster,或者為 null。

建構子詳細資訊

Raster

protected Raster(SampleModel sampleModel,
                 Point origin)
建構具有給定 SampleModel 的 Raster。Raster 的左上角是原點,其大小與 SampleModel 相同。自動創建大小足以容納該 Raster 的 DataBuffer。

參數:
sampleModel - 指定佈局的 SampleModel
origin - 指定原點的 Point
拋出:
RasterFormatException - 如果計算 origin.x + sampleModel.getWidth()origin.y + sampleModel.getHeight() 導致整數溢位
NullPointerException - 如果 sampleModelorigin 為 null

Raster

protected Raster(SampleModel sampleModel,
                 DataBuffer dataBuffer,
                 Point origin)
建構具有給定 SampleModel 和 DataBuffer 的 Raster。Raster 的左上角是原點,其大小與 SampleModel 相同。DataBuffer 沒有初始化,且必須與 SampleModel 相容。

參數:
sampleModel - 指定佈局的 SampleModel
dataBuffer - 套件含圖像資料的 DataBuffer
origin - 指定原點的 Point
拋出:
RasterFormatException - 如果計算 origin.x + sampleModel.getWidth()origin.y + sampleModel.getHeight() 導致整數溢位
NullPointerException - 如果 sampleModelorigin 為 null

Raster

protected Raster(SampleModel sampleModel,
                 DataBuffer dataBuffer,
                 Rectangle aRegion,
                 Point sampleModelTranslate,
                 Raster parent)
建構具有給定 SampleModel、DataBuffer 和父 Raster 的 Raster。aRegion 指定新 Raster 的邊界矩形。平移到基 Raster 的坐標系時,基 Raster 必須包含 aRegion。(對於沒有父 Raster 的 Raster 而言,基 Raster 是其祖先。)sampleModelTranslate 指定新 Raster 的 sampleModelTranslateX 和 sampleModelTranslateY 值。注意,此建構子通常應該由其他建構子或創建方法調用,不應直接使用它。

參數:
sampleModel - 指定佈局的 SampleModel
dataBuffer - 套件含圖像資料的 DataBuffer
aRegion - 指定圖像區域的 Rectangle
sampleModelTranslate - 指定從 SampleModel 向 Raster 坐標平移的 Point
parent - 此 Raster 的父 Raster(如果有)
拋出:
NullPointerException - 如果任意 sampleModeldataBufferaRegionsampleModelTranslate 為 null
RasterFormatException - 如果 aRegion 的寬度或高度小於等於 0,或者計算 aRegion.x + aRegion.widthaRegion.y + aRegion.height 導致整數溢位
方法詳細資訊

createInterleavedRaster

public static WritableRaster createInterleavedRaster(int dataType,
                                                     int w,
                                                     int h,
                                                     int bands,
                                                     Point location)
根據 PixelInterleavedSampleModel 創建一個具有指定資料型別、寬度、高度和 band 數的 Raster。

Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。dataType 參數應該是 DataBuffer 類別中定義的某個列舉值。

注意,不支持交錯存取的 DataBuffer.TYPE_INT Raster。要創建 DataBuffer.TYPE_INT 型別的一 band Raster,請使用 Raster.createPackedRaster()。

當前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。

參數:
dataType - 存儲樣本的資料型別
w - 圖像資料的像素寬度
h - 圖像資料的像素高度
bands - band 數
location - Raster 的左上角
返回:
具有指定資料型別、寬度、高度和 band 數的 WritableRaster 物件。
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 location.x + wlocation.y + h 導致整數溢位

createInterleavedRaster

public static WritableRaster createInterleavedRaster(int dataType,
                                                     int w,
                                                     int h,
                                                     int scanlineStride,
                                                     int pixelStride,
                                                     int[] bandOffsets,
                                                     Point location)
根據 PixelInterleavedSampleModel 創建一個具有指定資料型別、寬度、高度、掃瞄行間距、像素間距和 band 偏移量的 Raster。從 bandOffsets.length 可以推導出 band 數。

Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。dataType 參數應該是 DataBuffer 類別中定義的某個列舉值。

注意,不支持交錯存取的 DataBuffer.TYPE_INT Raster。要創建 DataBuffer.TYPE_INT 型別的一 band Raster,請使用 Raster.createPackedRaster()。

當前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。

參數:
dataType - 存儲樣本的資料型別
w - 圖像資料的像素寬度
h - 圖像資料的像素高度
scanlineStride - 圖像資料的行間距
pixelStride - 圖像資料的像素間距
bandOffsets - 所有 band 的偏移量
location - Raster 的左上角
返回:
具有指定資料型別、寬度、高度、掃瞄行間距、像素間距和 band 偏移量的 WritableRaster 物件。
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 location.x + wlocation.y + h 導致整數溢位
IllegalArgumentException - 如果 dataType 不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORT

createBandedRaster

public static WritableRaster createBandedRaster(int dataType,
                                                int w,
                                                int h,
                                                int bands,
                                                Point location)
根據 BandedSampleModel 創建一個具有指定資料型別、寬度、高度和 band 數的 Raster。

Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。dataType 參數應該是 DataBuffer 類別中定義的某個列舉值。

當前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。

參數:
dataType - 存儲樣本的資料型別
w - 圖像資料的像素寬度
h - 圖像資料的像素高度
bands - band 數
location - Raster 的左上角
返回:
具有指定資料型別、寬度、高度和 band 數的 WritableRaster 物件。
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 location.x + wlocation.y + h 導致整數溢位
ArrayIndexOutOfBoundsException - 如果 bands 小於 1

createBandedRaster

public static WritableRaster createBandedRaster(int dataType,
                                                int w,
                                                int h,
                                                int scanlineStride,
                                                int[] bankIndices,
                                                int[] bandOffsets,
                                                Point location)
根據 BandedSampleModel 創建一個具有指定資料型別、寬度、高度、掃瞄行間距、存儲單元索引和 band 偏移量的 Raster。從 bankIndices.length 和 bandOffsets.length(這兩個數必須相同)可以推導出 band 數。

Raster 的左上角由 location 參數給定。dataType 參數應該是 DataBuffer 類別中定義的某個列舉值。

當前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。

參數:
dataType - 存儲樣本的資料型別
w - 圖像資料的像素寬度
h - 圖像資料的像素高度
scanlineStride - 圖像資料的行間距
bankIndices - 每個 band 的存儲單元索引
bandOffsets - 所有 band 的偏移量
location - Raster 的左上角
返回:
具有指定資料型別、寬度、高度、掃瞄行間距、存儲單元索引和 band 偏移量的 WritableRaster 物件。
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 location.x + wlocation.y + h 導致整數溢位
IllegalArgumentException - 如果 dataType 不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INT
ArrayIndexOutOfBoundsException - 如果 bankIndicesbandOffsetsnull

createPackedRaster

public static WritableRaster createPackedRaster(int dataType,
                                                int w,
                                                int h,
                                                int[] bandMasks,
                                                Point location)
根據 SinglePixelPackedSampleModel 創建一個具有指定資料型別、寬度、高度和 band 遮罩碼的 Raster。從 bandMasks.length 可以推導出 band 數。

Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。dataType 參數應該是 DataBuffer 類別中定義的某個列舉值。

當前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。

參數:
dataType - 存儲樣本的資料型別
w - 圖像資料的像素寬度
h - 圖像資料的像素高度
bandMasks - 套件含每個 band 項的陣列
location - Raster 的左上角
返回:
具有指定資料型別、寬度、高度和 band 遮罩碼的 WritableRaster 物件。
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 location.x + wlocation.y + h 導致整數溢位
IllegalArgumentException - 如果 dataType 不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INT

createPackedRaster

public static WritableRaster createPackedRaster(int dataType,
                                                int w,
                                                int h,
                                                int bands,
                                                int bitsPerBand,
                                                Point location)
根據打套件的 SampleModel 創建一個具有指定資料型別、寬度、高度、band 數和每 band 位數的 Raster。如果 band 數是 1,則 SampleModel 將是一個 MultiPixelPackedSampleModel。

如果 band 數大於 1,則 SampleModel 將是一個 SinglePixelPackedSampleModel,每個 band 有 bitsPerBand 位。無論是哪種情況,都要滿足相應 SampleModel 對 dataType 和 bitsPerBand 的要求。

Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。dataType 參數應該是 DataBuffer 類別中定義的某個列舉值。

當前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。

參數:
dataType - 存儲樣本的資料型別
w - 圖像資料的像素寬度
h - 圖像資料的像素高度
bands - band 數
bitsPerBand - 每個 band 的位數
location - Raster 的左上角
返回:
具有指定資料型別、寬度、高度、band 數和每個 band 位數的 WritableRaster 物件。
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 location.x + wlocation.y + h 導致整數溢位
IllegalArgumentException - 如果 bitsPerBandbands 的乘積大於 dataType 保存的位數
IllegalArgumentException - 如果 bitsPerBandbands 小於 0
IllegalArgumentException - 如果 dataType 不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INT

createInterleavedRaster

public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer,
                                                     int w,
                                                     int h,
                                                     int scanlineStride,
                                                     int pixelStride,
                                                     int[] bandOffsets,
                                                     Point location)
根據 PixelInterleavedSampleModel 創建一個具有指定 DataBuffer、寬度、高度、掃瞄行間距、像素間距和 band 偏移量的 Raster。從 bandOffsets.length 可以推導出 band 數。Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。

注意,不支持交錯存取的 DataBuffer.TYPE_INT Raster。要創建 DataBuffer.TYPE_INT 型別的一 band Raster,請使用 Raster.createPackedRaster()。

參數:
dataBuffer - 套件含圖像資料的 DataBuffer
w - 圖像資料的像素寬度
h - 圖像資料的像素高度
scanlineStride - 圖像資料的行間距
pixelStride - 圖像資料的像素間距
bandOffsets - 所有 band 的偏移量
location - Raster 的左上角
返回:
具有指定 DataBuffer、寬度、高度、掃瞄行間距、像素間距和 band 偏移量的 WritableRaster 物件。
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 location.x + wlocation.y + h 導致整數溢位
IllegalArgumentException - 如果 dataType 不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORT
RasterFormatException - 如果 dataBuffer 有多個存儲單元。
NullPointerException - 如果 dataBuffer 為 null

createBandedRaster

public static WritableRaster createBandedRaster(DataBuffer dataBuffer,
                                                int w,
                                                int h,
                                                int scanlineStride,
                                                int[] bankIndices,
                                                int[] bandOffsets,
                                                Point location)
根據 BandedSampleModel 創建一個具有指定 DataBuffer、寬度、高度、掃瞄行間距、存儲單元索引和 band 偏移量的 Raster。從 bankIndices.length 和 bandOffsets.length(這兩個數必須相同)可以推導出 band 數。Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。

參數:
dataBuffer - 套件含圖像資料的 DataBuffer
w - 圖像資料的像素寬度
h - 圖像資料的像素高度
scanlineStride - 圖像資料的行間距
bankIndices - 每個 band 的存儲單元索引
bandOffsets - 所有 band 的偏移量
location - Raster 的左上角
返回:
具有指定 DataBuffer、寬度、高度、掃瞄行間距、存儲單元索引和 band 偏移量的 WritableRaster 物件。
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 location.x + wlocation.y + h 導致整數溢位
IllegalArgumentException - 如果 dataType 不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INT
NullPointerException - 如果 dataBuffer 為 null

createPackedRaster

public static WritableRaster createPackedRaster(DataBuffer dataBuffer,
                                                int w,
                                                int h,
                                                int scanlineStride,
                                                int[] bandMasks,
                                                Point location)
根據 SinglePixelPackedSampleModel 創建一個具有指定 DataBuffer、寬度、高度、掃瞄行間距和 band 遮罩碼的 Raster。從 bandMasks.length 可以推導出 band 數。通過 location 參數給出 Raster 的左上角。如果 location 為 null,則將使用 (0, 0)。

參數:
dataBuffer - 套件含圖像資料的 DataBuffer
w - 圖像資料的像素寬度
h - 圖像資料的像素高度
scanlineStride - 圖像資料的行間距
bandMasks - 套件含每個 band 項的陣列
location - Raster 的左上角
返回:
具有指定 DataBuffer、寬度、高度、掃瞄行間距和 band 遮罩碼的 WritableRaster 物件。
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 location.x + wlocation.y + h 導致整數溢位
IllegalArgumentException - 如果 dataType 不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INT
RasterFormatException - 如果 dataBuffer 有多個存儲單元。
NullPointerException - 如果 dataBuffer 為 null

createPackedRaster

public static WritableRaster createPackedRaster(DataBuffer dataBuffer,
                                                int w,
                                                int h,
                                                int bitsPerPixel,
                                                Point location)
根據 MultiPixelPackedSampleModel 創建一個具有指定 DataBuffer、寬度、高度和每像素位數的 Raster。Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。

參數:
dataBuffer - 套件含圖像資料的 DataBuffer
w - 圖像資料的像素寬度
h - 圖像資料的像素高度
bitsPerPixel - 每像素的位數
location - Raster 的左上角
返回:
具有指定 DataBuffer、寬度、高度和每像素位數的 WritableRaster 物件。
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 location.x + wlocation.y + h 導致整數溢位
IllegalArgumentException - 如果 dataType 不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INT
RasterFormatException - 如果 dataBuffer 有多個存儲單元。
NullPointerException - 如果 dataBuffer 為 null

createRaster

public static Raster createRaster(SampleModel sm,
                                  DataBuffer db,
                                  Point location)
創建具有指定 SampleModel 和 DataBuffer 的 Raster。Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。

參數:
sm - 指定的 SampleModel
db - 指定的 DataBuffer
location - Raster 的左上角
返回:
具有指定 SampleModelDataBuffer 和 location 的Raster
拋出:
RasterFormatException - 如果計算 location.x + sm.getWidth()location.y + sm.getHeight() 導致整數溢位
RasterFormatException - 如果 dataBuffer 具有多個存儲單元且 sampleModel 是 PixelInterleavedSampleModel、SinglePixelPackedSampleModel 或 MultiPixelPackedSampleModel。
NullPointerException - 如果 SampleModel 或 DataBuffer 為 null

createWritableRaster

public static WritableRaster createWritableRaster(SampleModel sm,
                                                  Point location)
創建一個具有指定 SampleModel 的 WritableRaster。Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。

參數:
sm - 指定的 SampleModel
location - WritableRaster 的左上角
返回:
具有指定 SampleModel 和 location 的 WritableRaster
拋出:
RasterFormatException - 如果計算 location.x + sm.getWidth()location.y + sm.getHeight() 導致整數溢位

createWritableRaster

public static WritableRaster createWritableRaster(SampleModel sm,
                                                  DataBuffer db,
                                                  Point location)
創建一個具有指定 SampleModel 和 DataBuffer 的 WritableRaster。Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。

參數:
sm - 指定的 SampleModel
db - 指定的 DataBuffer
location - WritableRaster 的左上角
返回:
具有指定 SampleModelDataBuffer 和 location 的 WritableRaster
拋出:
RasterFormatException - 如果計算 location.x + sm.getWidth()location.y + sm.getHeight() 導致整數溢位
RasterFormatException - 如果 dataBuffer 具有多個存儲單元且 sampleModel 是 PixelInterleavedSampleModel、SinglePixelPackedSampleModel 或 MultiPixelPackedSampleModel。
NullPointerException - 如果 SampleModel 或 DataBuffer 為 null

getParent

public Raster getParent()
返回此 Raster 的父 Raster(如果有),或者 null。

返回:
父 Raster 或 null

getSampleModelTranslateX

public final int getSampleModelTranslateX()
返回從 SampleModel 坐標系到 Raster 坐標系的 X 平移。要將像素的 X 坐標從 Raster 坐標系轉換到 SampleModel 坐標系,必須減去此值。

返回:
從 Raster 的 SampleModel 坐標空間到 Raster 坐標空間的 X 平移。

getSampleModelTranslateY

public final int getSampleModelTranslateY()
返回從 SampleModel 坐標系到 Raster 坐標系的 Y 平移。要將像素的 Y 坐標從 Raster 坐標系轉換到 SampleModel 坐標系,必須減去此值。

返回:
從 Raster 的 SampleModel 坐標空間到 Raster 坐標空間的 Y 平移。

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster()
創建一個相容的 WritableRaster,使其具有與此 Raster 相同的大小、SampleModel,以及一個新初始化的 DataBuffer。

返回:
具有相同樣本模型和新資料緩衝區的相容 WritableRaster

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster(int w,
                                                     int h)
創建一個相容的 WritableRaster,使其具有指定大小、新 SampleModel 和新初始化的 DataBuffer。

參數:
w - 新 WritableRaster 的指定寬度
h - 新 WritableRaster 的指定高度
返回:
具有指定大小,以及新樣本模型和資料緩衝區的相容 WritableRaster
拋出:
RasterFormatException - 如果 width 或 height 小於等於 0。

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster(Rectangle rect)
創建一個相容的 WritableRaster,使其具有由 rect 指定的位置 (minX, minY) 和大小 (width, height)、新 SampleModel 和新初始化的 DataBuffer。

參數:
rect - 指定 WritableRaster 的大小和位置的 Rectangle
返回:
具有指定大小和位置、新樣本模型和資料緩衝區的 WritableRaster
拋出:
RasterFormatException - 如果 rect 的寬度或高度小於等於 0,或者計算 rect.x + rect.widthrect.y + rect.height 導致整數溢位
NullPointerException - 如果 rect 為 null

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster(int x,
                                                     int y,
                                                     int w,
                                                     int h)
創建一個相容的 WritableRaster,使其具有指定位置 (minX, minY) 和大小 (width, height)、新 SampleModel 和新初始化的 DataBuffer。

參數:
x - WritableRaster 左上角的 X 坐標
y - WritableRaster 左上角的 Y 坐標
w - WritableRaster 的指定寬度
h - WritableRaster 的指定高度
返回:
具有指定大小和位置、新 SampleModel 和 DataBuffer 的相容 WritableRaster
拋出:
RasterFormatException - 如果 wh 小於等於 0,或者計算 x + wy + h 導致整數溢位

createTranslatedChild

public Raster createTranslatedChild(int childMinX,
                                    int childMinY)
創建一個 Raster,使其大小、SampleModel 和 DataBuffer 與此 Raster 相同,但是位置不同。新 Raster 擁有對當前 Raster 的參考,可以通過其 getParent() 方法進行存取。

參數:
childMinX - 新 Raster 左上角的 X 坐標
childMinY - 新 Raster 左上角的 Y 坐標
返回:
大小、SampleModel 和 DataBuffer 與此 Raster 相同,但是具有指定位置的 Raster
拋出:
RasterFormatException - 如果計算 childMinX + this.getWidth()childMinY + this.getHeight() 導致整數溢位

createChild

public Raster createChild(int parentX,
                          int parentY,
                          int width,
                          int height,
                          int childMinX,
                          int childMinY,
                          int[] bandList)
返回共享此 Raster 全部或部分 DataBuffer 的新 Raster。新 Raster 擁有對當前 Raster 的參考,可以通過其 getParent() 方法進行存取。

parentX、parentY、width 和 height 參數在此 Raster 的坐標空間中形成一個 Rectangle,指示要共享的像素區域。如果此 Rectangle 未包含在當前 Raster 的邊界內,則拋出錯誤。

新 Raster 可能被平移到與當前 Raster 所用坐標系不同的平面坐標系中。childMinX 和 childMinY 參數給出返回的 Raster 左上角像素的新 (x, y) 坐標;新 Raster 中的坐標 (childMinX, childMinY) 將映射到當前 Raster 中與坐標 (parentX, parentY) 相同的像素。

可以定義新 Raster 只包含當前 Raster 的 band 子集,通過 bandList 參數,可以對該子集重新排序。如果 bandList 為 null,則將按當前順序包含 Raster 的所有 band。

要創建一個套件含當前 Raster 子區域,但是共享其坐標系和 band 的新 Raster,應該調用此方法,並使 childMinX 等於 parentX,childMinY 等於 parentY,bandList 等於 null。

參數:
parentX - 此 Raster 坐標空間中左上角的 X 坐標
parentY - 此 Raster 坐標空間中左上角的 Y 坐標
width - 從 (parentX, parentY) 開始的區域寬度
height - 從 (parentX, parentY) 開始的區域高度。
childMinX - 返回的 Raster 左上角的 X 坐標
childMinY - 返回的 Raster 左上角的 Y 坐標
bandList - band 索引陣列;如果要使用所有 band,則該參數為 null
返回:
一個新的 Raster
拋出:
RasterFormatException - 如果指定的子區域處於 Raster 的邊界外。
RasterFormatException - 如果 widthheight 小於等於 0,或者計算 parentX + widthparentY + heightchildMinX + widthchildMinY + height 導致整數溢位

getBounds

public Rectangle getBounds()
返回此 Raster 的邊界 Rectangle。此函數返回的資訊與 getMinX/MinY/Width/Height 相同。

返回:
Raster 的邊界框。

getMinX

public final int getMinX()
返回 Raster 的最小有效 X 坐標。

返回:
Raster 的最小 x 坐標。

getMinY

public final int getMinY()
返回 Raster 的最小有效 Y 坐標。

返回:
Raster 的最小 y 坐標。

getWidth

public final int getWidth()
返回 Raster 的像素寬度。

返回:
Raster 的寬度。

getHeight

public final int getHeight()
返回 Raster 的像素高度。

返回:
Raster 的高度。

getNumBands

public final int getNumBands()
返回此 Raster 中的 band 數(每像素樣本)。

返回:
Raster 的 band 數。

getNumDataElements

public final int getNumDataElements()
返回通過 getDataElements 和 setDataElements 方法傳輸一個像素所需的資料元素數。通過這些方法傳輸像素時,可以以打包或未打套件的格式進行傳輸,具體取決於底層 SampleModel 的實作。使用這些方法,可以將像素作為基本型別的 getNumDataElements() 元素陣列傳輸,其中基本型別由 getTransferType() 給定。TransferType 不一定與 DataBuffer 的存儲資料型別相同。

返回:
資料元素數。

getTransferType

public final int getTransferType()
返回通過 getDataElements 和 setDataElements 方法傳輸像素所使用的 TransferType。通過這些方法傳輸像素時,可以以打包或未打套件的格式進行傳輸,具體取決於底層 SampleModel 的實作。可以將像素作為基本型別的 getNumDataElements() 元素陣列傳輸,其中基本型別由 getTransferType() 給定。TransferType 不一定與 DataBuffer 的存儲資料型別相同。TransferType 是 DataBuffer 中已定義的型別之一。

返回:
傳輸型別。

getDataBuffer

public DataBuffer getDataBuffer()
返回與此 Raster 關聯的 DataBuffer。

返回:
RasterDataBuffer

getSampleModel

public SampleModel getSampleModel()
返回描述圖像資料佈局的 SampleModel。

返回:
RasterSampleModel

getDataElements

public Object getDataElements(int x,
                              int y,
                              Object outData)
以 TransferType 型別的基本陣列形式返回單個像素的資料。對於 Java 2D(tm) API 支持的圖像資料,此資料是 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE 之一。可以打包格式返回資料,從而提高資料的傳輸效率。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。如果輸入物件不為 null 且參考了 TransferType 陣列以外的任何物件,則拋出 ClassCastException。

參數:
x - 像素位置的 X 坐標
y - 像素位置的 Y 坐標
outData - 陣列的物件參考,該陣列型別由 getTransferType() 定義,長度由 getNumDataElements() 定義。如果為 null,則分派一個適當型別和大小的陣列。
返回:
陣列的物件參考,該陣列型別由 getTransferType() 定義,包含所請求的像素資料。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標不在邊界內,或者 outData 太小而無法保存輸出內容。
另請參見:
SampleModel.getDataElements(int, int, Object, DataBuffer)

getDataElements

public Object getDataElements(int x,
                              int y,
                              int w,
                              int h,
                              Object outData)
以 TransferType 型別基本陣列形式返回指定像素矩形的像素資料。對於 Java 2D API 支持的圖像資料,此資料是 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE 之一。可以打包格式返回資料,從而提高資料的傳輸效率。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。如果輸入物件不為 null 且參考了 TransferType 陣列以外的任何物件,則拋出 ClassCastException。

參數:
x - 左上角像素位置的 X 坐標
y - 左上角像素位置的 Y 坐標
w - 像素矩形的寬度
h - 像素矩形的高度
outData - 陣列的物件參考,該陣列型別由 getTransferType() 定義,長度由 w*h*getNumDataElements()定義。如果為 null,則分派一個適當型別和大小的陣列。
返回:
陣列的物件參考,該陣列型別由 getTransferType() 定義,包含所請求的像素資料。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標不在邊界內,或者 outData 太小而無法保存輸出內容。
另請參見:
SampleModel.getDataElements(int, int, int, int, Object, DataBuffer)

getPixel

public int[] getPixel(int x,
                      int y,
                      int[] iArray)
以 int 陣列形式返回指定像素的樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 像素位置的 X 坐標
y - 像素位置的 Y 坐標
iArray - 一個可選的、預分派的 int 陣列
返回:
指定像素的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標不在邊界內,或者 iArray 太小而無法保存輸出內容。

getPixel

public float[] getPixel(int x,
                        int y,
                        float[] fArray)
以 float 陣列形式返回指定像素的樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 像素位置的 X 坐標
y - 像素位置的 Y 坐標
fArray - 一個可選的、預分派的 float 陣列
返回:
指定像素的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標不在邊界內,或者 fArray 太小而無法保存輸出內容。

getPixel

public double[] getPixel(int x,
                         int y,
                         double[] dArray)
以 double 陣列形式返回指定像素的樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 像素位置的 X 坐標
y - 像素位置的 Y 坐標
dArray - 一個可選的、預分派的 double 陣列
返回:
指定像素的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標不在邊界內,或者 dArray 太小而無法保存輸出內容。

getPixels

public int[] getPixels(int x,
                       int y,
                       int w,
                       int h,
                       int[] iArray)
返回一個套件含像素矩形所有樣本的 int 陣列,每個陣列元素對應一個樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 左上角像素位置的 X 坐標
y - 左上角像素位置的 Y 坐標
w - 像素矩形的寬度
h - 像素矩形的高度
iArray - 一個可選的、預分派的 int 陣列
返回:
指定像素矩形的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標不在邊界內,或者 iArray 太小而無法保存輸出內容。

getPixels

public float[] getPixels(int x,
                         int y,
                         int w,
                         int h,
                         float[] fArray)
返回一個套件含像素矩形所有樣本的 float 陣列,每個陣列元素對應一個樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 像素位置的 X 坐標
y - 像素位置的 Y 坐標
w - 像素矩形的寬度
h - 像素矩形的高度
fArray - 一個可選的、預分派的 float 陣列
返回:
指定像素矩形的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標不在邊界內,或者 fArray 太小而無法保存輸出內容。

getPixels

public double[] getPixels(int x,
                          int y,
                          int w,
                          int h,
                          double[] dArray)
返回一個套件含像素矩形所有樣本的 double 陣列,每個陣列元素對應一個樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 左上角像素位置的 X 坐標
y - 左上角像素位置的 Y 坐標
w - 像素矩形的寬度
h - 像素矩形的高度
dArray - 一個可選的、預分派的 double 陣列
返回:
指定像素矩形的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標不在邊界內,或者 dArray 太小而無法保存輸出內容。

getSample

public int getSample(int x,
                     int y,
                     int b)
以 int 形式返回指定 band 中對應於 (x,y) 處像素的樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 像素位置的 X 坐標
y - 像素位置的 Y 坐標
b - 要返回的 band
返回:
指定 band 中對應於指定坐標處像素的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標或 band 索引不在邊界內。

getSampleFloat

public float getSampleFloat(int x,
                            int y,
                            int b)
以 float 形式返回指定 band 中對應於 (x,y) 處像素的樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 像素位置的 X 坐標
y - 像素位置的 Y 坐標
b - 要返回的 band
返回:
指定 band 中對應於指定坐標處像素的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標或 band 索引不在邊界內。

getSampleDouble

public double getSampleDouble(int x,
                              int y,
                              int b)
以 double 形式返回指定 band 中對應於 (x,y) 處像素的樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 像素位置的 X 坐標
y - 像素位置的 Y 坐標
b - 要返回的 band
返回:
指定 band 中對應於指定坐標處像素的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標或 band 索引不在邊界內。

getSamples

public int[] getSamples(int x,
                        int y,
                        int w,
                        int h,
                        int b,
                        int[] iArray)
以 int 陣列形式返回指定 band 中對應於指定像素矩形的樣本,每個陣列元素對應一個樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 左上角像素位置的 X 坐標
y - 左上角像素位置的 Y 坐標
w - 像素矩形的寬度
h - 像素矩形的高度
b - 要返回的 band
iArray - 一個可選的、預分派的 int 陣列
返回:
指定 band 中對應於指定像素矩形的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標或 band 索引不在邊界內,或者 iArray 太小而無法保存輸出內容。

getSamples

public float[] getSamples(int x,
                          int y,
                          int w,
                          int h,
                          int b,
                          float[] fArray)
以 float 陣列形式返回指定 band 中對應於指定像素矩形的樣本,每個陣列元素對應一個樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 左上角像素位置的 X 坐標
y - 左上角像素位置的 Y 坐標
w - 像素矩形的寬度
h - 像素矩形的高度
b - 要返回的 band
fArray - 一個可選的、預分派的 float 陣列
返回:
指定 band 中對應於指定像素矩形的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標或 band 索引不在邊界內,或者 fArray 太小而無法保存輸出內容。

getSamples

public double[] getSamples(int x,
                           int y,
                           int w,
                           int h,
                           int b,
                           double[] dArray)
以 double 陣列形式返回指定 band 中對應於指定像素矩形的樣本,每個陣列元素對應一個樣本。如果坐標不在邊界之內,則拋出 ArrayIndexOutOfBoundsException。但是不保證進行顯式的邊界檢查。

參數:
x - 左上角像素位置的 X 坐標
y - 左上角像素位置的 Y 坐標
w - 像素矩形的寬度
h - 像素矩形的高度
b - 要返回的 band
iArray - 一個可選的、預分派的 double 陣列
返回:
指定 band 中對應於指定像素矩形的樣本。
拋出:
ArrayIndexOutOfBoundsException - 如果坐標或 band 索引不在邊界內,或者 dArray 太小而無法保存輸出內容。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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