|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.image.ColorModel
public abstract class ColorModel
此 ColorModel
抽象類別封裝了將像素值轉換為顏色份量(例如,紅色、綠色和藍色)和 alpha 份量的方法。為了將圖像呈現到螢幕、打字機或其他圖像上,必須將像素值轉換為顏色和 alpha 份量。與此類別方法的參數或返回值一樣,可以把像素表示為 32 位 int,或表示為基本型別的陣列。ColorModel
顏色份量的數量、順序和解釋由其 ColorSpace
指定。與未包含 alpha 資訊的像素資料一起使用的 ColorModel
將所有像素視為不透明的(alpha 值為 1.0)。
此 ColorModel
類別支持像素值的兩種表示形式。像素值可以為單個 32 位 int,也可以為一個基本型別的陣列。Java(tm) Platform 1.0 和 1.1 API 將像素表示為單 byte
或單 int
值。根據此 ColorModel
類別用途,可按 int 形式傳遞像素值參數。Java(tm) 2 Platform API 引入了表示圖像的其他類別。對於 BufferedImage
或 RenderedImage
物件(基於 Raster
和 SampleModel
類別),像素值用單個 int 表示可能不太方便。因此,ColorModel
現在提供了以基本型別陣列表示像素值的方法。特定 ColorModel
物件使用的基本型別被稱作其轉換型別。
當調用採用單個 int 像素參數的方法時,與其像素值不便於表示為單個 int 的圖像一起使用的 ColorModel
物件會拋出 IllegalArgumentException
。ColorModel
的子類別必須指定出現這種情況的條件。對於 DirectColorModel
或 IndexColorModel
物件,不會出現這種情況。
當前,受 Java 2D(tm) API 支持的轉換型別有 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT 和 DataBuffer.TYPE_DOUBLE。當使用 ColorModel 和這些型別中前三個型別的圖像時,多數呈現操作都會被更快地執行。而 ColorModel 和後三種型別的圖像可能不支持某些圖像的過濾操作。在創建特定 ColorModel
物件時,通常會顯式或預設指定該物件的轉換型別。ColorModel
的所有子類別必須指定可能的轉換型別和如何確定表示像素基本陣列中元素的數量。
對於 BufferedImages
,其 Raster
和該 Raster
物件的 SampleModel
(從這些類別的 getTransferType
方法中獲得)的轉換型別必須與 ColorModel
的轉換型別比對。表示 Raster
和 SampleModel
(從這些類別的 getNumDataElements
方法中獲得)的像素的陣列中的元素數量必須與 ColorModel
的數量比對。
用於將像素值轉換為顏色和 alpha 份量的演算法隨子類別不同而不同。例如,從 BufferedImage
物件的 Raster
和顏色/alpha 份量的 SampleModel
中得到的樣本之間不需要一一對應。即使有此對應關係,樣本中的位數也不必與相應的顏色/alpha 份量中的位數相同。每個子類別必須指定如何從像素值到顏色/alpha 份量的轉換。
該 ColorModel
類別中的方法使用兩種不同的顏色和 alpha 份量表示形式:標準化形式和非標準化形式。在標準化形式中,每個份量都是介於某個最小值和最大值之間的 float
值。對於 alpha 份量,最小值為 0.0,最大值為 1.0。對於顏色份量,每個份量的最小值和最大值可以從 ColorSpace
物件中得到。這些值通常為 0.0 和 1.0(例如,預設 sRGB 顏色空間的標準化份量值的範圍為 0.0 到 1.0),但某些顏色空間的份量值可能有不同的上限和下限。這些極限值可以使用 ColorSpace
類別的 getMinValue
和 getMaxValue
方法得到。標準化的顏色份量值未預乘。所有 ColorModels
必須支持標準化形式。
在非標準化形式中,每個份量都是 0 和 2n - 1 之間的無符號整數值,其中 n 為特定份量的有效位數。如果特定 ColorModel
的像素值表示預乘了 alpha 樣本的顏色樣本,則非標準化顏色份量也要預乘。非標準化形式只能與其 ColorSpace
所有份量的最小值為 0.0,所有份量的最大值為 1.0 的 ColorModel
的實例一起使用。顏色和 alpha 份量的非標準化形式可以是其標準化份量值都位於 0.0 和 1.0 之間的 ColorModels
的便捷表示形式。在這種情況下,整數值 0 映射到 0.0,而值 2n - 1 映射到 1.0。其他情況下,如標準化份量值可以為負數或正數、非標準化形式不方便使用。當調用包含非標準化參數的方法時,此類別 ColorModel
物件將拋出 IllegalArgumentException
。ColorModel
的子類別必須指定出現這種情況的條件。
IndexColorModel
,
ComponentColorModel
,
PackedColorModel
,
DirectColorModel
,
Image
,
BufferedImage
,
RenderedImage
,
ColorSpace
,
SampleModel
,
Raster
,
DataBuffer
欄位摘要 | |
---|---|
protected int |
pixel_bits
像素總位數。 |
protected int |
transferType
用於表示像素值的陣列的資料型別。 |
從介面 java.awt.Transparency 繼承的欄位 |
---|
BITMASK, OPAQUE, TRANSLUCENT |
建構子摘要 | |
---|---|
|
ColorModel(int bits)
建構 ColorModel ,將指定位數的像素轉換為顏色/alpha 份量。 |
protected |
ColorModel(int pixel_bits,
int[] bits,
ColorSpace cspace,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
建構將像素值轉換為顏色/alpha 份量的 ColorModel 。 |
方法摘要 | |
---|---|
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)
測試指定的 Object 是否是 ColorModel 的實例,以及它是否等於此 ColorModel 。 |
void |
finalize()
一旦不再參考此 ColorModel ,就要釋放與此 ColorModel 相關的系統資源。 |
abstract int |
getAlpha(int pixel)
返回指定像素(縮放範圍從 0 到 255)的 alpha 份量。 |
int |
getAlpha(Object inData)
返回指定像素(在 0 到 255 之間縮放)的 alpha 份量。 |
WritableRaster |
getAlphaRaster(WritableRaster raster)
返回表示圖像(從輸入 Raster 中提取)的 alpha 通道的 Raster ,除非此 ColorModel 的像素值將顏色和 alpha 資訊表示為獨立的空間 band(如 ComponentColorModel 和 DirectColorModel )。 |
abstract int |
getBlue(int pixel)
返回指定像素的藍色份量的值,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。 |
int |
getBlue(Object inData)
返回指定像素的藍顏色份量,指定像素在預設的 RGB ColorSpace (即 sRGB)中縮放範圍是 0 到 255。 |
ColorSpace |
getColorSpace()
返回與此 ColorModel 相關的 ColorSpace 。 |
int[] |
getComponents(int pixel,
int[] components,
int offset)
返回在 ColorModel 中已給定像素的非標準化顏色/alpha 份量。 |
int[] |
getComponents(Object pixel,
int[] components,
int offset)
返回在此 ColorModel 中已給定像素的非標準化顏色/alpha 份量的陣列。 |
int[] |
getComponentSize()
返回每個顏色/alpha 份量的位數陣列。 |
int |
getComponentSize(int componentIdx)
返回指定顏色/alpha 份量的位數。 |
int |
getDataElement(float[] normComponents,
int normOffset)
在已給定標準化顏色/alpha 份量的陣列的情況下,返回以 int 型別表示在此 ColorModel 中的像素值。 |
int |
getDataElement(int[] components,
int offset)
在已給定非標準化顏色/alpha 份量的陣列的情況下,返回此 ColorModel 中以 int 型別表示的像素值。 |
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 中像素的資料元素陣列的表示形式。 |
abstract 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 |
getNumColorComponents()
返回此 ColorModel 中顏色份量數。 |
int |
getNumComponents()
返回此 ColorModel 中份量數(包括 alpha 份量數)。 |
int |
getPixelSize()
返回由此 ColorModel 描述的每像素的位數。 |
abstract 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 份量。 |
static ColorModel |
getRGBdefault()
返回描述整數 RGB 值的預設格式的 DirectColorModel ,該整數 RGB 值可以在便於開發人員使用的 AWT 圖像介面中的許多方法中使用。 |
int |
getTransferType()
返回此 ColorModel 的轉換型別。 |
int |
getTransparency()
返回透明度。 |
int[] |
getUnnormalizedComponents(float[] normComponents,
int normOffset,
int[] components,
int offset)
在已給定標準化份量陣列的情況下,返回以非標準化形式存在的所有顏色/alpha 份量的陣列。 |
boolean |
hasAlpha()
返回此 ColorModel 中是否支持 alpha。 |
int |
hashCode()
返回此 ColorModel 的雜湊碼。 |
boolean |
isAlphaPremultiplied()
返回是否在由此 ColorModel 轉換的像素值中預乘 alpha。 |
boolean |
isCompatibleRaster(Raster raster)
如果 raster 與此 ColorModel 相容,則返回 true ,如果不相容,則返回 false 。 |
boolean |
isCompatibleSampleModel(SampleModel sm)
檢查 SampleModel 是否與此 ColorModel 相容。 |
String |
toString()
返回此 ColorModel 物件的內容的 String 表示形式。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, getClass, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
protected int pixel_bits
protected int transferType
建構子詳細資訊 |
---|
public ColorModel(int bits)
ColorModel
,將指定位數的像素轉換為顏色/alpha 份量。顏色空間預設為 RGB ColorSpace
(即 sRGB)。假定像素值包含 alpha 資訊。如果像素值中的顏色和 alpha 資訊表示為獨立的空間 band,則假定顏色 band 未與 alpha 值預乘。透明度型別為 java.awt.Transparency.TRANSLUCENT。轉換型別將為可以存儲單個像素的 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 或 DataBuffer.TYPE_INT 中的最小者(或 DataBuffer.TYPE_UNDEFINED,如果位數大於 32)。因為此建構子沒有關於每個顏色和 alpha 份量的位數資訊,所以任何調用此建構子的子類別都應該覆寫需要此資訊的所有方法。
bits
- 像素的位數
IllegalArgumentException
- 如果 bits
中的位數小於 1protected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
ColorModel
。顏色份量將位於指定的 ColorSpace
中。pixel_bits
為像素值中的位數。位元陣列指定每個顏色和 alpha 份量的有效位數。如果像素值中不包含 alpha 資訊,則其長度應為 ColorSpace
中的份量數;如果包含 alpha 資訊,則其長度比此數要大。hasAlpha
指示是否存在 alpha 資訊。boolean
isAlphaPremultiplied
指定如何解釋像素值,其中顏色和 alpha 資訊表示為獨立的空間 band。如果 boolean
為 true
,則假定顏色樣本已經與 alpha 樣本相乘。該 transparency
指定可以由此顏色模型表示的 alpha 值。轉換型別是用於表示像素值的基本陣列的型別。注意,位元陣列包含從像素值轉換後每個顏色/alpha 份量的有效位數。例如,對於 pixel_bits
等於 16 的 IndexColorModel
,該位元陣列可能有四個每個元素都設置為 8 的元素。
pixel_bits
- 像素值中的位數bits
- 指定每個顏色和 alpha 份量的有效位數的陣列cspace
- 指定 ColorSpace
hasAlpha
- true
如果包含 alpha 資訊;否則為 false
isAlphaPremultiplied
- true
如果假定顏色樣本預乘了 alpha 樣本;否則為 false
transparency
- 可以由此顏色模型表示的 alpha 值transferType
- 用於表示像素值的陣列型別
IllegalArgumentException
- 如果位元陣列的長度小於此 ColorModel
中顏色或 alpha 份量的數量,或者透明度不為有效值。
IllegalArgumentException
- 如果 bits
中位數的和小於 1,或者 bits
中任何一個元素小於 0。Transparency
方法詳細資訊 |
---|
public static ColorModel getRGBdefault()
DirectColorModel
,該整數 RGB 值可以在便於開發人員使用的 AWT 圖像介面中的許多方法中使用。顏色空間為預設的 ColorSpace
(即 sRGB)。RGB 值的格式是一個 8 位的整數,從最高有效位元組到最低有效位元組的相應順序排列 alpha、紅色、綠色和藍色顏色份量,格式如下:0xAARRGGBB。顏色份量未與 alpha 份量預乘。此格式不一定表示特定設備或所有圖像的本機或最有效的 ColorModel
。它只是一種通用的顏色模型格式。
DirectColorModel
物件。public final boolean hasAlpha()
ColorModel
中是否支持 alpha。
ColorModel
中支持 alpha,則返回 true
;否則返回 false
。public final boolean isAlphaPremultiplied()
ColorModel
轉換的像素值中預乘 alpha。如果布林變數為 true
,則使用此 ColorModel
解釋其中顏色和 alpha 資訊表示為獨立空間 band 的像素值,並且假定顏色樣本已經與 alpha 樣本相乘。
ColorModel
轉換的像素值中預乘 alpha 值,則返回 true
;否則返回 false
。public final int getTransferType()
ColorModel
的轉換型別。該轉換型別是一個基本陣列型別,可用來以陣列形式表示像素值。
public int getPixelSize()
ColorModel
描述的每像素的位數。
public int getComponentSize(int componentIdx)
ColorSpace
中指定的順序索引顏色份量。通常,此順序反映了顏色空間型別的名稱。例如,對於 TYPE_RGB,索引 0 對應於紅色,索引 1 對應於綠色,索引 2 對應於藍色。如果此 ColorModel
支持 alpha,則該 alpha 份量對應於最後一個顏色份量後面的索引。
componentIdx
- 顏色/alpha 份量的索引
ArrayIndexOutOfBoundsException
- 如果 componentIdx
大於份量數或小於 0
NullPointerException
- 如果位數陣列為 null
public int[] getComponentSize()
ColorSpace
指定的順序排列的顏色份量,後面是 alpha 份量(如果存在)。
public int getTransparency()
Transparency
中的 getTransparency
ColorModel
的透明度。Transparency.OPAQUE
,
Transparency.BITMASK
,
Transparency.TRANSLUCENT
public int getNumComponents()
ColorModel
中份量數(包括 alpha 份量數)。此份量數等於顏色份量數,或者加 1(如果存在 alpha 份量)。
ColorModel
中份量數public int getNumColorComponents()
ColorModel
中顏色份量數。這是 ColorSpace.getNumComponents()
返回的份量數。
ColorModel
中顏色份量數。ColorSpace.getNumComponents()
public abstract int getRed(int pixel)
ColorModel
的像素值不便於用單個 int 表示,則拋出 IllegalArgumentException
。返回的值不是預先乘得的值。例如,如果預乘了 alpha,則此方法會在返回值之前除以 alpha。如果 alpha 值為 0,則紅色值為 0。
pixel
- 指定的像素
public abstract int getGreen(int pixel)
ColorModel
的像素值不便於用單個 int 表示,則拋出 IllegalArgumentException
。返回的值是一個非預先乘得的值。例如,如果預乘了 alpha,則此方法會在返回值之前除以 alpha。如果 alpha 值為 0,則綠色值為 0。
pixel
- 指定的像素
public abstract int getBlue(int pixel)
ColorModel
的像素值不便於用單個 int 表示,則拋出 IllegalArgumentException
。返回的值為非預先乘得的值,例如,如果與 alpha 預先相乘,此方法會在返回值之前除以 alpha。如果 alpha 值為 0,則藍色值為 0。
pixel
- 指定的像素
public abstract int getAlpha(int pixel)
ColorModel
的像素值不便於用單個 int 表示,則拋出 IllegalArgumentException
。
pixel
- 指定的像素
public int getRGB(int pixel)
ColorModel
的像素值不便於用單個 int 表示,則拋出 IllegalArgumentException
。返回的值是非預乘格式。例如,如果預乘 alpha,此方法會將 alpha 從顏色份量中除出來。如果 alpha 值為 0,則顏色值為 0。
pixel
- 指定的像素
getRGBdefault()
public int getRed(Object inData)
ColorSpace
(即 sRGB)中縮放範圍是 0 到 255。如有必要,可進行顏色轉換。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。返回的值是一個非預先乘得的值。例如,如果預乘了 alpha,則此方法會在返回值之前除以 alpha。如果 alpha 值為 0,則紅色值為 0。如果 inData
不為型別 transferType 的基本陣列,則拋出 ClassCastException
。如果 inData
不是特別大,不能存儲此 ColorModel
的像素值,則拋出 ArrayIndexOutOfBoundsException
。如果此 transferType
不受支持,則拋出 UnsupportedOperationException
。因為 ColorModel
為抽象類別,所以任何實例必須是子類別的實例。子類別可以繼承此方法的實作,並且如果子類別未覆寫此方法,則在該子類別使用除 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
之外的 transferType
時,此方法將拋出異常。
inData
- 像素值的陣列
ClassCastException
- 如果 inData
不為型別 transferType
的基本陣列
ArrayIndexOutOfBoundsException
- 如果 inData
不是特別大,不能存儲此 ColorModel
的像素值
UnsupportedOperationException
- 如果此 tranferType
不受此 ColorModel
支持public int getGreen(Object inData)
ColorSpace
(即 sRGB)中縮放範圍是 0 到 255)。如有必要,可進行顏色轉換。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。返回的值為非預先乘得的值。例如,如果預乘了 alpha,則此方法會在返回值之前除以 alpha。如果 alpha 值為 0,則綠色值為 0。如果 inData
不為型別 transferType 的基本陣列,則拋出 ClassCastException
。如果 inData
不是特別大,不能存儲此 ColorModel
的像素值,則拋出 ArrayIndexOutOfBoundsException
。如果此 transferType
不受支持,則拋出 UnsupportedOperationException
。因為 ColorModel
為抽象類別,所以任何實例必須是子類別的實例。子類別可以繼承此方法的實作,並且如果子類別未覆寫此方法,則在該子類別使用除 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
之外的 transferType
時,此方法將拋出異常。
inData
- 像素值的陣列
ClassCastException
- 如果 inData
不為型別 transferType
的基本陣列
ArrayIndexOutOfBoundsException
- 如果 inData
不是特別大,不能存儲此 ColorModel
的像素值
UnsupportedOperationException
- 如果此 tranferType
不受此 ColorModel
支持public int getBlue(Object inData)
ColorSpace
(即 sRGB)中縮放範圍是 0 到 255。如有必要,可進行顏色轉換。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。返回的值是一個非預先乘得的值。例如,如果預乘了 alpha,則此方法會在返回值之前除以 alpha。如果 alpha 值為 0,則藍色值將為 0。如果 inData
不為型別 transferType 的基本陣列,則拋出 ClassCastException
。如果 inData
不是特別大,不能存儲此 ColorModel
的像素值,則拋出 ArrayIndexOutOfBoundsException
。如果此 transferType
不受支持,則拋出 UnsupportedOperationException
。因為 ColorModel
為抽象類別,所以任何實例必須是子類別的實例。子類別可以繼承此方法的實作,並且如果子類別未覆寫此方法,則在該子類別使用除 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
之外的 transferType
時,此方法將拋出異常。
inData
- 像素值的陣列
ClassCastException
- 如果 inData
不為型別 transferType
的基本陣列
ArrayIndexOutOfBoundsException
- 如果 inData
不是特別大,不能存儲此 ColorModel
的像素值
UnsupportedOperationException
- 如果此 tranferType
不受此 ColorModel
支持public int getAlpha(Object inData)
ClassCastException
。如果 inData
不是特別大,不能存儲此 ColorModel
的像素值,則拋出 ArrayIndexOutOfBoundsException
。如果此 transferType
不受支持,則拋出 UnsupportedOperationException
。因為 ColorModel
為抽象類別,所以任何實例必須是子類別的實例。子類別可以繼承此方法的實作,並且如果子類別未覆寫此方法,則在該子類別使用除 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
之外的 transferType
時,此方法將拋出異常。
inData
- 指定的像素
ClassCastException
- 如果 inData
不為型別 transferType
的基本陣列
ArrayIndexOutOfBoundsException
- 如果 inData
不是特別大,不能存儲此 ColorModel
的像素值
UnsupportedOperationException
- 如果此 tranferType
不受此 ColorModel
支持public int getRGB(Object inData)
ClassCastException
。如果 inData
不是特別大,不能存儲此 ColorModel
的像素值,則拋出 ArrayIndexOutOfBoundsException
。返回的值將是非預乘格式,例如,如果與 alpha 預先相乘,此方法會將其從顏色份量中除出來(如果 alpha 值為 0,則顏色值將為 0)。
inData
- 指定像素
getRGBdefault()
public Object getDataElements(int rgb, Object pixel)
ColorModel
中像素的資料元素陣列的表示形式。然後將此陣列傳遞到 WritableRaster
物件的 WritableRaster.setDataElements(int, int, java.lang.Object)
方法。如果像素變數為 null
,則分派一個新陣列。如果 pixel
不為 null
,則它必須是型別 transferType
的基本陣列;否則將拋出 ClassCastException
。如果 pixel
不是特別大,不能存儲此 ColorModel
的像素值,則拋出 ArrayIndexOutOfBoundsException
。返回該像素陣列。如果此 transferType
不受支持,則拋出 UnsupportedOperationException
。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException
。
rgb
- 預設 RGB 顏色網要中的整數像素表示形式pixel
- 指定像素
ColorModel
中指定像素的陣列表示形式。
ClassCastException
- 如果 pixel
不為型別 transferType
的基本陣列
ArrayIndexOutOfBoundsException
- 如果 pixel
不是特別大,不能存儲此 ColorModel
的像素值
UnsupportedOperationException
- 如果此方法不受此 ColorModel
支持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 份量。將像素值指定為 int
。如果此 ColorModel
的像素值不便於用單個 int
表示,或者此 ColorModel
的顏色份量值不便於以非標準化形式表示,則將拋出 IllegalArgumentException
。例如,此方法可用於檢索 DirectColorModel
中特定像素值的份量。如果份量陣列為 null
,則分派一個新陣列。該份量陣列將被返回。將顏色/alpha 份量存儲在以 offset
開頭的 component 陣列中,即便此方法已分派了陣列也如此。如果份量陣列不為 null
,且不是特別大,不能存儲以偏移量開頭的所有顏色和 alpha 份量,則拋出 ArrayIndexOutOfBoundsException
。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException
。
pixel
- 指定的像素components
- 收到指定像素的顏色和 alpha 份量的陣列offset
- 開始存儲顏色和 alpha 份量時的 components
陣列的偏移量
UnsupportedOperationException
- 如果此方法不受此 ColorModel
支持public int[] getComponents(Object pixel, int[] components, int offset)
ColorModel
中已給定像素的非標準化顏色/alpha 份量的陣列。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。如果 pixel
不為型別 transferType 的基本陣列,則拋出 ClassCastException
。如果此 ColorModel
的顏色份量值不方便以非標準化形式表示,則拋出 IllegalArgumentException
。如果 pixel
不是特別大,不能存儲此 ColorModel
的像素值,則拋出 ArrayIndexOutOfBoundsException
。此方法可用於獲取任何 ColorModel
中的指定像素值的份量。如果份量陣列為 null
,則分派一個新陣列。該份量陣列將被返回。將顏色/alpha 份量存儲在以 offset
開頭的 components
陣列中,即便此方法已分派了陣列也如此。如果份量陣列不為 null
,且不是特別大,不能存儲所有顏色和 alpha 份量(以 offset
開頭),則拋出 ArrayIndexOutOfBoundsException
。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException
。
pixel
- 指定像素components
- 收到該指定像素的顏色和 alpha 份量的陣列offset
- 在其處開始存儲指定像素的顏色和 alpha 份量的 components
陣列的索引
UnsupportedOperationException
- 如果此方法不受此 ColorModel
支持public int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
ColorModel
的 ColorSpace
物件指定的每個份量的最小值和最大值之間。如果此 ColorModel
的顏色份量值不便於用非標準化形式表示,則拋出 IllegalArgumentException
。如果 components
陣列為 null
,則分派一個新陣列。該 components
陣列將被返回。將顏色/alpha 份量存儲在以 offset
開頭的 components
陣列中,即便此方法已分派了陣列也如此。如果 components
陣列不為 null
,且不是特別大,不能存儲所有顏色和 alpha 份量(以 offset
開頭),則拋出 ArrayIndexOutOfBoundsException
。如果 normComponents
陣列不是特別大,不能存儲以 normOffset
開頭的所有顏色和 alpha 份量,則拋出 IllegalArgumentException
。
normComponents
- 套件含標準化份量的陣列normOffset
- 開始檢索標準化份量的 normComponents
陣列的偏移量components
- 從 normComponents
檢索份量的陣列offset
- 在其處開始存儲 normComponents
的 components
的索引
IllegalArgumentException
- 如果此 ColorModel
的份量值不便於用非標準化形式表示。
IllegalArgumentException
- 如果 normComponents
的長度減去 normOffset
小於 numComponents
UnsupportedOperationException
- 如果此 ColorModel
的建構子調用了 super(bits)
建構子,但未覆寫此方法。參見建構子,ColorModel(int)
。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
為抽象類別,所以任何實例都是子類別的實例。此抽象類別中該方法的預設實作假定此類別的份量值可以方便地以非標準化的形式表示。因此,可能有不支持非標準化形式的實例的子類別必須覆寫此方法。
components
- 套件含非標準化份量的陣列offset
- 開始檢索非標準化份量的 components
陣列的偏移量normComponents
- 收到標準化份量的陣列normOffset
- 在其處開始存儲標準化份量的 normComponents
的索引
IllegalArgumentException
- 如果此 ColorModel
的份量值不便於用非標準化形式表示。
UnsupportedOperationException
- 如果此 ColorModel
的建構子調用了 super(bits)
建構子,但未覆寫此方法。參見建構子,ColorModel(int)
。
UnsupportedOperationException
- 如果此方法不能確定每個份量的位數public int getDataElement(int[] components, int offset)
ColorModel
中以 int
型別表示的像素值。如果此 ColorModel
中的份量值不便於用單個 int
表示,或者此 ColorModel
的顏色份量值不便於用非標準化形式表示,則此方法將拋出 IllegalArgumentException
。如果 components
陣列不是特別大,不能存儲所有以 offset
開始的顏色和 alpha 份量,則拋出 ArrayIndexOutOfBoundsException
。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException
。
components
- 非標準化的顏色和 alpha 份量的陣列offset
- 開始檢索顏色和 alpha 份量處的 components
的索引
ColorModel
中與指定份量相對應的 int
像素值。
IllegalArgumentException
- 如果此 ColorModel
的像素值不便於用單個 int
表示
IllegalArgumentException
- 如果此 ColorModel
的份量值不便於用非標準化形式表示
ArrayIndexOutOfBoundsException
- 如果 components
陣列不是特別大,不能存儲以 offset
開頭的所有顏色和 alpha 份量
UnsupportedOperationException
- 如果此方法不受此 ColorModel
支持public Object getDataElements(int[] components, int offset, Object obj)
ColorModel
中像素的資料元素陣列表示形式。然後可以將此陣列傳遞給 WritableRaster
物件的 setDataElements
方法。如果此 ColorModel
的顏色份量值不便於用非標準化形式表示,則此方法將拋出 IllegalArgumentException
。如果 components
陣列不是特別大,不能存儲所有以 offset
開始的顏色和 alpha 份量,則拋出 ArrayIndexOutOfBoundsException
。如果 obj
變數為 null
,則分派一個新陣列。如果 obj
不為 null
,則它必須為型別 transferType 的基本陣列;否則將拋出 ClassCastException
。如果 obj
不是特別大,不能存儲此 ColorModel
的像素值,則拋出 ArrayIndexOutOfBoundsException
。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException
。
components
- 非標準化的顏色和 alpha 份量的陣列offset
- 開始檢索顏色和 alpha 份量處的 components
的索引obj
- 表示顏色和 alpha 份量的陣列的 Object
Object
。
ClassCastException
- 如果 obj
不為型別 transferType
的基本陣列
ArrayIndexOutOfBoundsException
- 如果 obj
不是特別大,不能存儲此 ColorModel
的像素值,或者 components
陣列不是特別大,不能存儲以 offset
開頭的所有顏色和 alpha 份量
IllegalArgumentException
- 如果此 ColorModel
的份量值不便於用非標準化形式表示
UnsupportedOperationException
- 如果此方法不受此 ColorModel
支持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(int[], int)
。可能有不支持非標準化形式的實例的子類別必須覆寫此方法。
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
為抽象類別,所以任何實例都是子類別的實例。此抽象類別中該方法的預設實作先從標準化形式轉換到非標準化形式,然後再調用 getDataElement(int[], int, Object)
。可能有不支持非標準化形式的實例的子類別必須覆寫此方法。
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
為抽象類別,所以任何實例都是子類別的實例。此抽象類別中該方法的預設實作先使用 getComponents(Object, int[], int)
檢索以非標準化形式存在的顏色和 alpha 份量,然後再調用 getNormalizedComponents(int[], int, float[], int)
。可能有不支持非標準化形式的實例的子類別必須覆寫此方法。
pixel
- 指定像素normComponents
- 檢索標準化份量的陣列normOffset
- 在其處開始存儲標準化份量的 normComponents
陣列的偏移量
ClassCastException
- 如果 pixel
不為型別 transferType 的基本陣列
ArrayIndexOutOfBoundsException
- 如果 normComponents
不是特別大,不能存儲以 normOffset
開頭的所有顏色和 alpha 份量
ArrayIndexOutOfBoundsException
- 如果 pixel
不是特別大,不能存儲此 ColorModel
的像素值。
UnsupportedOperationException
- 如果此 ColorModel
的建構子調用了 super(bits)
建構子,但未覆寫此方法。參見建構子,ColorModel(int)
。
UnsupportedOperationException
- 如果此方法不能確定每個份量的位數public boolean equals(Object obj)
Object
是否是 ColorModel
的實例,以及它是否等於此 ColorModel
。
Object
中的 equals
obj
- 用來進行相等性測試的 Object
Object
為 ColorModel
的實例,且等於此 ColorModel
,則返回 true
;否則返回 false
。Object.hashCode()
,
Hashtable
public int hashCode()
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public final ColorSpace getColorSpace()
ColorModel
相關的 ColorSpace
。
ColorModel
的 ColorSpace
。public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
isAlphaPremultiplied
變數中指定的狀態比對,假定當前該資料已由此 ColorModel
正確描述。可以將顏色 raster 資料乘以或除以 alpha,如果該資料處於正確狀態,則不執行任何操作。如果需要對該資料強制比對,則此方法還將相應地返回一個帶有 isAlphaPremultiplied
標誌集的 ColorModel
的實例。如果此方法不受 ColorModel
支持,則它將拋出 UnsupportedOperationException
。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException
。
raster
- WritableRaster
資料isAlphaPremultiplied
- 如果與 alpha 預乘,則返回 true
;否則將返回 false
ColorModel
物件。public boolean isCompatibleRaster(Raster raster)
raster
與此 ColorModel
相容,則返回 true
,如果不相容,則返回 false
。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException
。
raster
- 進行相容性測試的 Raster
物件
true
如果 raster
與此 ColorModel
相容。
UnsupportedOperationException
- 如果此方法不是為此 ColorModel
實作的。public WritableRaster createCompatibleWritableRaster(int w, int h)
WritableRaster
,具有與此 ColorModel
相容的資料佈局 (SampleModel
)。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException
。
w
- 應用到新 WritableRaster
的寬度h
- 應用到新 WritableRaster
的高度
WritableRaster
物件。
UnsupportedOperationException
- 如果此方法不受此 ColorModel
支持WritableRaster
,
SampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel
,具有與此 ColorModel
相容的資料佈局。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException
。
w
- 應用於新的 SampleModel
的寬度h
- 應用於新的 SampleModel
的高度
SampleModel
物件。
UnsupportedOperationException
- 如果此方法不受此 ColorModel
支持SampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel
是否與此 ColorModel
相容。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException
。
sm
- 指定的 SampleModel
SampleModel
與此 ColorModel
相容,則返回 true
;否則返回 false
。
UnsupportedOperationException
- 如果此方法不受此 ColorModel
支持SampleModel
public void finalize()
ColorModel
,就要釋放與此 ColorModel
相關的系統資源。
Object
中的 finalize
public WritableRaster getAlphaRaster(WritableRaster raster)
Raster
中提取)的 alpha 通道的 Raster
,除非此 ColorModel
的像素值將顏色和 alpha 資訊表示為獨立的空間 band(如 ComponentColorModel
和 DirectColorModel
)。此方法假定與此類別 ColorModel
相關的 Raster
物件將 alpha 的 band(如果存在)存儲為圖像資料的最後一個 band。如果不存在與此 ColorModel
相關的獨立空間 alpha 通道,則返回 null
。如果在查詢表中有一個具有 alpha 的 IndexColorModel
,則此方法將返回 null
,因為沒有空間上截然不同的 alpha 通道。此方法將創建新的 Raster
(但將共享資料陣列)。因為 ColorModel
為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,以獲取除返回 null
之外的任何行為,因為此抽象類別中的實作返回 null
。
raster
- 指定的 Raster
Raster
中得到)的 alpha 通道的 Raster
。public String toString()
ColorModel
物件的內容的 String
表示形式。
Object
中的 toString
ColorModel
物件的內容的 String
。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。