|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.awt.image.ColorModel
java.awt.image.ComponentColorModel
public class ComponentColorModel
使用像素值將顏色和 alpha 資訊表示為獨立樣本的 ColorModel 類別,該類別以獨立的資料元素存儲每個樣本。此類別可以與任意 ColorSpace 一起使用。像素值中的顏色樣本數必須與 ColorSpace 中的顏色份量數相同。可以有單個 alpha 樣本。
對於那些使用 transferType 型別的基本陣列像素表示形式的方法,陣列的長度與顏色和 alpha 樣本數相同。顏色樣本存儲在後跟 alpha 樣本(如果存在)的陣列的前面。顏色樣本的順序由 ColorSpace 指定。通常,此順序反映顏色空間型別的名稱。例如,對於 TYPE_RGB,索引 0 對應於紅色,索引 1 對應於綠色,索引 2 對應於藍色。
出於顯示或處理目的而執行的像素值到顏色/alpha 份量的轉換是基於從樣本到份量的一一對應關係進行的。由實例表示的像素樣本值可以是有符號的或無符號的,也可以是整型或者 float 或 double 型別(有關細節請參見以下內容),具體取決於用來創建 ComponentColorModel 實例的傳輸型別。從樣本值到標準化顏色/alpha 份量的轉換必須遵循一定的規則。對於 float 和 double 樣本,轉換為一種標識,即標準化份量值等於相應的樣本值。對於整數樣本,轉換應該只是簡單縮放和偏移,其中每個份量的縮放和偏移常數可以有所不同。應用縮放和偏移常數的結果是形成一組顏色/alpha 份量值,這樣可以保證這些值落到一定範圍內。通常,顏色份量的範圍將為由 ColorSpace 類別的 getMinValue 和 getMaxValue 方法定義的範圍。alpha 份量的範圍應為從 0.0 到 1.0。
用傳輸型別 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 和 DataBuffer.TYPE_INT 創建的 ComponentColorModel 的實例具有被視為無符號整數值的像素樣本值。像素值的顏色或 alpha 樣本中的位數可能不同於傳遞到 ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int) 建構子的相應顏色或 alpha 樣本的位數。在這種情況下,此類別假定樣本值的 n 位最低有效位保存份量值,其中 n 為傳遞到建構子的份量的有效位數。它還假定樣本值中所有較高位都為零。因此,樣本值的範圍為 0 到 2n - 1。此類別將這些樣本值映射到標準化顏色份量值,以使 0 映射到從每個份量的 ColorSpace 的 getMinValue 方法得到的值,2n - 1 映射到從 getMaxValue 得到的值。創建具有不同顏色樣本映射的 ComponentColorModel 需要子類別化此類別,並覆寫 getNormalizedComponents(Object, float[], int) 方法。alpha 樣本的映射始終將 0 映射到 0.0,將 2n - 1 映射到 1.0。
對於帶有無符號樣本值的實例,僅當兩個條件都具備時,非標準化的顏色/alpha 份量表示形式才受支持。首先,樣本值 0 必須映射到標準化份量值 0.0,樣本值 2n - 1 映射到 1.0。其次,ColorSpace 的所有顏色份量的最小值/最大取值範圍必須為 0.0 到 1.0 之間。在這種情況下,份量表示形式為相應樣本的 n 位最低有效位。因此,每個份量都為介於 0 和 2n - 1 之間的無符號整數值,其中 n 為特定份量的有效位數。如果未滿足這些條件,則採用非標準化份量參數的任何方法都將拋出 IllegalArgumentException。
用傳輸型別 DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 和 DataBuffer.TYPE_DOUBLE 創建的 ComponentColorModel 的實例具有被視為有符號的 short、float 或 double 值的像素樣本值。此類別實例不支持非標準化的顏色/alpha 份量表示形式,因此將此類別表示形式用作參數在這些實例的其中之一上調用任何方法都將拋出 IllegalArgumentException。此類別實例的標準化份量的取值範圍取決於傳輸型別,如下所示:對於 float 樣本,則為 float 資料型別的完整範圍;對於 double 樣本,則為 float 資料型別(通過將 double 強制轉換為 float 得到)的完整範圍;對於 short 樣本,大致為 -maxVal 到 +maxVal,其中 maxVal 為 ColorSpace 的每份量最大值(-32767 映射到 -maxVal,0 映射到 0.0,32767 映射到 +maxVal)。通過覆寫 getNormalizedComponents(Object, float[], int) 方法,子類別可以覆寫 short 樣本值到標準化份量值的縮放。對於 float 和 double 樣本,標準化份量值被視為等於相應的樣本值,子類別不應試圖添加這些傳輸型別的任何非標識縮放。
用傳輸型別 DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 和 DataBuffer.TYPE_DOUBLE 創建的 ComponentColorModel 的實例使用所有樣本值的所有位。因此,使用 DataBuffer.TYPE_SHORT 時所有顏色/alpha 份量都有 16 位,使用 DataBuffer.TYPE_FLOAT 時都有 32,使用 DataBuffer.TYPE_DOUBLE 時都有 64 位。當建構子的 ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int) 形式與這些傳輸型別之一一起使用時,位元陣列參數將被忽略。
可能將不能合理解釋的顏色/alpha 樣本值視為用於呈現的份量值。當子類別化 ComponentColorModel 以覆寫無符號樣本值到標準化顏色份量值的映射時,或當使用某一範圍之外的有符號樣本值時,此現象可能發生。(例如,將 alpha 份量指定為範圍 0 到 32767(即標準化範圍 0.0 到 1.0)之外的有符號 short 值可能導致不可預料的結果)。應用程序負責在呈現之前適當縮放像素資料,以使顏色份量落在 ColorSpace(使用 ColorSpace 類別的 getMinValue 和 getMaxValue 方法得到)的標準化範圍內,並使 alpha 份量位於 0.0 和 1.0 之間。如果顏色或 alpha 份量值超出這些範圍,則呈現結果是不確定的。
使用單個 int 像素表示形式的方法拋出 IllegalArgumentException,除非 ComponentColorModel 的份量數為 1 且份量值無符號,即使用 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 或 DataBuffer.TYPE_INT 的傳輸型別的單個顏色份量,沒有 alpha 份量。
ComponentColorModel 可以與 ComponentSampleModel、BandedSampleModel 或 PixelInterleavedSampleModel 一起使用,以建構 BufferedImage。
ColorModel,
ColorSpace,
ComponentSampleModel,
BandedSampleModel,
PixelInterleavedSampleModel,
BufferedImage| 欄位摘要 |
|---|
| 從類別 java.awt.image.ColorModel 繼承的欄位 |
|---|
pixel_bits, transferType |
| 從介面 java.awt.Transparency 繼承的欄位 |
|---|
BITMASK, OPAQUE, TRANSLUCENT |
| 建構子摘要 | |
|---|---|
ComponentColorModel(ColorSpace colorSpace,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
根據指定參數建構 ComponentColorModel。 |
|
ComponentColorModel(ColorSpace colorSpace,
int[] bits,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
根據指定參數建構 ComponentColorModel。 |
|
| 方法摘要 | |
|---|---|
ColorModel |
coerceData(WritableRaster raster,
boolean isAlphaPremultiplied)
強制使光柵資料與在 isAlphaPremultiplied 變數中指定的狀態比對,假定當前該資料已由此 ColorModel 正確描述。 |
SampleModel |
createCompatibleSampleModel(int w,
int h)
用指定寬度和高度創建的 SampleModel,具有與此 ColorModel 相容的資料佈局。 |
WritableRaster |
createCompatibleWritableRaster(int w,
int h)
用指定寬度和高度創建的 WritableRaster,具有與此 ColorModel 相容的資料佈局 (SampleModel)。 |
boolean |
equals(Object obj)
將此顏色模型與其他模型進行相等性比較。 |
int |
getAlpha(int pixel)
返回指定像素(縮放範圍從 0 到 255)的 alpha 份量。 |
int |
getAlpha(Object inData)
返回指定像素(在 0 到 255 之間縮放)的 alpha 份量。 |
WritableRaster |
getAlphaRaster(WritableRaster raster)
返回表示某圖像(從輸入 Raster 提取)的 alpha 通道的 Raster。 |
int |
getBlue(int pixel)
返回指定像素的藍色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。 |
int |
getBlue(Object inData)
返回指定像素的藍顏色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。 |
int[] |
getComponents(int pixel,
int[] components,
int offset)
返回在 ColorModel 中已給定像素的非標準化顏色/alpha 份量。 |
int[] |
getComponents(Object pixel,
int[] components,
int offset)
返回在此 ColorModel 中已給定像素的非標準化顏色/alpha 份量的陣列。 |
int |
getDataElement(float[] normComponents,
int normOffset)
在已給定標準化顏色/alpha 份量的陣列的情況下,返回以 int 型別表示在此 ColorModel 中的像素值。 |
int |
getDataElement(int[] components,
int offset)
返回在 ColorModel 中表示為 int 的像素值(已給定非標準化顏色/alpha 份量的陣列)。 |
Object |
getDataElements(float[] normComponents,
int normOffset,
Object obj)
在已給定標準化顏色/alpha 份量的陣列的情況下,返回此 ColorModel 中像素的資料元素陣列表示形式。 |
Object |
getDataElements(int[] components,
int offset,
Object obj)
在已給定非標準化顏色/alpha 份量的情況下,返回此 ColorModel 中像素的資料元素陣列表示形式。 |
Object |
getDataElements(int rgb,
Object pixel)
在預設 RGB 顏色模型中給定整數像素的表示形式的情況下,返回此 ColorModel 中像素的資料元素陣列的表示形式。 |
int |
getGreen(int pixel)
返回指定像素的綠色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。 |
int |
getGreen(Object inData)
返回指定像素的綠色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。 |
float[] |
getNormalizedComponents(int[] components,
int offset,
float[] normComponents,
int normOffset)
在給定標準化份量陣列的情況下,返回以標準化形式存在的所有顏色/alpha 份量的陣列。 |
float[] |
getNormalizedComponents(Object pixel,
float[] normComponents,
int normOffset)
返回已在 ColorModel 中給定了像素的標準化形式顏色/alpha 份量的陣列。 |
int |
getRed(int pixel)
返回指定像素的紅色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。 |
int |
getRed(Object inData)
返回指定像素的紅色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。 |
int |
getRGB(int pixel)
返回預設的 RGB 顏色模型格式中像素的顏色/alpha 份量。 |
int |
getRGB(Object inData)
返回預設的 RGB 顏色模型格式中的像素的顏色/alpha 份量。 |
int[] |
getUnnormalizedComponents(float[] normComponents,
int normOffset,
int[] components,
int offset)
在已給定標準化份量陣列的情況下,返回以非標準化形式存在的所有顏色/alpha 份量的陣列。 |
boolean |
isCompatibleRaster(Raster raster)
如果 raster 與此 ColorModel 相容,則返回 true;如果不相容,則返回 false。 |
boolean |
isCompatibleSampleModel(SampleModel sm)
檢查指定 SampleModel 是否與此 ColorModel 相容。 |
| 從類別 java.awt.image.ColorModel 繼承的方法 |
|---|
finalize, getColorSpace, getComponentSize, getComponentSize, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, hasAlpha, hashCode, isAlphaPremultiplied, toString |
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, getClass, notify, notifyAll, wait, wait, wait |
| 建構子詳細資訊 |
|---|
public ComponentColorModel(ColorSpace colorSpace,
int[] bits,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
ComponentColorModel。顏色份量將在指定的 ColorSpace 中。受支持的傳輸型別為 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 和 DataBuffer.TYPE_DOUBLE。如果不為 null,則 bits 陣列指定每個顏色和 alpha 份量的有效位數,並且如果像素值中不存在 alpha 資訊,則其長度至少應該是 ColorSpace 中份量數,如果存在 alpha 資訊,則其長度大於此數。當 transferType 為 DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE 時,忽略 bits 陣列參數。hasAlpha 指示是否存在 alpha 資訊。如果 hasAlpha 為 true,則布林值 isAlphaPremultiplied 指定如何解釋像素值中的顏色和 alpha 樣本。如果布林值為 true,則假定顏色樣本已與 alpha 樣本相乘。transparency 指定可以由此顏色模型表示的 alpha 值。可以接受的 transparency 值為 OPAQUE、BITMASK 或 TRANSLUCENT。transferType 是用於表示像素值的基本陣列的型別。
colorSpace - 與此顏色模型關聯的 ColorSpace。bits - 每個份量的有效位數。可以為 null,在這種情況下,所有份量樣本的所有位都將有效。如果 transferType 為 DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE 之一,則忽略,在這種情況下,所有份量樣本的所有位都將有效。hasAlpha - 如果為 true,則此顏色模型支持 alpha。isAlphaPremultiplied - 如果為 true,則 alpha 預乘的。transparency - 指定可以由此顏色模型表示的 alpha 值。transferType - 指定用於表示像素值的基本陣列的型別。
IllegalArgumentException - 如果 bits 陣列參數不為 null,則其長度小於顏色和 alpha 份量數,且 transferType 為 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 或 DataBuffer.TYPE_INT 之一。
IllegalArgumentException - 如果 transferType 不為 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE 之一。ColorSpace,
Transparency
public ComponentColorModel(ColorSpace colorSpace,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
ComponentColorModel。顏色份量將在指定的 ColorSpace 中。受支持的傳輸型別為 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 和 DataBuffer.TYPE_DOUBLE。每個顏色和 alpha 份量的有效位數都分別為 8、16、32、16、32 或 64。顏色份量數為 ColorSpace 中的份量數。如果 hasAlpha 為 true,則存在 alpha 份量。如果 hasAlpha 為 true,則布林值 isAlphaPremultiplied 指定如何解釋像素值中的顏色和 alpha 樣本。如果布林值為 true,則假定顏色樣本已與 alpha 樣本相乘。transparency 指定可以由此顏色模型表示的 alpha 值。可以接受的 transparency 值為 OPAQUE、BITMASK 或 TRANSLUCENT。transferType 是用於表示像素值的基本陣列的型別。
colorSpace - 與此顏色模型關聯的 ColorSpace。hasAlpha - 如果為 true,則此顏色模型支持 alpha。isAlphaPremultiplied - 如果為 true,則 alpha 預乘的。transparency - 指定可以由此顏色模型表示的 alpha 值。transferType - 指定用於表示像素值的基本陣列的型別。
IllegalArgumentException - 如果 transferType 不為 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE 之一。ColorSpace,
Transparency| 方法詳細資訊 |
|---|
public int getRed(int pixel)
ColorModel 中的 getRedpixel - 要從中獲取紅色份量的像素。
IllegalArgumentException - 如果此 ColorModel 中有一個以上的份量。
IllegalArgumentException - 如果此 ColorModel 的份量值為有符號的。public int getGreen(int pixel)
ColorModel 中的 getGreenpixel - 要從中獲取綠色份量的像素。
IllegalArgumentException - 如果此 ColorModel 中有一個以上的份量。
IllegalArgumentException - 如果此 ColorModel 的份量值為有符號的。public int getBlue(int pixel)
ColorModel 中的 getBluepixel - 要從中獲取藍色份量的像素。
IllegalArgumentException - 如果此 ColorModel 中有一個以上的份量。
IllegalArgumentException - 如果此 ColorModel 的份量值為有符號的。public int getAlpha(int pixel)
ColorModel 中的 getAlphapixel - 要從中獲取 alpha 份量的像素。
IllegalArgumentException - 如果此 ColorModel 中有一個以上的份量。
IllegalArgumentException - 如果此 ColorModel 的份量值為有符號的。public int getRGB(int pixel)
ColorModel 中的 getRGBpixel - 要從中獲取顏色/alpha 份量的像素。
IllegalArgumentException - 如果此 ColorModel 中有一個以上的份量。
IllegalArgumentException - 如果此 ColorModel 的份量值為有符號的。ColorModel.getRGBdefault()public int getRed(Object inData)
pixel 值由作為物件參考而傳入的型別 transferType 的資料元素的陣列指定。返回的值為非預先乘得的值。如果與 alpha 預先相乘,此方法將在返回值(如果 alpha 值為 0,則紅色值將為 0)之前將其除出來。因為 ComponentColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。
ColorModel 中的 getRedinData - 要從中獲取紅色份量(由型別 transferType 的資料元素的陣列指定)的像素。
ClassCastException - 如果 inData 不為型別 transferType 的基本陣列。
ArrayIndexOutOfBoundsException - 如果 inData 不是特別大,不能保存此 ColorModel 的像素值。
UnsupportedOperationException - 如果此 ComponentColorModel 的傳輸型別不為以下受支持的傳輸型別之一:DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE。public int getGreen(Object inData)
ColorSpace(即 sRGB)中縮放範圍是 0 到 255。如有必要,可進行顏色轉換。pixel 值由作為物件參考而傳入的型別 transferType 的資料元素的陣列指定。返回的值是一個非預先乘得的值。如果與 alpha 預先相乘,此方法將在返回值(如果 alpha 值為 0,則綠色值將為 0)之前將其除出來。因為 ComponentColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。
ColorModel 中的 getGreeninData - 要從中獲取綠色份量(由型別 transferType 的資料元素的陣列指定)的像素。
ClassCastException - 如果 inData 不為型別 transferType 的基本陣列。
ArrayIndexOutOfBoundsException - 如果 inData 不是特別大,不能保存此 ColorModel 的像素值。
UnsupportedOperationException - 如果此 ComponentColorModel 的傳輸型別不為以下受支持的傳輸型別之一:DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE。public int getBlue(Object inData)
ColorSpace(即 sRGB)中縮放範圍是 0 到 255。如有必要,可進行顏色轉換。pixel 值由作為物件參考而傳入的型別 transferType 的資料元素的陣列指定。返回的值是一個非預先乘得的值。如果與 alpha 預先相乘,此方法將在返回值(如果 alpha 值為 0,則藍色值將為 0)之前將其除出來。因為 ComponentColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。
ColorModel 中的 getBlueinData - 要從中獲取藍色份量(由型別 transferType 的資料元素的陣列指定)的像素。
ClassCastException - 如果 inData 不為型別 transferType 的基本陣列。
ArrayIndexOutOfBoundsException - 如果 inData 不是特別大,不能保存此 ColorModel 的像素值。
UnsupportedOperationException - 如果此 ComponentColorModel 的傳輸型別不為以下受支持的傳輸型別之一:DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE。public int getAlpha(Object inData)
transferType 的資料元素的陣列指定。因為 ComponentColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。
ColorModel 中的 getAlphainData - 要從中獲取 alpha 份量(由型別 transferType 的資料元素的陣列指定)的像素。
ClassCastException - 如果 inData 不為型別 transferType 的基本陣列。
ArrayIndexOutOfBoundsException - 如果 inData 不是特別大,不能保存此 ColorModel 的像素值。
UnsupportedOperationException - 如果此 ComponentColorModel 的傳輸型別不為以下受支持的傳輸型別之一:DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE。public int getRGB(Object inData)
transferType 型別的資料元素陣列指定。返回的值是非預乘格式。如果與 alpha 預先相乘,此方法會將其從顏色份量(如果 alpha 值為 0,則顏色值為 0)中除出來。因為 ComponentColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。
ColorModel 中的 getRGBinData - 要從中獲取顏色/alpha 份量(由型別 transferType 的資料元素的陣列指定)的像素。
ClassCastException - 如果 inData 不為型別 transferType 的基本陣列。
ArrayIndexOutOfBoundsException - 如果 inData 不是特別大,不能保存此 ColorModel 的像素值。
UnsupportedOperationException - 如果此 ComponentColorModel 的傳輸型別不為以下受支持的傳輸型別之一:DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE。ColorModel.getRGBdefault()
public Object getDataElements(int rgb,
Object pixel)
ColorModel 中像素的資料元素陣列的表示形式。然後可以將此陣列傳遞給 WritableRaster 物件的 setDataElements 方法。如果 pixel 參數為 null,則分派新陣列。因為 ComponentColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。
ColorModel 中的 getDataElementsrgb - RGB 顏色模型中像素的整數表示形式pixel - 指定像素
ColorModel 中像素的資料元素陣列表示形式。
ClassCastException - 如果 pixel 不為 null 且不為型別 transferType 的基本陣列。
ArrayIndexOutOfBoundsException - 如果 pixel 不是特別大,不能保存此 ColorModel 的像素值。
UnsupportedOperationException - 如果此 ComponentColorModel 的傳輸型別不為以下受支持的傳輸型別之一:DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE。WritableRaster.setDataElements(int, int, java.lang.Object),
SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public int[] getComponents(int pixel,
int[] components,
int offset)
ColorModel 中已給定像素的非標準化顏色/alpha 份量。如果此 ColorModel 的份量值不便於以非標準化形式表示,則返回 IllegalArgumentException。將顏色/alpha 份量存儲在以 offset 開頭的 components 陣列中,即便此方法已分派了陣列也是如此。
ColorModel 中的 getComponentspixel - 指定為整數的像素值。components - 在其中存儲非標準化顏色/alpha 份量的整數陣列。如果 components 陣列為 null,則分派新陣列。offset - components 陣列的偏移量。
IllegalArgumentException - 如果此 ColorModel 中有一個以上的份量。
IllegalArgumentException - 如果此 ColorModel 不支持非標準化形式
ArrayIndexOutOfBoundsException - 如果 components 陣列不為 null 且不是特別大,不能保存所有顏色和 alpha 份量(以偏移量開頭)。
public int[] getComponents(Object pixel,
int[] components,
int offset)
ColorModel 中已給定像素的非標準化顏色/alpha 份量的陣列。像素值由作為一個物件參考而傳入的 transferType 型別的資料元素陣列指定。如果此 ColorModel 的份量值不便於以非標準化形式表示,則返回 IllegalArgumentException。將顏色/alpha 份量存儲在以 offset 開頭的 components 陣列中,即便此方法已分派了陣列也是如此。因為 ComponentColorModel可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則在其使用不受支持的 transferType 時此方法可能拋出異常。
ColorModel 中的 getComponentspixel - 由型別 transferType 的資料元素的陣列指定的像素值。components - 在其中存儲非標準化顏色/alpha 份量的整數陣列。如果 components 陣列為 null,則分派新陣列。offset - components 陣列的偏移量。
components 陣列。
IllegalArgumentException - 如果此 ComponentColorModel 不支持非標準化形式
UnsupportedOperationException - 在某些情況下,如果此 ComponentColorModel 的傳輸型別不為以下傳輸型別之一:DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 或 DataBuffer.TYPE_INT。
ClassCastException - 如果 pixel 不為型別 transferType 的基本陣列。
IllegalArgumentException - 如果 components 陣列不為 null 且不是特別大,不能保存所有顏色或 alpha 份量(以偏移量開頭),或者 pixel 不是特別大,不能保存此 ColorModel 的像素值。
public int[] getUnnormalizedComponents(float[] normComponents,
int normOffset,
int[] components,
int offset)
ColorModel 的 ColorSpace 物件指定的每個份量的最小值和最大值之間。如果此 ColorModel 的顏色份量值不便於用非標準化形式表示,則拋出 IllegalArgumentException。如果 components 陣列為 null,則分派一個新陣列。components 陣列將返回。將顏色/alpha 份量存儲在以 offset 開頭的 components 陣列中,即便此方法已分派了陣列也是如此。如果 components 陣列不為 null 且不是特別大,不能以 offset 開頭保存所有顏色和 alpha 份量,則拋出 ArrayIndexOutOfBoundsException。如果 normComponents 陣列不是特別大,不能保存以 normOffset 開頭的所有顏色和 alpha 份量,則拋出 IllegalArgumentException。
ColorModel 中的 getUnnormalizedComponentsnormComponents - 套件含標準化份量的陣列normOffset - 開始檢索標準化份量的 normComponents 陣列的偏移量components - 從 normComponents 檢索份量的陣列offset - 在其處開始存儲 normComponents 的 components 的索引
IllegalArgumentException - 如果此 ComponentColorModel 不支持非標準化形式
IllegalArgumentException - 如果 normComponents 的長度減去 normOffset 小於 numComponents
public float[] getNormalizedComponents(int[] components,
int offset,
float[] normComponents,
int normOffset)
ColorModel 的 ColorSpace 物件指定的每個份量的最小值和最大值之間。如果此 ColorModel 的顏色份量值不便於用非標準化形式表示,則拋出 IllegalArgumentException。如果 normComponents 陣列為 null,則分派一個新陣列。normComponents 陣列將返回。顏色/alpha 份量存儲在以 normOffset 開頭的 normComponents 陣列中,即使此方法已分派了陣列也如此。如果 normComponents 陣列不為 null,且不是特別大,不能保存所有顏色和 alpha 份量(以 normOffset 開頭),則拋出 ArrayIndexOutOfBoundsException。如果 components 陣列不是特別大,不能保存以 offset 開頭的所有顏色和 alpha 份量,則拋出 IllegalArgumentException。
ColorModel 中的 getNormalizedComponentscomponents - 套件含非標準化份量的陣列offset - 開始檢索非標準化份量的 components 陣列的偏移量normComponents - 收到標準化份量的陣列normOffset - 在其處開始存儲標準化份量的 normComponents 的索引
IllegalArgumentException - 如果此 ComponentColorModel 不支持非標準化形式
public int getDataElement(int[] components,
int offset)
ColorModel 中表示為 int 的像素值(已給定非標準化顏色/alpha 份量的陣列)。
ColorModel 中的 getDataElementcomponents - 非標準化顏色/alpha 份量的陣列。offset - components 陣列的偏移量。
IllegalArgumentException - 如果此 ColorModel 中有一個以上的份量。
IllegalArgumentException - 如果此 ComponentColorModel 不支持非標準化形式
public Object getDataElements(int[] components,
int offset,
Object obj)
ColorModel 中像素的資料元素陣列表示形式。然後可以將此陣列傳遞給 WritableRaster 物件的 setDataElements 方法。
ColorModel 中的 getDataElementscomponents - 非標準化顏色/alpha 份量的陣列。offset - components 陣列的整數偏移量。obj - 在其中存儲像素的資料元素陣列表示形式的物件。如果 obj 變數為 null,則分派新陣列。如果 obj 不為 null,則其必須為型別 transferType 的基本陣列。如果 obj 不是特別大,不能保存此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。因為 ComponentColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。
ColorModel 中像素的資料元素陣列表示形式。
IllegalArgumentException - 如果份量陣列不是特別大,不能保存所有以偏移量開頭的顏色和 alpha 份量。
ClassCastException - 如果 obj 不為 null 且不為型別 transferType 的基本陣列。
ArrayIndexOutOfBoundsException - 如果 obj 不是特別大,不能保存此 ColorModel 的像素值。
IllegalArgumentException - 如果此 ComponentColorModel 不支持非標準化形式
UnsupportedOperationException - 如果此 ComponentColorModel 的傳輸型別不為以下傳輸型別之一:DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 或 DataBuffer.TYPE_INT。WritableRaster.setDataElements(int, int, java.lang.Object),
SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public int getDataElement(float[] normComponents,
int normOffset)
int 型別表示在此 ColorModel 中的像素值。如果此 ColorModel 的像素值不便於用單個 int,則此方法將拋出 IllegalArgumentException。如果 normComponents 陣列不是特別大,不能保存所有以 normOffset 開頭的顏色和 alpha 份量,則拋出 ArrayIndexOutOfBoundsException。
ColorModel 中的 getDataElementnormComponents - 標準化顏色和 alpha 份量的陣列normOffset - 開始檢索顏色和 alpha 份量的 normComponents 的索引
ColorModel 中對應於指定份量的 int 像素值。
IllegalArgumentException - 如果此 ColorModel 的像素值不便於用單個 int 表示
ArrayIndexOutOfBoundsException - 如果 normComponents 陣列不是特別大,不能保存以 normOffset 開頭的所有顏色和 alpha 份量
public Object getDataElements(float[] normComponents,
int normOffset,
Object obj)
ColorModel 中像素的資料元素陣列表示形式。然後可以將此陣列傳遞給 WritableRaster 物件的 setDataElements 方法。如果 normComponents 陣列不是特別大,不能保存所有以 normOffset 開頭的顏色和 alpha 份量,則拋出 ArrayIndexOutOfBoundsException。如果 obj 變數為 null,則分派一個新陣列。如果 obj 不為 null,則它必須為型別 transferType 的基本陣列;否則將拋出 ClassCastException。如果 obj 不是特別大,不能保存此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。
ColorModel 中的 getDataElementsnormComponents - 標準化顏色和 alpha 份量的陣列normOffset - 開始檢索顏色和 alpha 份量的 normComponents 的索引obj - 保存返回的像素的基本資料陣列
Object
ClassCastException - 如果 obj 不為型別 transferType 的基本陣列
ArrayIndexOutOfBoundsException - 如果 obj 不是特別大,不能保存此 ColorModel 的像素值,或者 normComponents 陣列不是特別大,不能保存以 normOffset 開頭的所有顏色和 alpha 份量WritableRaster.setDataElements(int, int, java.lang.Object),
SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public float[] getNormalizedComponents(Object pixel,
float[] normComponents,
int normOffset)
ColorModel 中給定了像素的標準化形式顏色/alpha 份量的陣列。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。如果像素不為型別 transferType 的基本陣列,則拋出 ClassCastException。如果 pixel 不是特別大,不能保存此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。標準化份量為 float 值,這些值介於此 ColorModel 的 ColorSpace 物件指定的每個份量的最小值和最大值之間。如果 normComponents 陣列為 null,則分派一個新陣列。normComponents 陣列將返回。顏色/alpha 份量存儲在以 normOffset 開頭的 normComponents 陣列中,即使此方法已分派了陣列也如此。如果 normComponents 陣列不為 null,且不是特別大,不能保存所有顏色和 alpha 份量(以 normOffset 開頭),則拋出 ArrayIndexOutOfBoundsException。
如果某子類別旨在以非預設方式將像素樣本值轉換為顏色份量值,則該子類別必須覆寫此方法。此類別實作的預設轉換在類別的註釋中描述。實作非預設轉換的任何子類別都必須遵循對此處定義的允許轉換的限制。
ColorModel 中的 getNormalizedComponentspixel - 指定像素normComponents - 檢索標準化份量的陣列normOffset - 在其處開始存儲標準化份量的 normComponents 陣列的偏移量
ClassCastException - 如果 pixel 不為型別 transferType 的基本陣列
ArrayIndexOutOfBoundsException - 如果 normComponents 不是特別大,不能保存以 normOffset 開頭的所有顏色和 alpha 份量
ArrayIndexOutOfBoundsException - 如果 pixel 不是特別大,不能保存此 ColorModel 的像素值。
public ColorModel coerceData(WritableRaster raster,
boolean isAlphaPremultiplied)
isAlphaPremultiplied 變數中指定的狀態比對,假定當前該資料已由此 ColorModel 正確描述。可以將顏色 raster 資料乘以或除以 alpha,如果該資料處於正確狀態,則不執行任何操作。如果需要對該資料強制比對,則此方法還將相應地返回一個帶有 isAlphaPremultiplied 標誌集的 ColorModel 的實例。因為 ColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。
ColorModel 中的 coerceDataraster - WritableRaster 資料isAlphaPremultiplied - 如果與 alpha 預乘,則返回 true;否則將返回 false
ColorModel 物件。
NullPointerException - 如果 raster 為 null 且需要資料強制。
UnsupportedOperationException - 如果此 ComponentColorModel 的傳輸型別不為以下受支持的傳輸型別之一:DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 或 DataBuffer.TYPE_DOUBLE。public boolean isCompatibleRaster(Raster raster)
raster 與此 ColorModel 相容,則返回 true;如果不相容,則返回 false。
ColorModel 中的 isCompatibleRasterraster - 用於測試相容性的 Raster。
raster 與此 ColorModel 相容,則返回 true;如果不相容,則返回 false。
public WritableRaster createCompatibleWritableRaster(int w,
int h)
WritableRaster,具有與此 ColorModel 相容的資料佈局 (SampleModel)。
ColorModel 中的 createCompatibleWritableRasterw - 要創建的 WritableRaster 的寬度。h - 要創建的 WritableRaster 的高度。
ColorModel 相容的 WritableRaster。WritableRaster,
SampleModel
public SampleModel createCompatibleSampleModel(int w,
int h)
SampleModel,具有與此 ColorModel 相容的資料佈局。
ColorModel 中的 createCompatibleSampleModelw - 要創建的 SampleModel 的寬度。h - 要創建的 SampleModel 的高度。
ColorModel 相容的 SampleModel。SampleModelpublic boolean isCompatibleSampleModel(SampleModel sm)
SampleModel 是否與此 ColorModel 相容。
ColorModel 中的 isCompatibleSampleModelsm - 用於測試相容性的 SampleModel。
SampleModel 與此 ColorModel 相容,則返回 true;如果不相容,則返回 false。SampleModelpublic WritableRaster getAlphaRaster(WritableRaster raster)
Raster 提取)的 alpha 通道的 Raster。此方法假定與此 ColorModel 關聯的 Raster 物件將 alpha band(如果有)存儲為圖像資料的最後一個 band。如果不存在與此 ColorModel 相關的獨立空間 alpha 通道,則返回 null。此方法創建一個新的 Raster,但是共享原來的資料陣列。
ColorModel 中的 getAlphaRasterraster - 從中提取 alpha 通道的 WritableRaster。
WritableRaster。public boolean equals(Object obj)
ColorModel 中的 equalsobj - 要與此顏色模型比較的物件。
true;如果不相等,則返回 false。Object.hashCode(),
Hashtable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。