JavaTM 2 Platform
Standard Ed. 6

java.awt.image
類別 DirectColorModel

java.lang.Object
  繼承者 java.awt.image.ColorModel
      繼承者 java.awt.image.PackedColorModel
          繼承者 java.awt.image.DirectColorModel
所有已實作的介面:
Transparency

public class DirectColorModel
extends PackedColorModel

DirectColorModel 類別是使用像素值的 ColorModel 類別,像素值以單獨樣本的形式表示 RGB 顏色和 alpha 資訊,並將單個像素的所有樣本打包成單個 int、short 或 byte 量。此類別只能與型別 ColorSpace.TYPE_RGB 的 ColorSpaces 一起使用。此外,對於 ColorSpace 的每個份量,通過 ColorSpace 的 getMinValue() 方法得到的最小標準化份量值必須是 0.0,通過 getMaxValue() 方法得到的最大值必須是 1.0(這些最小/最大值是 RGB 空間的常見值)。像素值中必須有三個顏色樣本,且可以有一個 alpha 樣本。對於那些使用型別 transferType 的基本陣列像素表示形式的方法,陣列長度總是 1。受支持的轉換型別是 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 和 DataBuffer.TYPE_INT。顏色和 alpha 樣本以位為單位存儲在位遮罩碼指示的陣列的單個元素中。每個位遮罩碼必須是連續的,並且遮罩碼一定不能重疊。相同的遮罩碼可以應用於由其他方法使用的單個 int 像素表示形式。遮罩碼和顏色/alpha 樣本間的對應關係如下:

出於顯示或處理的目的,像素值到顏色/alpha 份量的轉換是從樣本到份量一一對應的。DirectColorModel 通常與使用遮罩碼定義打包樣本的圖像資料一起使用。例如,DirectColorModel 可以與 SinglePixelPackedSampleModel 一起使用來建構 BufferedImage。通常,SampleModelColorModel 使用的遮罩碼是相同的。但是,如果遮罩碼不相同,像素資料的顏色解釋將根據 ColorModel 的遮罩碼進行。

單個 int 像素表示形式對此類別的所有物件都有效,因為它總是能夠表示在單個 int 中與此類別一起使用的像素值。因此,使用此表示形式的方法將不會因無效的像素值而拋出 IllegalArgumentException

此顏色模型類似於 X11 TrueColor 可視份量。由 getRGBdefault 方法指定的預設 RGB ColorModel 是一個具有以下參數的 DirectColorModel

位數:        32
紅色遮罩碼:0x00ff0000
綠色遮罩碼:0x0000ff00
藍色遮罩碼:0x000000ff
Alpha 遮罩碼:0xff000000
顏色空間:sRGB
isAlphaPremultiplied:False
透明度:Transparency.TRANSLUCENT
transferType:DataBuffer.TYPE_INT
 

此類別中的許多方法都是 final。這是因為基礎本機圖形程式碼假定此類別的佈局和操作,並在此處標記 final 的方法實作中反映了這些假定。您可以出於其他原因將此類別子類別化,但不能覆寫或修改那些方法的行為。

另請參見:
ColorModel, ColorSpace, SinglePixelPackedSampleModel, BufferedImage, ColorModel.getRGBdefault()

欄位摘要
 
從類別 java.awt.image.ColorModel 繼承的欄位
pixel_bits, transferType
 
從介面 java.awt.Transparency 繼承的欄位
BITMASK, OPAQUE, TRANSLUCENT
 
建構子摘要
DirectColorModel(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, boolean isAlphaPremultiplied, int transferType)
          根據指定參數建構 DirectColorModel
DirectColorModel(int bits, int rmask, int gmask, int bmask)
          根據指定的指示 int 像素表示形式中哪些位包含紅色、綠色和藍色顏色樣本的遮罩碼建構 DirectColorModel
DirectColorModel(int bits, int rmask, int gmask, int bmask, int amask)
          根據指定的指示在 int 像素表示形式中哪些位包含紅色、綠色和藍色顏色樣本與 alpha 樣本(如果存在)的遮罩碼建構 DirectColorModel
 
