- java.lang.Object
-
- java.awt.color.ColorSpace
-
- 实现的所有接口
-
Serializable
- 已知直接子类:
-
ICC_ColorSpace
public abstract class ColorSpaceextends Objectimplements 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
-
-
字段汇总
字段 变量和类型 字段 描述 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
通用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颜色空间系列。
-
构造方法摘要
构造方法 变量 构造器 描述 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颜色空间中的值。
-
-
-
字段详细信息
-
CS_sRGB
@Nativepublic static final int CS_sRGB
sRGB颜色空间定义为 http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html 。- 另请参见:
- 常数字段值
-
CS_LINEAR_RGB
@Nativepublic static final int CS_LINEAR_RGB
内置线性RGB色彩空间。 该空间基于与CS_sRGB相同的RGB原色,但具有线性色调再现曲线。- 另请参见:
- 常数字段值
-
-
方法详细信息
-
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
- 一个float数组,其长度至少为此ColorSpace中的组件数 - 结果
- 一个长度为3的float数组
- 异常
-
ArrayIndexOutOfBoundsException
- 如果数组长度不是此ColorSpace中的组件数
-
fromRGB
public abstract float[] fromRGB(float[] rgbvalue)
将假定为默认CS_sRGB颜色空间的颜色值转换为此ColorSpace。此方法使用设计用于在输入和输出颜色之间产生最佳感知匹配的算法来转换颜色值。 为了进行颜色值的比色转换,您应该使用CS_sRGB颜色空间的
toCIEXYZ
方法首先从输入颜色空间转换为CS_CIEXYZ颜色空间,然后使用此颜色空间的fromCIEXYZ
方法从CS_CIEXYZ转换为输出颜色空间。 有关详细信息,请参阅toCIEXYZ
和fromCIEXYZ
。- 参数
-
rgbvalue
- 长度至少为3的浮点数组 - 结果
- 一个float数组,其长度等于此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
- 一个float数组,其长度至少为此ColorSpace中的组件数 - 结果
- 一个长度为3的float数组
- 异常
-
ArrayIndexOutOfBoundsException
- 如果数组长度不是此ColorSpace中的组件数。
-
fromCIEXYZ
public abstract float[] fromCIEXYZ(float[] colorvalue)
将假定在CS_CIEXYZ转换颜色空间中的颜色值转换为此ColorSpace。该方法使用相对比色法转换颜色值,如国际色彩联盟标准所定义。 这意味着此方法采用的XYZ参数值相对于CS_CIEXYZ颜色空间的D50白点表示。 该表示在两步颜色转换过程中是有用的,其中颜色从输入颜色空间变换到CS_CIEXYZ然后变换到输出颜色空间。 此方法返回的颜色值不是在通过色度计测量时产生传递给方法的XYZ值的颜色值。 如果XYZ值对应于使用当前CIE推荐做法进行的测量,则在传递给此方法之前,必须将它们转换为D50相对值。 见
fromCIEXYZ
的方法ICC_ColorSpace
获取更多信息。- 参数
-
colorvalue
- 长度至少为3的浮点数组 - 结果
- 一个float数组,其长度等于此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
- 如果component小于0或大于numComponents - 1 - 从以下版本开始:
- 1.4
-
-