JavaTM 2 Platform
Standard Ed. 6

java.awt.color
類別 ColorSpace

java.lang.Object
  繼承者 java.awt.color.ColorSpace
所有已實作的介面:
Serializable
直接已知子類別:
ICC_ColorSpace

public abstract class ColorSpace
extends Object
implements Serializable

此抽象類別用做一個顏色空間標記,標識 Color 物件的特定顏色空間,或者通過 ColorModel 物件標識 Image、BufferedImage 或 GraphicsDevice 的特定顏色空間。此類別包含了可將指定顏色空間中的顏色與 sRGB 和定義良好的 CIEXYZ 顏色空間中的顏色進行相互轉換的方法。

對於此類別中的各個方法,顏色以顏色份量陣列表示,顏色份量則是以每個 ColorSpace 定義的標準化範圍中的 float 數表示。對於多數 ColorSpace(例如 sRGB)而言,此範圍是 0.0 到 1.0。但是某些 ColorSpace 的顏色份量具有不同的範圍值。此類別提供了查詢每個份量最小和最大標準化值的方法。

定義了多個變數,用來表示顏色空間型別(如 TYPE_RGB、TYPE_XYZ 等等)和特定顏色空間(如 CS_sRGB 和 CS_CIEXYZ)。sRGB 指的是標準的 RGB 顏色空間。有關更多資訊,請參閱 http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html

提供對定義良好的 CIEXYZ 顏色空間相互轉換的方法是為了支持在任意兩個顏色空間之間進行高精確度的變換。使用者期望 ColorSpace(如 ICC_ColorSpace)的特定子類別實作能支持基於基礎平臺顏色管理系統的高性能變換。

toCIEXYZ/fromCIEXYZ 方法使用的 CS_CIEXYZ 空間可以描述如下:


      CIEXYZ
      觀看照度:200 勒克斯
      觀看白色點:CIE D50
      介質白色點:“完全反射漫射面”-- D50
      介質黑色點:0 勒克斯或 0 反射率
      串流光:1%
      環繞:介質白色點的 20%
      介質說明:反射輸出(例如,RLAB,Hunt 觀看介質)
      註:對於要為此變換空間創建 ICC 配置檔案的開發人員,可採用下列方法。使用簡單的 Von Kries 適用網要將白色點放入 3X3 的矩陣參數中;將串流光和環繞效果放入三個一維檢索表中(假定每個表都使用了監視器最低限度的模型)。

另請參見:
ICC_ColorSpace, 序列化表格

欄位摘要
static int CS_CIEXYZ
          上面定義的 CIEXYZ 變換顏色空間。
static int CS_GRAY
          內置的線性灰度顏色空間。
static int CS_LINEAR_RGB
          內置的線性 RGB 顏色空間。
static int CS_PYCC
          Photo YCC 變換顏色空間。
static int CS_sRGB
          sRGB 顏色空間的定義位於 http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html
static int TYPE_2CLR
          Generic 2 份量顏色空間。
static int TYPE_3CLR
          Generic 3 份量顏色空間。
static int TYPE_4CLR
          Generic 4 份量顏色空間。
static int TYPE_5CLR
          Generic 5 份量顏色空間。
static int TYPE_6CLR
          Generic 6 份量顏色空間。
static int TYPE_7CLR
          Generic 7 份量顏色空間。
static int TYPE_8CLR
          Generic 8 份量顏色空間。
static int TYPE_9CLR
          Generic 9 份量顏色空間。
static int TYPE_ACLR
          Generic 10 份量顏色空間。
static int TYPE_BCLR
          Generic 11 份量顏色空間。
static int TYPE_CCLR
          Generic 12 份量顏色空間。
static int TYPE_CMY
          CMY 顏色空間的任意顏色系列。
static int TYPE_CMYK
          CMYK 顏色空間的任意顏色系列。
static int TYPE_DCLR
          Generic 13 份量顏色空間。
static int TYPE_ECLR
          Generic 14 份量顏色空間。
static int TYPE_FCLR
          Generic 15 份量顏色空間。
static int TYPE_GRAY
          GRAY 顏色空間的任意顏色系列。