方法摘要
 ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
          強制光柵資料與在 isAlphaPremultiplied 變數中指定的狀態比對,假定此 ColorModel 現在已對該資料進行正確描述。
 WritableRaster createCompatibleWritableRaster(int w, int h)
          創建具有指定寬度和高度、擁有與此 ColorModel 相容的資料佈局 (SampleModel) 的 WritableRaster
 int getAlpha(int pixel)
          返回指定像素(縮放範圍從 0 到 255)的 alpha 份量。
 int getAlpha(Object inData)
          返回指定像素(在 0 到 255 之間縮放)的 alpha 份量。
 int getAlphaMask()
          返回指示 int 像素表示形式中哪些位包含 alpha 份量的遮罩碼。
 int getBlue(int pixel)
          返回指定像素的藍色顏色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。
 int getBlue(Object inData)
          返回指定像素的藍顏色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。
 int getBlueMask()
          返回指示 int 像素表示形式中哪些位包含藍色顏色份量的遮罩碼。
 int[] getComponents(int pixel, int[] components, int offset)
          返回在 ColorModel 中已給定像素的未標準化顏色/alpha 份量。
 int[] getComponents(Object pixel, int[] components, int offset)
          返回在 ColorModel 中已給定像素的未標準化顏色/alpha 份量。
 int getDataElement(int[] components, int offset)
          在給定未標準化顏色/alpha 份量的陣列的情況下,返回以 int 型別表示在此 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。
 int getGreenMask()
          返回指示 int 像素表示形式中哪些位包含綠色顏色份量的遮罩碼。
 int getRed(int pixel)
          返回指定像素的紅色顏色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。
 int getRed(Object inData)
          返回指定像素的紅色顏色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。
 int getRedMask()
          返回指定 int 像素表示形式中哪些位包含紅色份量的遮罩碼。
 int getRGB(int pixel)
          返回預設的 RGB 顏色模型格式中的像素的顏色/alpha 份量。
 int getRGB(Object inData)
          返回預設的 RGB 顏色模型格式中的像素的顏色/alpha 份量。
 boolean isCompatibleRaster(Raster raster)
          如果 raster 與此 ColorModel 相容,則返回 true,如果不相容,則返回 false
 String toString()
          返回表示此 DirectColorModelString
 
從類別 java.awt.image.PackedColorModel 繼承的方法
createCompatibleSampleModel, equals, getAlphaRaster, getMask, getMasks, isCompatibleSampleModel
 
從類別 java.awt.image.ColorModel 繼承的方法
finalize, getColorSpace, getComponentSize, getComponentSize, getDataElement, getDataElements, getNormalizedComponents, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, getUnnormalizedComponents, hasAlpha, hashCode, isAlphaPremultiplied
 
從類別 java.lang.Object 繼承的方法
clone, getClass, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

DirectColorModel

public DirectColorModel(int bits,
                        int rmask,
                        int gmask,
                        int bmask)
根據指定的指示 int 像素表示形式中哪些位包含紅色、綠色和藍色顏色樣本的遮罩碼建構 DirectColorModel。因為像素值不包含 alpha 資訊,所以所有像素都可視為不透明的,這意味著 alpha = 1.0。每個遮罩碼中的所有位必須是連續的,並且符合 int 像素表示形式的最低有效位的指定數量。ColorSpace 是預設的 sRGB 空間。透明度值為 Transparency.OPAQUE。轉換型別是存儲單個像素的 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 或 DataBuffer.TYPE_INT 中的最小者。

參數:
bits - 像素值中的位數量;例如,遮罩碼中位的數量總和。
rmask - 指定指示整數像素中哪些位包含紅色份量的遮罩碼
gmask - 指定指示整數像素中哪些位包含綠色份量的遮罩碼
bmask - 指定指示整數像素中哪些位包含藍色份量的遮罩碼

