|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.image.ColorModel java.awt.image.PackedColorModel
public abstract class PackedColorModel
PackedColorModel
類別是一個抽象 ColorModel
類別,它使用的像素值以單獨採樣表示顏色和 alpha 資訊,並將單個像素的所有採樣打包到單個 int、short 或 byte 量中。此類別可與任意 ColorSpace
一起使用。像素值中的顏色採樣數必須與 ColorSpace
中的顏色份量數相同。可以有單個 alpha 採樣。對於那些使用 transferType
型別的基本陣列像素表示形式的方法,陣列的長度總是 1。受支持的傳輸型別有 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 和 DataBuffer.TYPE_INT。顏色和 alpha 採樣按位遮罩碼所指示的位存儲在陣列的單個元素中。每個位遮罩碼必須是連續的,並且遮罩碼不能重疊。相同的遮罩碼適用於其他方法使用的單個 int 像素表示形式。遮罩碼和顏色/alpha 採樣的對應關係如下:
getNumComponents
- 1 的索引來標識各遮罩碼。
getNumColorComponents
個索引指顏色採樣。
ColorSpace
所指定。此順序通常反映顏色空間型別的名稱(例如 TYPE_RGB),索引 0 對應於紅色、索引 1 對應於綠色、索引 2 則對應於藍色。
出於顯示或處理目的而執行的像素值到顏色/alpha 份量的轉換是採樣到份量的一一對應關係。PackedColorModel
通常與使用遮罩碼來定義已打包採樣的圖像資料一起使用。例如,可結合使用 PackedColorModel
和 SinglePixelPackedSampleModel
來建構一個 BufferedImage
。通常 SampleModel
所用的遮罩碼與 ColorModel
使用的相同。但是如果它們不同,則根據 ColorModel
的遮罩碼對像素資料進行顏色解釋。
單個 int
的像素表示形式對於此類別的所有物件都是有效的,因為總是能夠以單個 int
表示此類別使用的像素值。因此,使用此種表示形式的方法不會由於無效的像素值而拋出 IllegalArgumentException
。
PackedColorModel
的子類別是 DirectColorModel
,類似於 X11 TrueColor 可視化模型型別。
DirectColorModel
,
SinglePixelPackedSampleModel
,
BufferedImage
欄位摘要 |
---|
從類別 java.awt.image.ColorModel 繼承的欄位 |
---|
pixel_bits, transferType |
從介面 java.awt.Transparency 繼承的欄位 |
---|
BITMASK, OPAQUE, TRANSLUCENT |
建構子摘要 | |
---|---|
PackedColorModel(ColorSpace space,
int bits,
int[] colorMaskArray,
int alphaMask,
boolean isAlphaPremultiplied,
int trans,
int transferType)
根據顏色遮罩碼陣列(指定了 int 像素表示形式中哪些位包含每個顏色的採樣)和 alpha 遮罩碼來建構一個 PackedColorModel 。 |
|
PackedColorModel(ColorSpace space,
int bits,
int rmask,
int gmask,
int bmask,
int amask,
boolean isAlphaPremultiplied,
int trans,
int transferType)
根據指定的遮罩碼建構一個 PackedColorModel ,該遮罩碼指示 int 像素表示形式中的哪些位包含 alpha、紅色、綠色和藍色採樣。 |
方法摘要 | |
---|---|
SampleModel |
createCompatibleSampleModel(int w,
int h)
創建一個具有指定寬度和高度、資料佈局與此 ColorModel 相容的 SampleModel 。 |
boolean |
equals(Object obj)
測試指定的 Object 是否為 PackedColorModel 的一個實例並且等於此 PackedColorModel 。 |
WritableRaster |
getAlphaRaster(WritableRaster raster)
返回從輸入 WritableRaster 提取,並且表示圖像 alpha 通道的 WritableRaster 。 |
int |
getMask(int index)
返回指示像素中哪些位包含指定顏色/alpha 採樣的遮罩碼。 |
int[] |
getMasks()
返回指示像素中的哪些位包含顏色和 alpha 採樣的遮罩碼陣列。 |
boolean |
isCompatibleSampleModel(SampleModel sm)
檢查指定的 SampleModel 是否與此 ColorModel 相容。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, getClass, notify, notifyAll, wait, wait, wait |
建構子詳細資訊 |
---|
public PackedColorModel(ColorSpace space, int bits, int[] colorMaskArray, int alphaMask, boolean isAlphaPremultiplied, int trans, int transferType)
int
像素表示形式中哪些位包含每個顏色的採樣)和 alpha 遮罩碼來建構一個 PackedColorModel
。顏色份量在指定的 ColorSpace
中。colorMaskArray
的長度應該是 ColorSpace
中的份量數。每個遮罩碼中的所有位必須是連續的,並且能夠放入指定 int
像素表示形式的最低有效位數中。如果 alphaMask
為 0,則不存在 alpha。如果存在 alpha,則 boolean
值 isAlphaPremultiplied
指定如何解釋像素值中的顏色和 alpha 採樣。如果該 boolean
值為 true
,則假定顏色採樣已經預乘以 alpha 採樣。透明度 trans
指定了此顏色模型可以表示的 alpha 值。傳輸型別是用於表示像素值的基本陣列型別。
space
- 指定的 ColorSpace
bits
- 像素值中的位數colorMaskArray
- 指定遮罩碼的陣列,該遮罩碼表示像素值中表示顏色份量的位alphaMask
- 指定像素值中表示 alpha 份量的位遮罩碼isAlphaPremultiplied
- 如果顏色採樣預乘了 alpha 採樣,則為 true
;否則為 false
trans
- 指定可由此顏色模型表示的 alpha 值transferType
- 用於表示像素值的陣列型別
IllegalArgumentException
- 如果 bits
小於 1 或大於 32public PackedColorModel(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, boolean isAlphaPremultiplied, int trans, int transferType)
PackedColorModel
,該遮罩碼指示 int
像素表示形式中的哪些位包含 alpha、紅色、綠色和藍色採樣。顏色份量在指定的 ColorSpace
中,並且必須是 ColorSpace.TYPE_RGB 型別。每個遮罩碼中的所有位必須是連續的,並且能夠放入指定 int
像素表示形式的最低有效位數中。如果 amask
是 0,則不存在 alpha。如果存在 alpha,則 boolean
值 isAlphaPremultiplied
指定如何解釋像素值中的顏色和 alpha 採樣。如果該 boolean
值為 true
,則假定顏色採樣已經預乘以 alpha 採樣。透明度 trans
指定了此顏色模型可以表示的 alpha 值。傳輸型別是用於表示像素值的基本陣列型別。
space
- 指定的 ColorSpace
bits
- 像素值中的位數rmask
- 指定像素值中表示紅色份量的位遮罩碼gmask
- 指定像素值中表示綠色份量的位遮罩碼bmask
- 指定像素值中表示藍色份量的位遮罩碼amask
- 指定像素值中表示 alpha 份量的位遮罩碼isAlphaPremultiplied
- 如果顏色採樣預乘了 alpha 採樣,則為 true
;否則為 false
trans
- 指定可由此顏色模型表示的 alpha 值transferType
- 用於表示像素值的陣列型別
IllegalArgumentException
- 如果 space
不是 TYPE_RGB 空間ColorSpace
方法詳細資訊 |
---|
public final int getMask(int index)
index
對應於顏色空間中顏色採樣名稱的放置位置。因此對於 CMYK ColorSpace,index
0 對應 Cyan,而 index
1 則對應 Magenta。如果存在 alpha,則 alpha 的 index
是:
alphaIndex = numComponents() - 1;
index
- 指定的顏色或 alpha 採樣
int
像素表示中的哪些位包含 index
所指定的顏色或 alpha 採樣的遮罩碼。
ArrayIndexOutOfBoundsException
- 如果 index
大於此 PackedColorModel
中的份量數減 1,或者 index
小於 0public final int[] getMasks()
int
像素表示形式中的哪些位包含顏色或 alpha 採樣。public SampleModel createCompatibleSampleModel(int w, int h)
ColorModel
相容的 SampleModel
。
ColorModel
中的 createCompatibleSampleModel
w
- 所描述的圖像資料區域的寬度(以像素為單位)h
- 所描述的圖像資料區域的高度(以像素為單位)
SampleModel
。
IllegalArgumentException
- 如果 w
或 h
不大於 0SampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel
是否與此 ColorModel
相容。如果 sm
為 null
,則此方法返回 false
。
ColorModel
中的 isCompatibleSampleModel
sm
- 指定的 SampleModel
,或者為 null
SampleModel
與此 ColorModel
相容,則返回 true
;否則返回 false
。SampleModel
public WritableRaster getAlphaRaster(WritableRaster raster)
WritableRaster
提取,並且表示圖像 alpha 通道的 WritableRaster
。此方法假定與此 ColorModel
關聯的 WritableRaster
物件將 alpha band(如果有)存儲為圖像資料的最後一個 band。如果沒有與此 ColorModel
關聯的、佔據獨立空間的 alpha 通道,則返回 null
。此方法創建一個新的 WritableRaster
,但是共享原來的資料陣列。
ColorModel
中的 getAlphaRaster
raster
- 套件含圖像的 WritableRaster
raster
中所含圖像 alpha 通道的 WritableRaster
。public boolean equals(Object obj)
Object
是否為 PackedColorModel
的一個實例並且等於此 PackedColorModel
。
ColorModel
中的 equals
obj
- 要測試相等性的 Object
Object
是 PackedColorModel
的一個實例並且等於此 PackedColorModel
,則返回 true
;否則返回 false
。Object.hashCode()
,
Hashtable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。