|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.image.Raster
public class Raster
表示像素矩形陣列的類別。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 |
欄位詳細資訊 |
---|
protected SampleModel sampleModel
protected DataBuffer dataBuffer
protected int minX
protected int minY
protected int width
protected int height
protected int sampleModelTranslateX
protected int sampleModelTranslateY
protected int numBands
protected int numDataElements
protected Raster parent
建構子詳細資訊 |
---|
protected Raster(SampleModel sampleModel, Point origin)
sampleModel
- 指定佈局的 SampleModelorigin
- 指定原點的 Point
RasterFormatException
- 如果計算 origin.x + sampleModel.getWidth()
或 origin.y + sampleModel.getHeight()
導致整數溢位
NullPointerException
- 如果 sampleModel
或 origin
為 nullprotected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
sampleModel
- 指定佈局的 SampleModeldataBuffer
- 套件含圖像資料的 DataBufferorigin
- 指定原點的 Point
RasterFormatException
- 如果計算 origin.x + sampleModel.getWidth()
或 origin.y + sampleModel.getHeight()
導致整數溢位
NullPointerException
- 如果 sampleModel
或 origin
為 nullprotected Raster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, Raster parent)
sampleModel
- 指定佈局的 SampleModeldataBuffer
- 套件含圖像資料的 DataBufferaRegion
- 指定圖像區域的 RectanglesampleModelTranslate
- 指定從 SampleModel 向 Raster 坐標平移的 Pointparent
- 此 Raster 的父 Raster(如果有)
NullPointerException
- 如果任意 sampleModel
、dataBuffer
、aRegion
或 sampleModelTranslate
為 null
RasterFormatException
- 如果 aRegion
的寬度或高度小於等於 0,或者計算 aRegion.x + aRegion.width
或 aRegion.y + aRegion.height
導致整數溢位方法詳細資訊 |
---|
public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int bands, Point location)
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
的左上角
RasterFormatException
- 如果 w
或 h
小於等於 0,或者計算 location.x + w
或 location.y + h
導致整數溢位public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
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
的左上角
RasterFormatException
- 如果 w
或 h
小於等於 0,或者計算 location.x + w
或 location.y + h
導致整數溢位
IllegalArgumentException
- 如果 dataType
不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTE
或 DataBuffer.TYPE_USHORT
。public static WritableRaster createBandedRaster(int dataType, int w, int h, int bands, Point location)
Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。dataType 參數應該是 DataBuffer 類別中定義的某個列舉值。
當前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。
dataType
- 存儲樣本的資料型別w
- 圖像資料的像素寬度h
- 圖像資料的像素高度bands
- band 數location
- Raster
的左上角
RasterFormatException
- 如果 w
或 h
小於等於 0,或者計算 location.x + w
或 location.y + h
導致整數溢位
ArrayIndexOutOfBoundsException
- 如果 bands
小於 1public static WritableRaster createBandedRaster(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
Raster 的左上角由 location 參數給定。dataType 參數應該是 DataBuffer 類別中定義的某個列舉值。
當前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。
dataType
- 存儲樣本的資料型別w
- 圖像資料的像素寬度h
- 圖像資料的像素高度scanlineStride
- 圖像資料的行間距bankIndices
- 每個 band 的存儲單元索引bandOffsets
- 所有 band 的偏移量location
- Raster
的左上角
RasterFormatException
- 如果 w
或 h
小於等於 0,或者計算 location.x + w
或 location.y + h
導致整數溢位
IllegalArgumentException
- 如果 dataType
不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
ArrayIndexOutOfBoundsException
- 如果 bankIndices
或 bandOffsets
為 null
public static WritableRaster createPackedRaster(int dataType, int w, int h, int[] bandMasks, Point location)
Raster 的左上角由 location 參數給定。如果 location 為 null,則將使用 (0, 0)。dataType 參數應該是 DataBuffer 類別中定義的某個列舉值。
當前受支持的 dataType 只有 TYPE_BYTE 和 TYPE_USHORT。
dataType
- 存儲樣本的資料型別w
- 圖像資料的像素寬度h
- 圖像資料的像素高度bandMasks
- 套件含每個 band 項的陣列location
- Raster
的左上角
RasterFormatException
- 如果 w
或 h
小於等於 0,或者計算 location.x + w
或 location.y + h
導致整數溢位
IllegalArgumentException
- 如果 dataType
不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
public static WritableRaster createPackedRaster(int dataType, int w, int h, int bands, int bitsPerBand, Point location)
如果 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
的左上角
RasterFormatException
- 如果 w
或 h
小於等於 0,或者計算 location.x + w
或 location.y + h
導致整數溢位
IllegalArgumentException
- 如果 bitsPerBand
和 bands
的乘積大於 dataType
保存的位數
IllegalArgumentException
- 如果 bitsPerBand
或 bands
小於 0
IllegalArgumentException
- 如果 dataType
不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location)
注意,不支持交錯存取的 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
- 如果 w
或 h
小於等於 0,或者計算 location.x + w
或 location.y + h
導致整數溢位
IllegalArgumentException
- 如果 dataType
不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
RasterFormatException
- 如果 dataBuffer
有多個存儲單元。
NullPointerException
- 如果 dataBuffer
為 nullpublic static WritableRaster createBandedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets, Point location)
dataBuffer
- 套件含圖像資料的 DataBuffer
w
- 圖像資料的像素寬度h
- 圖像資料的像素高度scanlineStride
- 圖像資料的行間距bankIndices
- 每個 band 的存儲單元索引bandOffsets
- 所有 band 的偏移量location
- Raster
的左上角
DataBuffer
、寬度、高度、掃瞄行間距、存儲單元索引和 band 偏移量的 WritableRaster 物件。
RasterFormatException
- 如果 w
或 h
小於等於 0,或者計算 location.x + w
或 location.y + h
導致整數溢位
IllegalArgumentException
- 如果 dataType
不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
NullPointerException
- 如果 dataBuffer
為 nullpublic static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bandMasks, Point location)
dataBuffer
- 套件含圖像資料的 DataBuffer
w
- 圖像資料的像素寬度h
- 圖像資料的像素高度scanlineStride
- 圖像資料的行間距bandMasks
- 套件含每個 band 項的陣列location
- Raster
的左上角
DataBuffer
、寬度、高度、掃瞄行間距和 band 遮罩碼的 WritableRaster 物件。
RasterFormatException
- 如果 w
或 h
小於等於 0,或者計算 location.x + w
或 location.y + h
導致整數溢位
IllegalArgumentException
- 如果 dataType
不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
RasterFormatException
- 如果 dataBuffer
有多個存儲單元。
NullPointerException
- 如果 dataBuffer
為 nullpublic static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int bitsPerPixel, Point location)
dataBuffer
- 套件含圖像資料的 DataBuffer
w
- 圖像資料的像素寬度h
- 圖像資料的像素高度bitsPerPixel
- 每像素的位數location
- Raster
的左上角
DataBuffer
、寬度、高度和每像素位數的 WritableRaster 物件。
RasterFormatException
- 如果 w
或 h
小於等於 0,或者計算 location.x + w
或 location.y + h
導致整數溢位
IllegalArgumentException
- 如果 dataType
不是受支持的資料型別之一,即 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
RasterFormatException
- 如果 dataBuffer
有多個存儲單元。
NullPointerException
- 如果 dataBuffer
為 nullpublic static Raster createRaster(SampleModel sm, DataBuffer db, Point location)
sm
- 指定的 SampleModel
db
- 指定的 DataBuffer
location
- Raster
的左上角
SampleModel
、DataBuffer
和 location 的Raster
。
RasterFormatException
- 如果計算 location.x + sm.getWidth()
或 location.y + sm.getHeight()
導致整數溢位
RasterFormatException
- 如果 dataBuffer
具有多個存儲單元且 sampleModel
是 PixelInterleavedSampleModel、SinglePixelPackedSampleModel 或 MultiPixelPackedSampleModel。
NullPointerException
- 如果 SampleModel 或 DataBuffer 為 nullpublic static WritableRaster createWritableRaster(SampleModel sm, Point location)
sm
- 指定的 SampleModel
location
- WritableRaster
的左上角
SampleModel
和 location 的 WritableRaster
。
RasterFormatException
- 如果計算 location.x + sm.getWidth()
或 location.y + sm.getHeight()
導致整數溢位public static WritableRaster createWritableRaster(SampleModel sm, DataBuffer db, Point location)
sm
- 指定的 SampleModel
db
- 指定的 DataBuffer
location
- WritableRaster
的左上角
SampleModel
、DataBuffer
和 location 的 WritableRaster
。
RasterFormatException
- 如果計算 location.x + sm.getWidth()
或 location.y + sm.getHeight()
導致整數溢位
RasterFormatException
- 如果 dataBuffer
具有多個存儲單元且 sampleModel
是 PixelInterleavedSampleModel、SinglePixelPackedSampleModel 或 MultiPixelPackedSampleModel。
NullPointerException
- 如果 SampleModel 或 DataBuffer 為 nullpublic Raster getParent()
null
。public final int getSampleModelTranslateX()
public final int getSampleModelTranslateY()
public WritableRaster createCompatibleWritableRaster()
WritableRaster
。public WritableRaster createCompatibleWritableRaster(int w, int h)
w
- 新 WritableRaster
的指定寬度h
- 新 WritableRaster
的指定高度
WritableRaster
。
RasterFormatException
- 如果 width 或 height 小於等於 0。public WritableRaster createCompatibleWritableRaster(Rectangle rect)
rect
- 指定 WritableRaster
的大小和位置的 Rectangle
WritableRaster
。
RasterFormatException
- 如果 rect
的寬度或高度小於等於 0,或者計算 rect.x + rect.width
或 rect.y + rect.height
導致整數溢位
NullPointerException
- 如果 rect
為 nullpublic WritableRaster createCompatibleWritableRaster(int x, int y, int w, int h)
x
- WritableRaster
左上角的 X 坐標y
- WritableRaster
左上角的 Y 坐標w
- WritableRaster
的指定寬度h
- WritableRaster
的指定高度
WritableRaster
。
RasterFormatException
- 如果 w
或 h
小於等於 0,或者計算 x + w
或 y + h
導致整數溢位public Raster createTranslatedChild(int childMinX, int childMinY)
childMinX
- 新 Raster
左上角的 X 坐標childMinY
- 新 Raster
左上角的 Y 坐標
Raster
相同,但是具有指定位置的 Raster
。
RasterFormatException
- 如果計算 childMinX + this.getWidth()
或 childMinY + this.getHeight()
導致整數溢位public Raster createChild(int parentX, int parentY, int width, int height, int childMinX, int childMinY, int[] bandList)
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
- 如果 width
或 height
小於等於 0,或者計算 parentX + width
、parentY + height
、childMinX + width
或 childMinY + height
導致整數溢位public Rectangle getBounds()
Raster
的邊界框。public final int getMinX()
Raster
的最小 x 坐標。public final int getMinY()
Raster
的最小 y 坐標。public final int getWidth()
Raster
的寬度。public final int getHeight()
Raster
的高度。public final int getNumBands()
Raster
的 band 數。public final int getNumDataElements()
public final int getTransferType()
public DataBuffer getDataBuffer()
Raster
的 DataBuffer
。public SampleModel getSampleModel()
Raster
的 SampleModel
。public Object getDataElements(int x, int y, Object outData)
x
- 像素位置的 X 坐標y
- 像素位置的 Y 坐標outData
- 陣列的物件參考,該陣列型別由 getTransferType() 定義,長度由 getNumDataElements() 定義。如果為 null,則分派一個適當型別和大小的陣列。
ArrayIndexOutOfBoundsException
- 如果坐標不在邊界內,或者 outData 太小而無法保存輸出內容。SampleModel.getDataElements(int, int, Object, DataBuffer)
public Object getDataElements(int x, int y, int w, int h, Object outData)
x
- 左上角像素位置的 X 坐標y
- 左上角像素位置的 Y 坐標w
- 像素矩形的寬度h
- 像素矩形的高度outData
- 陣列的物件參考,該陣列型別由 getTransferType() 定義,長度由 w*h*getNumDataElements()定義。如果為 null,則分派一個適當型別和大小的陣列。
ArrayIndexOutOfBoundsException
- 如果坐標不在邊界內,或者 outData 太小而無法保存輸出內容。SampleModel.getDataElements(int, int, int, int, Object, DataBuffer)
public int[] getPixel(int x, int y, int[] iArray)
x
- 像素位置的 X 坐標y
- 像素位置的 Y 坐標iArray
- 一個可選的、預分派的 int 陣列
ArrayIndexOutOfBoundsException
- 如果坐標不在邊界內,或者 iArray 太小而無法保存輸出內容。public float[] getPixel(int x, int y, float[] fArray)
x
- 像素位置的 X 坐標y
- 像素位置的 Y 坐標fArray
- 一個可選的、預分派的 float 陣列
ArrayIndexOutOfBoundsException
- 如果坐標不在邊界內,或者 fArray 太小而無法保存輸出內容。public double[] getPixel(int x, int y, double[] dArray)
x
- 像素位置的 X 坐標y
- 像素位置的 Y 坐標dArray
- 一個可選的、預分派的 double 陣列
ArrayIndexOutOfBoundsException
- 如果坐標不在邊界內,或者 dArray 太小而無法保存輸出內容。public int[] getPixels(int x, int y, int w, int h, int[] iArray)
x
- 左上角像素位置的 X 坐標y
- 左上角像素位置的 Y 坐標w
- 像素矩形的寬度h
- 像素矩形的高度iArray
- 一個可選的、預分派的 int 陣列
ArrayIndexOutOfBoundsException
- 如果坐標不在邊界內,或者 iArray 太小而無法保存輸出內容。public float[] getPixels(int x, int y, int w, int h, float[] fArray)
x
- 像素位置的 X 坐標y
- 像素位置的 Y 坐標w
- 像素矩形的寬度h
- 像素矩形的高度fArray
- 一個可選的、預分派的 float 陣列
ArrayIndexOutOfBoundsException
- 如果坐標不在邊界內,或者 fArray 太小而無法保存輸出內容。public double[] getPixels(int x, int y, int w, int h, double[] dArray)
x
- 左上角像素位置的 X 坐標y
- 左上角像素位置的 Y 坐標w
- 像素矩形的寬度h
- 像素矩形的高度dArray
- 一個可選的、預分派的 double 陣列
ArrayIndexOutOfBoundsException
- 如果坐標不在邊界內,或者 dArray 太小而無法保存輸出內容。public int getSample(int x, int y, int b)
x
- 像素位置的 X 坐標y
- 像素位置的 Y 坐標b
- 要返回的 band
ArrayIndexOutOfBoundsException
- 如果坐標或 band 索引不在邊界內。public float getSampleFloat(int x, int y, int b)
x
- 像素位置的 X 坐標y
- 像素位置的 Y 坐標b
- 要返回的 band
ArrayIndexOutOfBoundsException
- 如果坐標或 band 索引不在邊界內。public double getSampleDouble(int x, int y, int b)
x
- 像素位置的 X 坐標y
- 像素位置的 Y 坐標b
- 要返回的 band
ArrayIndexOutOfBoundsException
- 如果坐標或 band 索引不在邊界內。public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray)
x
- 左上角像素位置的 X 坐標y
- 左上角像素位置的 Y 坐標w
- 像素矩形的寬度h
- 像素矩形的高度b
- 要返回的 bandiArray
- 一個可選的、預分派的 int 陣列
ArrayIndexOutOfBoundsException
- 如果坐標或 band 索引不在邊界內,或者 iArray 太小而無法保存輸出內容。public float[] getSamples(int x, int y, int w, int h, int b, float[] fArray)
x
- 左上角像素位置的 X 坐標y
- 左上角像素位置的 Y 坐標w
- 像素矩形的寬度h
- 像素矩形的高度b
- 要返回的 bandfArray
- 一個可選的、預分派的 float 陣列
ArrayIndexOutOfBoundsException
- 如果坐標或 band 索引不在邊界內,或者 fArray 太小而無法保存輸出內容。public double[] getSamples(int x, int y, int w, int h, int b, double[] dArray)
x
- 左上角像素位置的 X 坐標y
- 左上角像素位置的 Y 坐標w
- 像素矩形的寬度h
- 像素矩形的高度b
- 要返回的 bandiArray
- 一個可選的、預分派的 double 陣列
ArrayIndexOutOfBoundsException
- 如果坐標或 band 索引不在邊界內,或者 dArray 太小而無法保存輸出內容。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。