DirectColorModel

public DirectColorModel(int bits,
                        int rmask,
                        int gmask,
                        int bmask,
                        int amask)
根據指定的指示在 int 像素表示形式中哪些位包含紅色、綠色和藍色顏色樣本與 alpha 樣本(如果存在)的遮罩碼建構 DirectColorModel。如果 amask 為 0,則像素值不包含 alpha 資訊,且所有像素都可視為不透明的,這意味著 alpha = 1.0。每個遮罩碼中的所有位必須是連續的,並且符合 int 像素表示形式的最低有效位的指定數量。Alpha(如果存在)不是預先乘得的值。ColorSpace 是預設的 sRGB 空間。如果 alpha 不存在,則透明度值是 Transparency.OPAQUE,否則是 Transparency.TRANSLUCENT。轉換型別是存儲單個像素的 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 或 DataBuffer.TYPE_INT 中的最小者。

參數:
bits - 像素值中的位數量;例如,遮罩碼中位的數量總和。
rmask - 指定指示整數像素中哪些位包含紅色份量的遮罩碼
gmask - 指定指示整數像素中哪些位包含綠色份量的遮罩碼
bmask - 指定指示整數像素中哪些位包含藍色份量的遮罩碼
amask - 指定指示整數像素中哪些位包含 alpha 份量的遮罩碼

DirectColorModel

public DirectColorModel(ColorSpace space,
                        int bits,
                        int rmask,
                        int gmask,
                        int bmask,
                        int amask,
                        boolean isAlphaPremultiplied,
                        int transferType)
根據指定參數建構 DirectColorModel。顏色份量位於指定的 ColorSpace,後者必須屬於型別 ColorSpace.TYPE_RGB,並且必須具有都是 0.0 的最小標準化份量值和都是 1.0 的最大值。遮罩碼指定在 int 像素表示形式中哪些位包含紅色、綠色和藍色顏色樣本與 alpha 樣本(如果存在)。如果 amask 為 0,則像素值不包含 alpha 資訊,且所有像素都可視為不透明的,這意味著 alpha = 1.0。每個遮罩碼中的所有位必須是連續的,並且符合 int 像素表示形式的最低有效位的指定數量。如果 alpha 存在,則 boolean isAlphaPremultiplied 指定如何解釋像素值中的顏色和 alpha 樣本。如果 booleantrue,則假定顏色樣本已經乘以 alpha 樣本。如果 alpha 不存在,則透明度值為 Transparency.OPAQUE,否則為 Transparency.TRANSLUCENT。轉換型別是用來表示像素值的基本陣列的型別,並且必須是 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 或 DataBuffer.TYPE_INT 之一。

參數:
space - 指定的 ColorSpace
bits - 像素值中位的數量;例如,遮罩碼中位的數量和。
rmask - 指定指示整數像素中哪些位包含紅色份量的遮罩碼
gmask - 指定指示整數像素中哪些位包含綠色份量的遮罩碼
bmask - 指定指示整數像素中哪些位包含藍色份量的遮罩碼
amask - 指定指示整數像素中哪些位包含 alpha 份量的遮罩碼
isAlphaPremultiplied - true 如果將顏色樣本預先乘以 alpha 樣本;否則 false
transferType - 用來表示像素值的陣列的型別
拋出:
IllegalArgumentException - 如果 space 不是 TYPE_RGB 空間,或如果最小/最大標準化份量值不是 0.0/1.0。
方法詳細資訊

getRedMask

public final int getRedMask()
返回指定 int 像素表示形式中哪些位包含紅色份量的遮罩碼。

返回:
指示 int 像素表示形式的哪些位包含紅色顏色樣本的遮罩碼。

getGreenMask

public final int getGreenMask()
返回指示 int 像素表示形式中哪些位包含綠色顏色份量的遮罩碼。

返回:
指示 int 像素表示形式的哪些位包含綠色顏色樣本的遮罩碼。

getBlueMask

