JavaTM 2 Platform
Standard Ed. 6

java.awt.image
類別 PackedColorModel

java.lang.Object
  繼承者 java.awt.image.ColorModel
      繼承者 java.awt.image.PackedColorModel
所有已實作的介面:
Transparency
直接已知子類別:
DirectColorModel

public abstract class PackedColorModel
extends ColorModel

PackedColorModel 類別是一個抽象 ColorModel 類別,它使用的像素值以單獨採樣表示顏色和 alpha 資訊,並將單個像素的所有採樣打包到單個 int、short 或 byte 量中。此類別可與任意 ColorSpace 一起使用。像素值中的顏色採樣數必須與 ColorSpace 中的顏色份量數相同。可以有單個 alpha 採樣。對於那些使用 transferType 型別的基本陣列像素表示形式的方法,陣列的長度總是 1。受支持的傳輸型別有 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 和 DataBuffer.TYPE_INT。顏色和 alpha 採樣按位遮罩碼所指示的位存儲在陣列的單個元素中。每個位遮罩碼必須是連續的,並且遮罩碼不能重疊。相同的遮罩碼適用於其他方法使用的單個 int 像素表示形式。遮罩碼和顏色/alpha 採樣的對應關係如下:

出於顯示或處理目的而執行的像素值到顏色/alpha 份量的轉換是採樣到份量的一一對應關係。PackedColorModel 通常與使用遮罩碼來定義已打包採樣的圖像資料一起使用。例如,可結合使用 PackedColorModelSinglePixelPackedSampleModel 來建構一個 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.awt.image.ColorModel 繼承的方法
coerceData, createCompatibleWritableRaster, finalize, getAlpha, getAlpha, getBlue, getBlue, getColorSpace, getComponents, getComponents, getComponentSize, getComponentSize, getDataElement, getDataElement, getDataElements, getDataElements, getDataElements, getGreen, getGreen, getNormalizedComponents, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRed, getRed, getRGB, getRGB, getRGBdefault, getTransferType, getTransparency, getUnnormalizedComponents, hasAlpha, hashCode, isAlphaPremultiplied, isCompatibleRaster, toString
 
從類別 java.lang.Object 繼承的方法
clone, getClass, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

PackedColorModel

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,則 booleanisAlphaPremultiplied 指定如何解釋像素值中的顏色和 alpha 採樣。如果該 boolean 值為 true,則假定顏色採樣已經預乘以 alpha 採樣。透明度 trans 指定了此顏色模型可以表示的 alpha 值。傳輸型別是用於表示像素值的基本陣列型別。

參數:
space - 指定的 ColorSpace
bits - 像素值中的位數
colorMaskArray - 指定遮罩碼的陣列,該遮罩碼表示像素值中表示顏色份量的位
alphaMask - 指定像素值中表示 alpha 份量的位遮罩碼
isAlphaPremultiplied - 如果顏色採樣預乘了 alpha 採樣,則為 true;否則為 false
trans - 指定可由此顏色模型表示的 alpha 值
transferType - 用於表示像素值的陣列型別
拋出:
IllegalArgumentException - 如果 bits 小於 1 或大於 32

PackedColorModel

public 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,則 booleanisAlphaPremultiplied 指定如何解釋像素值中的顏色和 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
方法詳細資訊

getMask

public final int getMask(int index)
返回指示像素中哪些位包含指定顏色/alpha 採樣的遮罩碼。對於顏色採樣,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 小於 0

getMasks

public final int[] getMasks()
返回指示像素中的哪些位包含顏色和 alpha 採樣的遮罩碼陣列。

返回:
遮罩碼陣列,指示 int 像素表示形式中的哪些位包含顏色或 alpha 採樣。

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w,
                                               int h)
創建一個具有指定寬度和高度、資料佈局與此 ColorModel 相容的 SampleModel

覆寫:
類別 ColorModel 中的 createCompatibleSampleModel
參數:
w - 所描述的圖像資料區域的寬度(以像素為單位)
h - 所描述的圖像資料區域的高度(以像素為單位)
返回:
新創建的 SampleModel
拋出:
IllegalArgumentException - 如果 wh 不大於 0
另請參見:
SampleModel

isCompatibleSampleModel

public boolean isCompatibleSampleModel(SampleModel sm)
檢查指定的 SampleModel 是否與此 ColorModel 相容。如果 smnull,則此方法返回 false

覆寫:
類別 ColorModel 中的 isCompatibleSampleModel
參數:
sm - 指定的 SampleModel,或者為 null
返回:
如果指定的 SampleModel 與此 ColorModel 相容,則返回 true;否則返回 false
另請參見:
SampleModel

getAlphaRaster

public WritableRaster getAlphaRaster(WritableRaster raster)
返回從輸入 WritableRaster 提取,並且表示圖像 alpha 通道的 WritableRaster。此方法假定與此 ColorModel 關聯的 WritableRaster 物件將 alpha band(如果有)存儲為圖像資料的最後一個 band。如果沒有與此 ColorModel 關聯的、佔據獨立空間的 alpha 通道,則返回 null。此方法創建一個新的 WritableRaster,但是共享原來的資料陣列。

覆寫:
類別 ColorModel 中的 getAlphaRaster
參數:
raster - 套件含圖像的 WritableRaster
返回:
表示 raster 中所含圖像 alpha 通道的 WritableRaster

equals

public boolean equals(Object obj)
測試指定的 Object 是否為 PackedColorModel 的一個實例並且等於此 PackedColorModel

覆寫:
類別 ColorModel 中的 equals
參數:
obj - 要測試相等性的 Object
返回:
如果指定的 ObjectPackedColorModel 的一個實例並且等於此 PackedColorModel,則返回 true;否則返回 false
另請參見:
Object.hashCode(), Hashtable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only