java.lang.Object java.awt.color.ICC_Profile java.awt.color.ICC_ProfileRGB
public class ICC_ProfileRGB
ICC_ProfileRGB 类是 ICC_Profile 类的子类,它表示满足以下标准的配置文件:
redColorantTag
、greenColorantTag
、blueColorantTag
、redTRCTag
、greenTRCTag
、blueTRCTag
和 mediaWhitePointTag
标记。ICC_Profile
的
getInstance
方法将返回一个
ICC_ProfileRGB
对象。三个分量、基于矩阵输入的配置文件和 RGB 显示配置文件是这种类型的配置文件示例。
此配置文件类提供了颜色变换矩阵和查找表,Java 或本机方法在某些情况下可直接使用它们来优化颜色转换。
要从设备配置文件颜色空间转换到 CIEXYZ 配置文件连接空间,首先应该由查找表通过色调再现曲线 (TRC) 来线性化每种设备颜色分量。线性化之后的 RGB 分量通过一个由 RGB 颜料所构造的 3x3 矩阵转换为 CIEXYZ PCS。
linearR = redTRC[deviceR] linearG = greenTRC[deviceG] linearB = blueTRC[deviceB] _ _ _ _ _ _ [ PCSX ] [ redColorantX greenColorantX blueColorantX ] [ linearR ] [ ] [ ] [ ] [ PCSY ] = [ redColorantY greenColorantY blueColorantY ] [ linearG ] [ ] [ ] [ ] [_ PCSZ _] [_ redColorantZ greenColorantZ blueColorantZ _] [_ linearB _]可用以下方式执行逆向转换:通过上面 3x3 矩阵的逆矩阵可将 PCS XYZ 分量转换为线性 RGB 分量,然后通过逆 TRC 将线性 RGB 转换为设备 RGB。
字段摘要 | |
---|---|
static int |
BLUECOMPONENT 用于获取蓝色分量的 gamma 值或 TRC。 |
static int |
GREENCOMPONENT 用于获取绿色分量的 gamma 值或 TRC。 |
static int |
REDCOMPONENT 用于获取红色分量的 gamma 值或 TRC。 |
方法摘要 | |
---|---|
float |
getGamma(int component) 返回表示特定分量色调再现曲线 (TRC) 的 gamma 值。 |
float[][] |
getMatrix() 返回一个由配置文件的 redColorantTag 、greenColorantTag 和 blueColorantTag 的 X、Y 和 Z 分量构造的 3x3 float 矩阵。 |
float[] |
getMediaWhitePoint() 返回包含配置文件的 mediaWhitePointTag 分量的数组。 |
short[] |
getTRC(int component) 以数组形式返回特定分量的 TRC。 |
从类 java.awt.color.ICC_Profile 继承的方法 |
---|
finalize, getColorSpaceType, getData, getData, getInstance, getInstance, getInstance, getInstance, getMajorVersion, getMinorVersion, getNumComponents, getPCSType, getProfileClass, readResolve, setData, write, write |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public static final int REDCOMPONENT
public static final int GREENCOMPONENT
public static final int BLUECOMPONENT
方法详细信息 |
---|
public float[] getMediaWhitePoint()
mediaWhitePointTag
分量的数组。
float
数组,它包含配置文件的
mediaWhitePointTag
的 x、y 和 z 分量。
public float[][] getMatrix()
redColorantTag
、
greenColorantTag
和
blueColorantTag
的 X、Y 和 Z 分量构造的 3x3
float
矩阵。
此矩阵可用于配置文件的正向颜色转换,即从配置文件颜色空间到 CIEXYZ PCS 的转变。
redColorantTag
、
greenColorantTag
和
blueColorantTag
的 X、Y 和 Z 分量的 3x3
float
数组。
public float getGamma(int component)
如果配置文件将相应分量的 TRC 表示为表,而不是单个 gamma 值,则抛出异常。在这种情况下,可通过 getTRC(int)
方法获得实际的表。使用 gamma 值时,按如下方式计算线性分量(R、G 或 B):
gamma linearComponent = deviceComponent
component
-
ICC_ProfileRGB
常量,表示要检索其 TRC 的分量
ProfileDataException
- 如果配置文件没有将相应的 TRC 指定为单个 gamma 值。
public short[] getTRC(int component)
REDCOMPONENT
、
GREENCOMPONENT
或
BLUECOMPONENT
三者之一。否则该返回数组表示一个查找表,在理论上,其输入分量值范围是 [0.0, 1.0]。值 0.0 对应数组索引 0,值 1.0 则对应数组索引 length-1。对于数组中无确切对应某个索引的输入值,可以使用插值法为其生成输出值。输出值也与范围 [0.0, 1.0] 呈线性对应。数组值 0x0000 表示值 0.0,0xFFFF 则表示值 1.0。换句话说,尽管这些值是以
short
数组的形式返回的,但它们实际上是无符号的
short
值。 如果配置文件已经将相应的 TRC 指定为线性(gamma=1.0)或一个简单的 gamma 值,则此方法抛出异常。在这种情况下,应该使用
getGamma(int)
方法获取 gamma 值。
component
-
ICC_ProfileRGB
常量,表示要检索其 TRC 的分量:
REDCOMPONENT
、
GREENCOMPONENT
或
BLUECOMPONENT
。
ProfileDataException
- 如果配置文件没有将相应的 TRC 指定为一个表。