public final int getBlueMask()
返回指示 int 像素表示形式中哪些位包含藍色顏色份量的遮罩碼。

返回:
指示 int 像素表示形式的哪些位包含藍色顏色樣本的遮罩碼。

getAlphaMask

public final int getAlphaMask()
返回指示 int 像素表示形式中哪些位包含 alpha 份量的遮罩碼。

返回:
指示 int 像素表示形式的哪些位包含 alpha 樣本的遮罩碼。

getRed

public final int getRed(int pixel)
返回指定像素的紅色顏色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。如有必要,可進行顏色轉換。將像素值指定為 int。返回的值是一個非預先乘得的值。因此,如果預乘 alpha,則此方法會在返回該值之前將其分離出來。例如,如果 alpha 值為 0,則紅色值為 0。

指定者:
類別 ColorModel 中的 getRed
參數:
pixel - 指定的像素
返回:
指定像素(在 sRGB ColorSpace 中縮放範圍從 0 到 255)的紅色顏色份量。

getGreen

public final int getGreen(int pixel)
返回指定像素的綠色顏色份量,指定像素在預設 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。如有必要,可進行顏色轉換。將像素值指定為 int。返回的值是一個非預先乘得的值。因此,如果預乘 alpha,則此方法會在返回該值之前將其分離出來。例如,如果 alpha 值為 0,則綠色值為 0。

指定者:
類別 ColorModel 中的 getGreen
參數:
pixel - 指定像素
返回:
指定像素(在 sRGB ColorSpace 中縮放範圍從 0 到 255)的綠色顏色份量。

getBlue

public final int getBlue(int pixel)
返回指定像素的藍色顏色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。如有必要,可進行顏色轉換。將像素值指定為 int。返回的值是一個非預先乘得的值。因此,如果預乘 alpha,則此方法會在返回該值之前將其分離出來。例如,如果 alpha 值為 0,則藍色值為 0。

指定者:
類別 ColorModel 中的 getBlue
參數:
pixel - 指定的像素
返回:
指定像素(在 sRGB ColorSpace 中縮放範圍從 0 到 255)的藍色顏色份量。

getAlpha

public final int getAlpha(int pixel)
返回指定像素(縮放範圍從 0 到 255)的 alpha 份量。像素值指定為 int

指定者:
類別 ColorModel 中的 getAlpha
參數:
pixel - 指定像素
返回:
pixel(0 到 255)的 alpha 份量的值。

getRGB

public final int getRGB(int pixel)
返回預設的 RGB 顏色模型格式中的像素的顏色/alpha 份量。如有必要,可進行顏色轉換。將像素值指定為 int。返回的值是非預乘格式。因此,如果預乘 alpha,則此方法會將它從顏色份量中分離出來。例如,如果 alpha 值為 0,則顏色值每個份量都是 0。

覆寫:
類別 ColorModel 中的 getRGB
參數:
pixel - 指定的像素
返回:
指定像素的顏色/alpha 份量的 RGB 值。
另請參見:
ColorModel.getRGBdefault()

getRed

public int getRed(Object inData)
返回指定像素的紅色顏色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。如有必要,可進行顏色轉換。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。返回的值是一個非預先乘得的值。因此,如果預乘 alpha,則此方法會在返回該值之前將其分離出來。例如,如果 alpha 值為 0,則紅色值為 0。如果 inData 不是型別 transferType 的基本陣列,則拋出 ClassCastException。如果 inData 不是特別大,不能存儲此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。因為 DirectColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。如果此 transferType 不受該 ColorModel 支持,則拋出 UnsupportedOperationException

覆寫:
類別 ColorModel 中的 getRed
參數:
inData - 套件含該像素值的陣列
返回:
指定像素的紅色份量的值。
拋出:
ArrayIndexOutOfBoundsException - 如果 inData 不是特別大,不能存儲此顏色模型的像素值
ClassCastException - 如果 inData 不是型別 transferType 的基本陣列
UnsupportedOperationException - 如果此顏色模型不支持 transferType

