- 所有已实现的接口:
-
Serializable
- 直接已知的子类:
-
ICC_ColorSpace
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 观看照度: 200勒克斯 观看白点: CIE D50 媒体白点: "完全反射漫射器" -- D50 媒体黑点: 0勒克斯或0反射率 闪烁: 1% 环境: 媒体白点的20% 媒体描述: 反射打印(即RLAB,Hunt观看媒体) 注意: 对于创建此转换空间的ICC配置文件的开发人员,适用以下内容。使用简单的Von Kries白点适应折叠到3X3矩阵参数中,并将闪烁和环境效果折叠到三个一维查找表中(假设使用显示器的最小模型)。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
上面定义的内置CIEXYZ转换颜色空间。static final int
内置线性灰度颜色空间。static final int
内置线性RGB颜色空间。static final int
内置Photo YCC转换颜色空间。static final int
在 http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html上定义的内置sRGB颜色空间。static final int
通用的2组分颜色空间。static final int
通用的3组分颜色空间。static final int
通用的4组分颜色空间。static final int
通用的5组分颜色空间。static final int
通用的6组分颜色空间。static final int
通用的7组分颜色空间。static final int
通用的8组分颜色空间。static final int
通用的9组分颜色空间。static final int
通用的10组分颜色空间。static final int
通用的11组分颜色空间。static final int
通用的12组分颜色空间。static final int
任何CMY颜色空间系列之一。static final int
任何CMYK颜色空间系列之一。static final int
通用的13组分颜色空间。static final int
通用的14组分颜色空间。static final int
通用的15组分颜色空间。static final int
任何GRAY颜色空间系列之一。static final int
任何HLS颜色空间系列之一。static final int
任何HSV颜色空间系列之一。static final int
任何Lab颜色空间系列之一。static final int
任何Luv颜色空间系列之一。static final int
任何RGB颜色空间系列之一。static final int
任何XYZ颜色空间系列之一。static final int
任何YCbCr颜色空间系列之一。static final int
任何Yxy颜色空间系列之一。 -
Constructor Summary
ModifierConstructorDescriptionprotected
ColorSpace
(int type, int numComponents) 给定颜色空间类型和组件数量,构造一个ColorSpace
对象。 -
Method Summary
Modifier and TypeMethodDescriptionabstract float[]
fromCIEXYZ
(float[] colorvalue) 将假定在CS_CIEXYZ
转换颜色空间中的颜色值转换为这个ColorSpace
。abstract float[]
fromRGB
(float[] rgbvalue) 将假定在默认CS_sRGB
颜色空间中的颜色值转换为这个ColorSpace
。static ColorSpace
getInstance
(int cspace) 返回表示特定预定义颜色空间之一的ColorSpace
。float
getMaxValue
(int component) 返回指定组件的最大标准化颜色组件值。float
getMinValue
(int component) 返回指定组件的最小标准化颜色组件值。getName
(int component) 返回给定组件索引的组件名称。int
返回这个ColorSpace
的组件数量。int
getType()
返回这个ColorSpace
的颜色空间类型(例如TYPE_RGB
、TYPE_XYZ
等)。boolean
如果ColorSpace
是CS_sRGB
,则返回true。abstract float[]
toCIEXYZ
(float[] colorvalue) 将假定在这个ColorSpace
中的颜色值转换为CS_CIEXYZ
转换颜色空间。abstract float[]
toRGB
(float[] colorvalue) 将假定在这个ColorSpace
中的颜色值转换为默认CS_sRGB
颜色空间中的值。
-
Field Details
-
TYPE_XYZ
任何XYZ颜色空间系列之一。- 参见:
-
TYPE_Lab
任何Lab颜色空间系列之一。- 参见:
-
TYPE_Luv
任何Luv颜色空间系列之一。- 参见:
-
TYPE_YCbCr
任何YCbCr颜色空间系列之一。- 参见:
-
TYPE_Yxy
任何Yxy颜色空间系列之一。- 参见:
-
TYPE_RGB
任何RGB颜色空间系列之一。- 参见:
-
TYPE_GRAY
任何GRAY颜色空间系列之一。- 参见:
-
TYPE_HSV
任何HSV颜色空间系列之一。- 参见:
-
TYPE_HLS
任何HLS颜色空间系列之一。- 参见:
-
TYPE_CMYK
任何CMYK颜色空间系列之一。- 参见:
-
TYPE_CMY
任何CMY颜色空间系列之一。- 参见:
-
TYPE_2CLR
通用的2组分颜色空间。- 参见:
-
TYPE_3CLR
通用的3组分颜色空间。- 参见:
-
TYPE_4CLR
通用的4组分颜色空间。- 参见:
-
TYPE_5CLR
通用的5组分颜色空间。- 参见:
-
TYPE_6CLR
通用的6组分颜色空间。- 参见:
-
TYPE_7CLR
通用的7组分颜色空间。- 参见:
-
TYPE_8CLR
通用的8组分颜色空间。- 参见:
-
TYPE_9CLR
通用的9组分色彩空间。- 参见:
-
TYPE_ACLR
通用的10组分色彩空间。- 参见:
-
TYPE_BCLR
通用的11组分色彩空间。- 参见:
-
TYPE_CCLR
通用的12组分色彩空间。- 参见:
-
TYPE_DCLR
通用的13组分色彩空间。- 参见:
-
TYPE_ECLR
通用的14组分色彩空间。- 参见:
-
TYPE_FCLR
通用的15组分色彩空间。- 参见:
-
CS_sRGB
在 http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html中定义的内置sRGB色彩空间。- 参见:
-
CS_LINEAR_RGB
内置的线性RGB色彩空间。该空间基于与CS_sRGB
相同的RGB主色调,但具有线性色调再现曲线。- 参见:
-
CS_CIEXYZ
上面定义的内置CIEXYZ转换色彩空间。- 参见:
-
CS_PYCC
内置的Photo YCC转换色彩空间。- 参见:
-
CS_GRAY
内置的线性灰度色彩空间。- 参见:
-
-
Constructor Details
-
ColorSpace
protected ColorSpace(int type, int numComponents) 给定色彩空间类型和组件数量构造一个ColorSpace
对象。- 参数:
-
type
-ColorSpace
类型常量之一 -
numComponents
- 色彩空间中的组件数量
-
-
Method Details
-
getInstance
返回表示特定预定义色彩空间之一的ColorSpace
。- 参数:
-
cspace
- 由预定义类常量之一标识的特定色彩空间(例如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
转换为输出色彩空间。有关更多信息,请参见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值必须在传递给此方法之前转换为D50相对值。有关更多信息,请参见ICC_ColorSpace
的toCIEXYZ
方法。- 参数:
-
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相对值。有关更多信息,请参见ICC_ColorSpace
的fromCIEXYZ
方法。- 参数:
-
colorvalue
- 至少具有长度为3的浮点数组 - 返回:
-
长度等于此
ColorSpace
中组件数量的浮点数组 - 抛出:
-
ArrayIndexOutOfBoundsException
- 如果数组长度至少不是3
-
getType
public int getType()返回此ColorSpace
的色彩空间类型(例如TYPE_RGB
、TYPE_XYZ
,...)。类型定义了色彩空间的组件数量和解释,例如TYPE_RGB
标识具有三个组件(红、绿、蓝)的色彩空间。它不定义空间的特定色彩特性,例如主色度。- 返回:
-
代表此
ColorSpace
类型的类型常量
-
getNumComponents
public int getNumComponents()返回此ColorSpace的组件数量。- 返回:
-
此
ColorSpace
中的组件数量
-
getName
返回给定组件索引的组件名称。- 参数:
-
component
- 组件索引 - 返回:
- 指定索引处组件的名称
- 抛出:
-
IllegalArgumentException
- 如果component
小于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
-