static int TYPE_HLS
          HLS 顏色空間的任意顏色系列。
static int TYPE_HSV
          HSV 顏色空間的任意顏色系列。
static int TYPE_Lab
          Lab 顏色空間的任意顏色系列。
static int TYPE_Luv
          Luv 顏色空間的任意顏色系列。
static int TYPE_RGB
          RGB 顏色空間的任意顏色系列。
static int TYPE_XYZ
          XYZ 顏色空間的任意顏色系列。
static int TYPE_YCbCr
          YCbCr 顏色空間的任意顏色系列。
static int TYPE_Yxy
          Yxy 顏色空間的任意顏色系列。
 
建構子摘要
protected ColorSpace(int type, int numcomponents)
          建構一個給定顏色空間型別和份量數的 ColorSpace。
 
方法摘要
abstract  float[] fromCIEXYZ(float[] colorvalue)
          將假定為 CS_CIEXYZ 變換顏色空間中的顏色值轉換成此 ColorSpace 中的值。
abstract  float[] fromRGB(float[] rgbvalue)
          將假定為預設 CS_sRGB 顏色空間中的顏色值轉換成此 ColorSpace 中的值。
static ColorSpace getInstance(int colorspace)
          返回表示特定於預定義顏色空間之一的 ColorSpace。
 float getMaxValue(int component)
          返回指定份量的最大標準化顏色份量值。
 float getMinValue(int component)
          返回指定份量的最小標準化顏色份量值。
 String getName(int idx)
          返回給定份量索引處的份量名稱。
 int getNumComponents()
          返回此 ColorSpace 的份量數。
 int getType()
          返回此 ColorSpace 的顏色空間型別(例如 TYPE_RGB、TYPE_XYZ……)。
 boolean isCS_sRGB()
          如果 ColorSpace 是 CS_sRGB,則返回 true。
abstract  float[] toCIEXYZ(float[] colorvalue)
          將假定為此 ColorSpace 中的顏色值轉換成 CS_CIEXYZ 變換顏色空間中的值。
abstract  float[] toRGB(float[] colorvalue)
          將假定為此 ColorSpace 中的顏色值轉換成預設 CS_sRGB 顏色空間中的值。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

TYPE_XYZ

public static final int TYPE_XYZ
XYZ 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_Lab

public static final int TYPE_Lab
Lab 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_Luv

public static final int TYPE_Luv
Luv 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_YCbCr

public static final int TYPE_YCbCr
YCbCr 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_Yxy

public static final int TYPE_Yxy
Yxy 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_RGB

public static final int TYPE_RGB
RGB 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_GRAY

public static final int TYPE_GRAY
GRAY 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_HSV

public static final int TYPE_HSV
HSV 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_HLS

public static final int TYPE_HLS
HLS 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_CMYK

public static final int TYPE_CMYK
CMYK 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_CMY

public static final int TYPE_CMY
CMY 顏色空間的任意顏色系列。

另請參見:
常數欄位值

TYPE_2CLR

public static final int TYPE_2CLR
Generic 2 份量顏色空間。

另請參見:
常數欄位值

TYPE_3CLR

public static final int TYPE_3CLR
Generic 3 份量顏色空間。

另請參見:
常數欄位值

TYPE_4CLR

public static final int TYPE_4CLR
Generic 4 份量顏色空間。

另請參見:
常數欄位值

TYPE_5CLR

public static final int TYPE_5CLR
Generic 5 份量顏色空間。

另請參見:
常數欄位值

TYPE_6CLR

public static final int TYPE_6CLR
Generic 6 份量顏色空間。

另請參見:
常數欄位值

TYPE_7CLR

public static final int TYPE_7CLR
Generic 7 份量顏色空間。

另請參見:
常數欄位值

TYPE_8CLR

public static final int TYPE_8CLR
Generic 8 份量顏色空間。

另請參見:
常數欄位值

TYPE_9CLR

public static final int TYPE_9CLR
Generic 9 份量顏色空間。

另請參見:
常數欄位值

TYPE_ACLR

public static final int TYPE_ACLR
Generic 10 份量顏色空間。

另請參見:
常數欄位值