getGreen

public int getGreen(Object inData)
返回指定像素的綠色顏色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。如有必要,可進行顏色轉換。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。返回的值是一個非預先乘得的值。因此,如果預乘 alpha,則此方法會在返回該值之前將其分離出來。例如,如果 alpha 值為 0,則綠色值為 0。如果 inData 不是型別 transferType 的基本陣列,則拋出 ClassCastException。如果 inData 不是特別大,不能存儲此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。因為 DirectColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。如果此 transferType 不受該 ColorModel 支持,則拋出 UnsupportedOperationException

覆寫:
類別 ColorModel 中的 getGreen
參數:
inData - 套件含該像素值的陣列
返回:
指定像素的綠色份量的值。
拋出:
ArrayIndexOutOfBoundsException - 如果 inData 不是特別大,不能存儲此顏色模型的像素值
ClassCastException - 如果 inData 不是型別 transferType 的基本陣列
UnsupportedOperationException - 如果此顏色模型不支持 transferType

getBlue

public int getBlue(Object inData)
返回指定像素的藍顏色份量,指定像素在預設的 RGB ColorSpace(即 sRGB)中縮放範圍是 0 到 255。如有必要,可進行顏色轉換。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。返回的值是一個非預先乘得的值。因此,如果預乘 alpha,則此方法會在返回該值之前將其分離出來。例如,如果 alpha 值為 0,則藍色值為 0。如果 inData 不是型別 transferType 的基本陣列,則拋出 ClassCastException。如果 inData 不是特別大,不能存儲此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。因為 DirectColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。如果此 transferType 不受該 ColorModel 支持,則拋出 UnsupportedOperationException

覆寫:
類別 ColorModel 中的 getBlue
參數:
inData - 套件含像素值的陣列
返回:
指定像素的藍色份量的值。
拋出:
ArrayIndexOutOfBoundsException - 如果 inData 不是特別大,不能存儲此顏色模型的像素值
ClassCastException - 如果 inData 不是型別 transferType 的基本陣列
UnsupportedOperationException - 如果此顏色模型不支持 transferType

getAlpha

public int getAlpha(Object inData)
返回指定像素(在 0 到 255 之間縮放)的 alpha 份量。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。如果 inData 不是型別 transferType 的基本陣列,則拋出 ClassCastException。如果 inData 不是特別大,不能存儲此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。因為 DirectColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。如果此 transferType 不受支持,則拋出 UnsupportedOperationException

覆寫:
類別 ColorModel 中的 getAlpha
參數:
inData - 指定的像素
返回:
指定像素(在 0 到 255 之間縮放)的 alpha 份量
拋出:
ClassCastException - 如果 inData 不是型別 transferType 的基本陣列
ArrayIndexOutOfBoundsException - 如果 inData 不是特別大,不能存儲此 ColorModel 的像素
UnsupportedOperationException - 如果此 tranferType 不受此 ColorModel 支持

getRGB

public int getRGB(Object inData)
返回預設的 RGB 顏色模型格式中的像素的顏色/alpha 份量。如有必要,可進行顏色轉換。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。如果 inData 不是型別 transferType 的基本陣列,則拋出 ClassCastException。如果 inData 不是特別大,不能存儲此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。返回的值是非預乘格式。因此,如果預乘 alpha,則此方法會將它從顏色份量中分離出來。例如,如果 alpha 值為 0,則顏色值為 0。因為 DirectColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。

覆寫:
類別 ColorModel 中的 getRGB
參數:
inData - 指定的像素
返回:
指定像素的顏色和 alpha 份量。
拋出:
UnsupportedOperationException - 如果該 transferType 不受此 ColorModel 支持
另請參見:
ColorModel.getRGBdefault()

getDataElements

public Object getDataElements(int rgb,
                              Object pixel)
