|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.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
中的 getRed
pixel
- 要從中獲取紅色份量的像素。
IllegalArgumentException
- 如果此 ColorModel
中有一個以上的份量。
IllegalArgumentException
- 如果此 ColorModel
的份量值為有符號的。public int getGreen(int pixel)
ColorModel
中的 getGreen
pixel
- 要從中獲取綠色份量的像素。
IllegalArgumentException
- 如果此 ColorModel
中有一個以上的份量。
IllegalArgumentException
- 如果此 ColorModel
的份量值為有符號的。public int getBlue(int pixel)
ColorModel
中的 getBlue
pixel
- 要從中獲取藍色份量的像素。
IllegalArgumentException
- 如果此 ColorModel
中有一個以上的份量。
IllegalArgumentException
- 如果此 ColorModel
的份量值為有符號的。public int getAlpha(int pixel)
ColorModel
中的 getAlpha
pixel
- 要從中獲取 alpha 份量的像素。
IllegalArgumentException
- 如果此 ColorModel
中有一個以上的份量。
IllegalArgumentException
- 如果此 ColorModel
的份量值為有符號的。public int getRGB(int pixel)
ColorModel
中的 getRGB
pixel
- 要從中獲取顏色/alpha 份量的像素。
IllegalArgumentException
- 如果此 ColorModel
中有一個以上的份量。
IllegalArgumentException
- 如果此 ColorModel
的份量值為有符號的。ColorModel.getRGBdefault()
public int getRed(Object inData)
pixel
值由作為物件參考而傳入的型別 transferType
的資料元素的陣列指定。返回的值為非預先乘得的值。如果與 alpha 預先相乘,此方法將在返回值(如果 alpha 值為 0,則紅色值將為 0)之前將其除出來。因為 ComponentColorModel
可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType
時,將拋出異常。
ColorModel
中的 getRed
inData
- 要從中獲取紅色份量(由型別 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
中的 getGreen
inData
- 要從中獲取綠色份量(由型別 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
中的 getBlue
inData
- 要從中獲取藍色份量(由型別 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
中的 getAlpha
inData
- 要從中獲取 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
中的 getRGB
inData
- 要從中獲取顏色/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
中的 getDataElements
rgb
- 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
中的 getComponents
pixel
- 指定為整數的像素值。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
中的 getComponents
pixel
- 由型別 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
中的 getUnnormalizedComponents
normComponents
- 套件含標準化份量的陣列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
中的 getNormalizedComponents
components
- 套件含非標準化份量的陣列offset
- 開始檢索非標準化份量的 components
陣列的偏移量normComponents
- 收到標準化份量的陣列normOffset
- 在其處開始存儲標準化份量的 normComponents
的索引
IllegalArgumentException
- 如果此 ComponentColorModel
不支持非標準化形式public int getDataElement(int[] components, int offset)
ColorModel
中表示為 int 的像素值(已給定非標準化顏色/alpha 份量的陣列)。
ColorModel
中的 getDataElement
components
- 非標準化顏色/alpha 份量的陣列。offset
- components
陣列的偏移量。
IllegalArgumentException
- 如果此 ColorModel
中有一個以上的份量。
IllegalArgumentException
- 如果此 ComponentColorModel
不支持非標準化形式public Object getDataElements(int[] components, int offset, Object obj)
ColorModel
中像素的資料元素陣列表示形式。然後可以將此陣列傳遞給 WritableRaster
物件的 setDataElements
方法。
ColorModel
中的 getDataElements
components
- 非標準化顏色/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
中的 getDataElement
normComponents
- 標準化顏色和 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
中的 getDataElements
normComponents
- 標準化顏色和 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
中的 getNormalizedComponents
pixel
- 指定像素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
中的 coerceData
raster
- 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
中的 isCompatibleRaster
raster
- 用於測試相容性的 Raster
。
raster
與此 ColorModel
相容,則返回 true
;如果不相容,則返回 false
。public WritableRaster createCompatibleWritableRaster(int w, int h)
WritableRaster
,具有與此 ColorModel
相容的資料佈局 (SampleModel
)。
ColorModel
中的 createCompatibleWritableRaster
w
- 要創建的 WritableRaster
的寬度。h
- 要創建的 WritableRaster
的高度。
ColorModel
相容的 WritableRaster
。WritableRaster
,
SampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel
,具有與此 ColorModel
相容的資料佈局。
ColorModel
中的 createCompatibleSampleModel
w
- 要創建的 SampleModel
的寬度。h
- 要創建的 SampleModel
的高度。
ColorModel
相容的 SampleModel
。SampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel
是否與此 ColorModel
相容。
ColorModel
中的 isCompatibleSampleModel
sm
- 用於測試相容性的 SampleModel
。
SampleModel
與此 ColorModel
相容,則返回 true
;如果不相容,則返回 false
。SampleModel
public WritableRaster getAlphaRaster(WritableRaster raster)
Raster
提取)的 alpha 通道的 Raster
。此方法假定與此 ColorModel
關聯的 Raster
物件將 alpha band(如果有)存儲為圖像資料的最後一個 band。如果不存在與此 ColorModel
相關的獨立空間 alpha 通道,則返回 null。此方法創建一個新的 Raster
,但是共享原來的資料陣列。
ColorModel
中的 getAlphaRaster
raster
- 從中提取 alpha 通道的 WritableRaster
。
WritableRaster
。public boolean equals(Object obj)
ColorModel
中的 equals
obj
- 要與此顏色模型比較的物件。
true
;如果不相等,則返回 false
。Object.hashCode()
,
Hashtable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。