|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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 中的位數小於 1
protected 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 - 指定 ColorSpacehasAlpha - true 如果包含 alpha 資訊;否則為 falseisAlphaPremultiplied - true 如果假定顏色樣本預乘了 alpha 樣本;否則為 falsetransparency - 可以由此顏色模型表示的 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 - 如果位數陣列為 nullpublic int[] getComponentSize()
ColorSpace 指定的順序排列的顏色份量,後面是 alpha 份量(如果存在)。
public int getTransparency()
Transparency 中的 getTransparencyColorModel 的透明度。Transparency.OPAQUE,
Transparency.BITMASK,
Transparency.TRANSLUCENTpublic 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 中的 equalsobj - 用來進行相等性測試的 Object
Object 為 ColorModel 的實例,且等於此 ColorModel,則返回 true;否則返回 false。Object.hashCode(),
Hashtablepublic int hashCode()
Object 中的 hashCodeObject.equals(java.lang.Object),
Hashtablepublic 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 支持SampleModelpublic boolean isCompatibleSampleModel(SampleModel sm)
SampleModel 是否與此 ColorModel 相容。因為 ColorModel 為抽象類別,所以任何實例都是子類別的實例。子類別必須覆寫此方法,因為此抽象類別中的實作拋出了 UnsupportedOperationException。
sm - 指定的 SampleModel
SampleModel 與此 ColorModel 相容,則返回 true;否則返回 false。
UnsupportedOperationException - 如果此方法不受此 ColorModel 支持SampleModelpublic void finalize()
ColorModel,就要釋放與此 ColorModel 相關的系統資源。
Object 中的 finalizepublic 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 中的 toStringColorModel 物件的內容的 String。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。