在預設 RGB 顏色模型中給定整數像素的表示形式的情況下,返回此 ColorModel 中像素的資料元素陣列的表示形式。然後可以將此陣列傳遞給 WritableRaster 物件的 setDataElements 方法。如果像素變數為 null,則分派一個新陣列。如果 pixel 不為 null,則它必須是型別 transferType 的基本陣列;否則,拋出 ClassCastException。如果 pixel 不是特別大,不能存儲此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。此像素陣列被返回。因為 DirectColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。

覆寫:
類別 ColorModel 中的 getDataElements
參數:
rgb - 預設的 RGB 顏色模型中的整數像素表示形式
pixel - 指定像素
返回:
ColorModel 中指定像素的陣列表示形式
拋出:
ClassCastException - 如果 pixel 不是型別 transferType 的基本陣列
ArrayIndexOutOfBoundsException - 如果 pixel 不是特別大,不能存儲此 ColorModel 的像素值
UnsupportedOperationException - 如果此 transferType 不受此 ColorModel 支持
另請參見:
WritableRaster.setDataElements(int, int, java.lang.Object), SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)

getComponents

public final int[] getComponents(int pixel,
                                 int[] components,
                                 int offset)
返回在 ColorModel 中已給定像素的未標準化顏色/alpha 份量。將像素值指定為 int。如果該 components 陣列為 null,則分派一個新陣列。該 components 陣列被返回。將顏色/alpha 份量存儲在以 offset 開頭的 components 陣列中,即便此方法已分派了陣列也如此。如果 components 陣列不為 null 且不是特別大,不能以 offset 開頭存儲所有顏色和 alpha 份量,則拋出 ArrayIndexOutOfBoundsException

覆寫:
類別 ColorModel 中的 getComponents
參數:
pixel - 指定的像素
components - 接收指定像素的顏色和 alpha 份量的陣列
offset - 開始存儲顏色和 alpha 份量時的 components 陣列的偏移量
返回:
包含以指定偏移量開頭的指定像素的顏色和 alpha 份量的陣列。

getComponents

public final int[] getComponents(Object pixel,
                                 int[] components,
                                 int offset)
返回在 ColorModel 中已給定像素的未標準化顏色/alpha 份量。像素值由作為物件參考傳入的型別 transferType 的資料元素的陣列指定。如果 pixel 不是型別 transferType 的基本陣列,則拋出 ClassCastException。如果 pixel 不是特別大,不能存儲此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。如果該 components 陣列為 null,則分派一個新陣列。該 components 陣列被返回。將顏色/alpha 份量存儲在以 offset 開頭的 components 陣列中,即便此方法已分派了陣列也如此。如果 components 陣列不為 null 且不是特別大,不能以 offset 開頭存儲所有顏色和 alpha 份量,則拋出 ArrayIndexOutOfBoundsException。因為 DirectColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。

覆寫:
類別 ColorModel 中的 getComponents
參數:
pixel - 指定的像素
components - 接收指定像素的顏色和 alpha 份量的陣列
offset - 開始存儲顏色和 alpha 份量時的 components 陣列的偏移量
返回:
包含以指定偏移量開頭的指定像素的顏色和 alpha 份量的陣列。
拋出:
ClassCastException - 如果 pixel 不是型別 transferType 的基本陣列
ArrayIndexOutOfBoundsException - 如果 pixel 不是特別大,不能存儲此 ColorModel 的像素值,或如果 components 不為 null 且不是特別大,不能以 offset 開頭保存所有顏色和 alpha 份量
UnsupportedOperationException - 如果此 transferType 不受此顏色模型支持

createCompatibleWritableRaster

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

覆寫:
類別 ColorModel 中的 createCompatibleWritableRaster
參數:
w - 應用到新 WritableRaster 的寬度
h - 應用到新 WritableRaster 的高度
返回:
具有指定寬度和高度的 WritableRaster 物件。
拋出:
IllegalArgumentException - 如果 wh 小於或等於 0
另請參見:
WritableRaster, SampleModel

getDataElement

public int getDataElement(int[] components,
                          int offset)