TYPE_BCLR

public static final int TYPE_BCLR
Generic 11 份量顏色空間。

另請參見:
常數欄位值

TYPE_CCLR

public static final int TYPE_CCLR
Generic 12 份量顏色空間。

另請參見:
常數欄位值

TYPE_DCLR

public static final int TYPE_DCLR
Generic 13 份量顏色空間。

另請參見:
常數欄位值

TYPE_ECLR

public static final int TYPE_ECLR
Generic 14 份量顏色空間。

另請參見:
常數欄位值

TYPE_FCLR

public static final int TYPE_FCLR
Generic 15 份量顏色空間。

另請參見:
常數欄位值

CS_sRGB

public static final int CS_sRGB
sRGB 顏色空間的定義位於 http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html

另請參見:
常數欄位值

CS_LINEAR_RGB

public static final int CS_LINEAR_RGB
內置的線性 RGB 顏色空間。此空間基於與 CS_sRGB 相同的 RGB 原色,但是有一個線性色調再現曲線。

另請參見:
常數欄位值

CS_CIEXYZ

public static final int CS_CIEXYZ
上面定義的 CIEXYZ 變換顏色空間。

另請參見:
常數欄位值

CS_PYCC

public static final int CS_PYCC
Photo YCC 變換顏色空間。

另請參見:
常數欄位值

CS_GRAY

public static final int CS_GRAY
內置的線性灰度顏色空間。

另請參見:
常數欄位值
建構子詳細資訊

ColorSpace

protected ColorSpace(int type,
                     int numcomponents)
建構一個給定顏色空間型別和份量數的 ColorSpace。

參數:
type - ColorSpace 型別常數之一
numcomponents - 顏色空間中的份量數
方法詳細資訊

getInstance

public static ColorSpace getInstance(int colorspace)
返回表示特定於預定義顏色空間之一的 ColorSpace。

參數:
colorspace - 由某個預定義的類別常數標識的特定顏色空間(如 CS_sRGB、CS_LINEAR_RGB、CS_CIEXYZ、CS_GRAY 或 CS_PYCC)
返回:
請求的 ColorSpace 物件

isCS_sRGB

public boolean isCS_sRGB()
如果 ColorSpace 是 CS_sRGB,則返回 true。

返回:
如果這是一個 CS_sRGB 顏色空間,則返回 true;如果不是,則返回 false

toRGB

public abstract float[] toRGB(float[] colorvalue)
將假定為此 ColorSpace 中的顏色值轉換成預設 CS_sRGB 顏色空間中的值。

此方法使用可在輸入和輸出顏色之間產生最佳感知比對的演算法來轉換顏色值。為了完成顏色值的色度變換,應該首先使用此顏色空間的 toCIEXYZ 方法將顏色值從輸入顏色空間轉換到 CS_CIEXYZ 顏色空間,然後使用 CS_sRGB 顏色空間的 fromCIEXYZ 方法將其從 CS_CIEXYZ 轉換到輸出顏色空間。有關更多資訊,請參閱 toCIEXYZfromCIEXYZ

參數:
colorvalue - 一個長度至少為此 ColorSpace 中份量數的 float 陣列
返回:
一個長度為 3 的 float 陣列
拋出:
ArrayIndexOutOfBoundsException - 如果陣列長度小於此 ColorSpace 中的份量數

fromRGB

public abstract float[] fromRGB(float[] rgbvalue)
將假定為預設 CS_sRGB 顏色空間中的顏色值轉換成此 ColorSpace 中的值。

此方法使用可在輸入和輸出顏色之間產生最佳感知比對的演算法來轉換顏色值。為了完成顏色值的色度變換,應該首先使用 CS_sRGB 顏色空間的 toCIEXYZ 方法將顏色值從輸入顏色空間變換到 CS_CIEXYZ 顏色空間,然後使用此顏色空間的 fromCIEXYZ 方法將其從 CS_CIEXYZ 變換到輸出顏色空間。有關更多資訊,請參閱 toCIEXYZfromCIEXYZ

