- java.lang.Object
-
- java.awt.color.ColorSpace
-
- All Implemented Interfaces:
-
Serializable
- 已知直接子类:
-
ICC_ColorSpace
public abstract class ColorSpace extends Object implements Serializable
该抽象类用于作为颜色空间标签,用于标识Color对象的特定颜色空间,或通过ColorModel对象来映射Image,BufferedImage或GraphicsDevice。 它包含将特定颜色空间中的颜色转换为/从sRGB和/或来自明确定义的CIEXYZ颜色空间的方法。为了这个类中的方法的目的,颜色被表示为由每个ColorSpace定义的归一化范围内的浮点表示的颜色分量的数组。 对于许多ColorSpaces(例如sRGB),此范围为0.0到1.0。 但是,某些ColorSpaces具有值范围不同的组件。 提供方法来查询每个组件的最小和最大归一化值。
为了引用颜色空间类型(例如,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 viewing illuminance: 200 lux viewing white point: CIE D50 media white point: "that of a perfectly reflecting diffuser" -- D50 media black point: 0 lux or 0 Reflectance flare: 1 percent surround: 20percent of the media white point media description: reflection print (i.e., RLAB, Hunt viewing media) note: For developers creating an ICC profile for this conversion space, the following is applicable. Use a simple Von Kries white point adaptation folded into the 3X3 matrix parameters and fold the flare and surround effects into the three one-dimensional lookup tables (assuming one uses the minimal model for monitors).
- 另请参见:
-
ICC_ColorSpace
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
CS_CIEXYZ
上面定义的CIEXYZ转换颜色空间。static int
CS_GRAY
内置线性灰度色彩空间。static int
CS_LINEAR_RGB
内置线性RGB色彩空间。static int
CS_PYCC
照片YCC转换颜色空间。static int
CS_sRGB
sRGB颜色空间定义在 http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html 。static int
TYPE_2CLR
通用2分量颜色空间。static int
TYPE_3CLR
通用3组件颜色空间。static int
TYPE_4CLR
通用4组分颜色空间。static int
TYPE_5CLR
通用5组件颜色空间。static int
TYPE_6CLR
通用6组件颜色空间。static int
TYPE_7CLR
通用7组件颜色空间。static int
TYPE_8CLR
通用8分量颜色空间。static int
TYPE_9CLR
通用9组件颜色空间。static int
TYPE_ACLR
通用10组分色彩空间。static int
TYPE_BCLR
通用11组件颜色空间。static int
TYPE_CCLR
通用12组件颜色空间。static int
TYPE_CMY
任何一个家庭的CMY色彩空间。static int
TYPE_CMYK
任何一个CMYK色彩空间的家庭。static int
TYPE_DCLR
通用13组件颜色空间。static int
TYPE_ECLR
通用14组件颜色空间。static int
TYPE_FCLR
通用15组件颜色空间。static int
TYPE_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颜色空间。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
ColorSpace(int type, int numcomponents)
给定一个ColorSpace对象,给出一个颜色空间类型和组件数量。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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颜色空间中的值。
-
-
-
字段详细信息
-
TYPE_XYZ
@Native public static final int TYPE_XYZ
任何家庭的XYZ色彩空间。- 另请参见:
- Constant Field Values
-
TYPE_Lab
@Native public static final int TYPE_Lab
任何一个Lab颜色空间的家庭。- 另请参见:
- Constant Field Values
-
TYPE_Luv
@Native public static final int TYPE_Luv
任何Luv色彩空间的家庭。- 另请参见:
- Constant Field Values
-
TYPE_YCbCr
@Native public static final int TYPE_YCbCr
任何YCbCr色彩空间的家庭。- 另请参见:
- Constant Field Values
-
TYPE_Yxy
@Native public static final int TYPE_Yxy
任何家庭的Yxy颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_RGB
@Native public static final int TYPE_RGB
任何RGB色彩空间的家庭。- 另请参见:
- Constant Field Values
-
TYPE_GRAY
@Native public static final int TYPE_GRAY
任何一个灰色家庭的颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_HSV
@Native public static final int TYPE_HSV
任何家庭的HSV色彩空间。- 另请参见:
- Constant Field Values
-
TYPE_HLS
@Native public static final int TYPE_HLS
任何家庭的HLS颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_CMYK
@Native public static final int TYPE_CMYK
任何一个CMYK色彩空间的家庭。- 另请参见:
- Constant Field Values
-
TYPE_CMY
@Native public static final int TYPE_CMY
任何一个家庭的CMY色彩空间。- 另请参见:
- Constant Field Values
-
TYPE_2CLR
@Native public static final int TYPE_2CLR
通用2分量颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_3CLR
@Native public static final int TYPE_3CLR
通用3组件颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_4CLR
@Native public static final int TYPE_4CLR
通用4组分颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_5CLR
@Native public static final int TYPE_5CLR
通用5组件颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_6CLR
@Native public static final int TYPE_6CLR
通用6组件颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_7CLR
@Native public static final int TYPE_7CLR
通用7组件颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_8CLR
@Native public static final int TYPE_8CLR
通用8分量颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_9CLR
@Native public static final int TYPE_9CLR
通用9组件颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_ACLR
@Native public static final int TYPE_ACLR
通用10组分色彩空间。- 另请参见:
- Constant Field Values
-
TYPE_BCLR
@Native public static final int TYPE_BCLR
通用11组件颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_CCLR
@Native public static final int TYPE_CCLR
通用12组件颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_DCLR
@Native public static final int TYPE_DCLR
通用13组件颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_ECLR
@Native public static final int TYPE_ECLR
通用14组件颜色空间。- 另请参见:
- Constant Field Values
-
TYPE_FCLR
@Native public static final int TYPE_FCLR
通用15组件颜色空间。- 另请参见:
- Constant Field Values
-
CS_sRGB
@Native public static final int CS_sRGB
sRGB颜色空间定义在 http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html 。- 另请参见:
- Constant Field Values
-
CS_LINEAR_RGB
@Native public static final int CS_LINEAR_RGB
内置线性RGB色彩空间。 该空间基于与CS_sRGB相同的RGB原色,但具有线性色调再现曲线。- 另请参见:
- Constant Field Values
-
CS_CIEXYZ
@Native public static final int CS_CIEXYZ
上面定义的CIEXYZ转换颜色空间。- 另请参见:
- Constant Field Values
-
CS_PYCC
@Native public static final int CS_PYCC
照片YCC转换颜色空间。- 另请参见:
- Constant Field Values
-
CS_GRAY
@Native public static final int CS_GRAY
内置线性灰度色彩空间。- 另请参见:
- Constant Field Values
-
-
方法详细信息
-
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。- 结果
-
true
如果这是一个CS_sRGB
颜色空间,false
如果不是
-
toRGB
public abstract float[] toRGB(float[] colorvalue)
将假定在此ColorSpace中的颜色值转换为默认CS_sRGB颜色空间中的值。该方法使用旨在产生输入和输出颜色之间最佳感知匹配的算法来转换颜色值。 为了进行颜色值的比色转换,您应该使用此颜色空间的
toCIEXYZ
方法首先将输入颜色空间转换为CS_CIEXYZ颜色空间,然后使用CS_sRGB颜色空间的fromCIEXYZ
方法将其从CS_CIEXYZ转换为输出颜色空间。 有关详细信息,请参阅toCIEXYZ
和fromCIEXYZ
。- 参数
-
colorvalue
- 长度至少为此ColorSpace中组件数量的浮点数组 - 结果
- 长度为3的浮点数组
- 异常
-
ArrayIndexOutOfBoundsException
- 如果数组长度至少不在此ColorSpace中的组件数量
-
fromRGB
public abstract float[] fromRGB(float[] rgbvalue)
将假定为默认的CS_sRGB颜色空间的颜色值转换为此ColorSpace。该方法使用旨在产生输入和输出颜色之间最佳感知匹配的算法来转换颜色值。 为了进行颜色值的比色转换,您应该使用CS_sRGB颜色空间的
toCIEXYZ
方法首先将输入颜色空间转换为CS_CIEXYZ颜色空间,然后使用此颜色空间的fromCIEXYZ
方法将其从CS_CIEXYZ转换为输出颜色空间。 有关详细信息,请参阅toCIEXYZ
和fromCIEXYZ
。- 参数
-
rgbvalue
- 长度至少为3的浮点数组 - 结果
- 长度等于此ColorSpace中组件数量的浮点数组
- 异常
-
ArrayIndexOutOfBoundsException
- 如果数组长度不小于3
-
toCIEXYZ
public abstract float[] toCIEXYZ(float[] colorvalue)
将此ColorSpace中假定为的颜色值转换为CS_CIEXYZ转换颜色空间。该方法使用国际色彩联盟标准定义的相对比色法来转换颜色值。 这意味着通过该方法返回的XYZ值相对于CS_CIEXYZ颜色空间的D50白点来表示。 这种表示在两步颜色转换过程中是有用的,其中颜色从输入颜色空间转换为CS_CIEXYZ,然后转换为输出颜色空间。 该表示与通过色度计从给定颜色值测量的XYZ值不同。 需要进一步的转换来计算使用当前CIE推荐做法测量的XYZ值。 见
toCIEXYZ
的方法ICC_ColorSpace
进一步的信息。- 参数
-
colorvalue
- 一个长度至少为此ColorSpace中组件数量的浮点数组 - 结果
- 长度为3的浮点数组
- 异常
-
ArrayIndexOutOfBoundsException
- 如果数组长度至少不在此ColorSpace中的组件数量。
-
fromCIEXYZ
public abstract float[] fromCIEXYZ(float[] colorvalue)
将CS_CIEXYZ转换颜色空间中假定的颜色值转换为此ColorSpace。该方法使用国际色彩联盟标准定义的相对比色法来转换颜色值。 这意味着该方法采用的XYZ参数值相对于CS_CIEXYZ颜色空间的D50白点表示。 这种表示在两步颜色转换过程中是有用的,其中颜色从输入颜色空间转换为CS_CIEXYZ,然后转换为输出颜色空间。 该方法返回的颜色值不是那些通过色度计测量时会产生传递给方法的XYZ值的那些。 如果您使用与使用当前CIE推荐做法进行测量相对应的XYZ值,则必须将其转换为D50相对值,然后再传递给此方法。 见
fromCIEXYZ
的方法ICC_ColorSpace
进一步的信息。- 参数
-
colorvalue
- 一个长度至少为3的浮点数组 - 结果
- 长度等于此ColorSpace中组件数量的浮点数组
- 异常
-
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
- 如果组件小于0或大于numComponents - 1 - 从以下版本开始:
- 1.4
-
getMaxValue
public float getMaxValue(int component)
返回指定组件的最大标准化颜色分量值。 该抽象类中的默认实现为所有组件返回1.0。 如果需要,子类应该覆盖此方法。- 参数
-
component
- 组件索引 - 结果
- 最大归一化分量值
- 异常
-
IllegalArgumentException
- 如果组件小于0或大于numComponents - 1 - 从以下版本开始:
- 1.4
-
-