在給定未標準化顏色/alpha 份量的陣列的情況下,返回以 int 型別表示在此 ColorModel 中的像素值。如果 components 陣列不是特別大,不能以 offset 開頭存儲所有顏色和 alpha 份量,則拋出 ArrayIndexOutOfBoundsException

覆寫:
類別 ColorModel 中的 getDataElement
參數:
components - 未標準化的顏色和 alpha 份量的陣列
offset - 開始檢索顏色和 alpha 份量處的 components 的索引
返回:
ColorModel 中與指定份量相對應的 int 像素值。
拋出:
ArrayIndexOutOfBoundsException - 如果 components 陣列不是特別大,不能存儲所有以 offset 開頭的顏色和 alpha 份量

getDataElements

public Object getDataElements(int[] components,
                              int offset,
                              Object obj)
在給定未標準化的顏色/alpha 份量的陣列的情況下,返回此 ColorModel 中的像素的資料元素陣列表示形式。然後可以將此陣列傳遞給 WritableRaster 物件的 setDataElements 方法。如果 components 陣列不是特別大,不能存儲所有以偏移量開頭的顏色和 alpha 份量,則拋出 ArrayIndexOutOfBoundsException。如果 obj 變數為 null,則分派一個新陣列。如果 obj 不為 null,則它必須是型別 transferType 的基本陣列;否則,拋出 ClassCastException。如果 obj 不是特別大,不能存儲此 ColorModel 的像素值,則拋出 ArrayIndexOutOfBoundsException。因為 DirectColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。

覆寫:
類別 ColorModel 中的 getDataElements
參數:
components - 未標準化的顏色和 alpha 份量的陣列
offset - 開始檢索顏色和 alpha 份量處的 components 的索引
obj - 表示顏色和 alpha 份量的陣列的 Object
返回:
表示顏色和 alpha 份量的陣列的 Object
拋出:
ClassCastException - 如果 obj 不是型別 transferType 的基本陣列
ArrayIndexOutOfBoundsException - 如果 obj 不是特別大,不能存儲此 ColorModel 的像素值,或該 components 陣列不是特別大,不能存儲所有以 offset 開頭的顏色和 alpha 份量
UnsupportedOperationException - 如果此 transferType 不受此顏色模型支持
另請參見:
WritableRaster.setDataElements(int, int, java.lang.Object), SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)

coerceData

public final ColorModel coerceData(WritableRaster raster,
                                   boolean isAlphaPremultiplied)
強制光柵資料與在 isAlphaPremultiplied 變數中指定的狀態比對,假定此 ColorModel 現在已對該資料進行正確描述。可以將顏色光柵資料乘以或除以 alpha,如果該資料處於正確狀態,則不執行任何操作。如果需要對該資料強制比對,則此方法還將相應地返回一個帶有 isAlphaPremultiplied 標誌集的 ColorModel 實例。如果此 transferType 不受此 ColorModel 支持,則此方法將拋出 UnsupportedOperationException。因為 ColorModel 可以子類別化,所以子類別可以繼承此方法的實作,並且如果不覆寫此方法,則當它們使用不受支持的 transferType 時,將拋出異常。

覆寫:
類別 ColorModel 中的 coerceData
參數:
raster - WritableRaster 資料
isAlphaPremultiplied - 如果 alpha 是預先乘得的,則為 true;否則為 false
返回:
表示被強制資料的 ColorModel 物件。
拋出:
UnsupportedOperationException - 如果此 transferType 不受此顏色模型支持

isCompatibleRaster

public boolean isCompatibleRaster(Raster raster)
如果 raster 與此 ColorModel 相容,則返回 true,如果不相容,則返回 false

覆寫:
類別 ColorModel 中的 isCompatibleRaster
參數:
raster - 測試相容性的 Raster 物件
返回:
true 如果 raster 與此 ColorModel 相容;否則 false

toString

public String toString()
返回表示此 DirectColorModelString

覆寫:
類別 ColorModel 中的 toString
返回:
表示此 DirectColorModelString

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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