參數:
rgbvalue - 一個長度至少為 3 的 float 陣列
返回:
一個長度等於 ColorSpace 中份量數的 float 陣列
拋出:
ArrayIndexOutOfBoundsException - 如果陣列長度小於 3

toCIEXYZ

public abstract float[] toCIEXYZ(float[] colorvalue)
將假定為此 ColorSpace 中的顏色值轉換成 CS_CIEXYZ 變換顏色空間中的值。

此方法使用相對色度來轉換顏色值,由國際色彩聯盟標準所定義。這意味著此方法所返回的 XYZ 值是用相對於 CS_CIEXYZ 顏色空間的 D50 白色點來表示的。這種表示方法在兩步驟的顏色變換過程中是很有用的,即將輸入顏色空間中的顏色轉換為 CS_CIEXYZ,然後再轉換為輸出顏色空間中的顏色。此表示形式與使用色度計由給定顏色值所測量的 XYZ 值不同。計算使用當前 CIE 推薦的做法所測量的 XYZ 值還需要進一步的轉換。有關更多資訊,請參閱 ICC_ColorSpacetoCIEXYZ 方法。

參數:
colorvalue - 一個長度至少為此 ColorSpace 中份量數的 float 陣列
返回:
一個長度為 3 的 float 陣列
拋出:
ArrayIndexOutOfBoundsException - 如果陣列長度小於此 ColorSpace 中的份量數。

fromCIEXYZ

public abstract float[] fromCIEXYZ(float[] colorvalue)
將假定為 CS_CIEXYZ 變換顏色空間中的顏色值轉換成此 ColorSpace 中的值。

此方法使用相對色度來轉換顏色值,由國際色彩聯盟標準所定義。這意味著此方法所返回的 XYZ 參數值是用相對於 CS_CIEXYZ 顏色空間的 D50 白色點來表示的。這種表示方法在兩步驟的顏色變換過程中是很有用的,即將輸入顏色空間中的顏色轉換為 CS_CIEXYZ,然後再轉換為輸出顏色空間中的顏色。此方法返回的顏色值與色度計測量時產生並傳遞給方法的 XYZ 值不同。如果 XYZ 值對應於使用當前 CIE 推薦的做法所測量的值,則在將其傳遞給此方法前必須將其轉換成 D50 的相對值。有關更多資訊,請參閱 ICC_ColorSpacefromCIEXYZ 方法。

參數:
colorvalue - 一個長度至少為 3 的 float 陣列
返回:
一個長度等於 ColorSpace 中份量數的 float 陣列
拋出:
ArrayIndexOutOfBoundsException - 如果陣列長度小於 3

getType

public int getType()
返回此 ColorSpace 的顏色空間型別(例如 TYPE_RGB、TYPE_XYZ……)。型別定義了顏色空間的份量數和對它的解釋,例如,TYPE_RGB 表示具有三個份量的顏色空間:紅色、綠色和藍色。它並不定義空間的特定顏色特徵(如,原色的色度)。

返回:
表示此 ColorSpace 型別的型別常數

getNumComponents

public int getNumComponents()
返回此 ColorSpace 的份量數。

返回:
ColorSpace 中的份量數。

getName

public String getName(int idx)
返回給定份量索引處的份量名稱。

參數:
idx - 份量索引
返回:
指定索引處的份量名稱
拋出:
IllegalArgumentException - 如果 idx 小於 0 或者大於 (numComponents) - 1

getMinValue

public float getMinValue(int component)
返回指定份量的最小標準化顏色份量值。此抽象類別的預設實作為所有份量返回 0.0。如有必要,子類別應該覆寫此方法。

參數:
component - 份量索引
返回:
最小標準化份量值
拋出:
IllegalArgumentException - 如果 component 小於 0 或者大於 (numComponents) - 1
從以下版本開始:
1.4

getMaxValue

public float getMaxValue(int component)
返回指定份量的最大標準化顏色份量值。此抽象類別的預設實作為所有份量返回 1.0。如有必要,子類別應該覆寫此方法。

參數:
component - 份量索引
返回:
最大標準化份量值
拋出:
IllegalArgumentException - 如果 component 小於 0 或者大於 numComponents - 1
從以下版本開始:
1.4

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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