java.awt.color

异常
java.lang.Object
  继承者 java.awt.color.ICC_Profile
      继承者 java.awt.color.ICC_ProfileRGB
所有已实现的接口:
Serializable

public class ICC_ProfileRGB
     
extends ICC_Profile

ICC_ProfileRGB 类是 ICC_Profile 类的子类,它表示满足以下标准的配置文件:

  • 配置文件的颜色空间类型是 RGB。
  • 配置文件包括 redColorantTaggreenColorantTagblueColorantTagredTRCTaggreenTRCTagblueTRCTagmediaWhitePointTag 标记。
当满足这些条件时, ICC_ProfilegetInstance 方法将返回一个 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。
 
从类 java.awt.color.ICC_Profile 继承的字段
CLASS_ABSTRACT, CLASS_COLORSPACECONVERSION, CLASS_DEVICELINK, CLASS_DISPLAY, CLASS_INPUT, CLASS_NAMEDCOLOR, CLASS_OUTPUT, icAbsoluteColorimetric, icCurveCount, icCurveData, icHdrAttributes, icHdrCmmId, icHdrColorSpace, icHdrCreator, icHdrDate, icHdrDeviceClass, icHdrFlags, icHdrIlluminant, icHdrMagic, icHdrManufacturer, icHdrModel, icHdrPcs, icHdrPlatform, icHdrProfileID, icHdrRenderingIntent, icHdrSize, icHdrVersion, icICCAbsoluteColorimetric, icMediaRelativeColorimetric, icPerceptual, icRelativeColorimetric, icSaturation, icSigAbstractClass, icSigAToB0Tag, icSigAToB1Tag, icSigAToB2Tag, icSigBlueColorantTag, icSigBlueMatrixColumnTag, icSigBlueTRCTag, icSigBToA0Tag, icSigBToA1Tag, icSigBToA2Tag, icSigCalibrationDateTimeTag, icSigCharTargetTag, icSigChromaticAdaptationTag, icSigChromaticityTag, icSigCmyData, icSigCmykData, icSigColorantOrderTag, icSigColorantTableTag, icSigColorSpaceClass, icSigCopyrightTag, icSigCrdInfoTag, icSigDeviceMfgDescTag, icSigDeviceModelDescTag, icSigDeviceSettingsTag, icSigDisplayClass, icSigGamutTag, icSigGrayData, icSigGrayTRCTag, icSigGreenColorantTag, icSigGreenMatrixColumnTag, icSigGreenTRCTag, icSigHead, icSigHlsData, icSigHsvData, icSigInputClass, icSigLabData, icSigLinkClass, icSigLuminanceTag, icSigLuvData, icSigMeasurementTag, icSigMediaBlackPointTag, icSigMediaWhitePointTag, icSigNamedColor2Tag, icSigNamedColorClass, icSigOutputClass, icSigOutputResponseTag, icSigPreview0Tag, icSigPreview1Tag, icSigPreview2Tag, icSigProfileDescriptionTag, icSigProfileSequenceDescTag, icSigPs2CRD0Tag, icSigPs2CRD1Tag, icSigPs2CRD2Tag, icSigPs2CRD3Tag, icSigPs2CSATag, icSigPs2RenderingIntentTag, icSigRedColorantTag, icSigRedMatrixColumnTag, icSigRedTRCTag, icSigRgbData, icSigScreeningDescTag, icSigScreeningTag, icSigSpace2CLR, icSigSpace3CLR, icSigSpace4CLR, icSigSpace5CLR, icSigSpace6CLR, icSigSpace7CLR, icSigSpace8CLR, icSigSpace9CLR, icSigSpaceACLR, icSigSpaceBCLR, icSigSpaceCCLR, icSigSpaceDCLR, icSigSpaceECLR, icSigSpaceFCLR, icSigTechnologyTag, icSigUcrBgTag, icSigViewingCondDescTag, icSigViewingConditionsTag, icSigXYZData, icSigYCbCrData, icSigYxyData, icTagReserved, icTagType, icXYZNumberX
 
方法摘要
 float getGamma(int component)
          返回表示特定分量色调再现曲线 (TRC) 的 gamma 值。
 float[][] getMatrix()
          返回一个由配置文件的 redColorantTaggreenColorantTagblueColorantTag 的 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
 

字段详细信息

REDCOMPONENT

public static final int REDCOMPONENT
用于获取红色分量的 gamma 值或 TRC。

另请参见:
常量字段值

GREENCOMPONENT

public static final int GREENCOMPONENT
用于获取绿色分量的 gamma 值或 TRC。

另请参见:
常量字段值

BLUECOMPONENT

public static final int BLUECOMPONENT
用于获取蓝色分量的 gamma 值或 TRC。

另请参见:
常量字段值
方法详细信息

getMediaWhitePoint

public float[] getMediaWhitePoint()
返回包含配置文件的 mediaWhitePointTag 分量的数组。

返回:
一个 3 元素的 float 数组,它包含配置文件的 mediaWhitePointTag 的 x、y 和 z 分量。

getMatrix

public float[][] getMatrix()
返回一个由配置文件的 redColorantTaggreenColorantTagblueColorantTag 的 X、Y 和 Z 分量构造的 3x3 float 矩阵。

此矩阵可用于配置文件的正向颜色转换,即从配置文件颜色空间到 CIEXYZ PCS 的转变。

返回:
一个包含配置文件的 redColorantTaggreenColorantTagblueColorantTag 的 X、Y 和 Z 分量的 3x3 float 数组。

getGamma

public float getGamma(int component)
返回表示特定分量色调再现曲线 (TRC) 的 gamma 值。component 参数必须是 REDCOMPONENT、GREENCOMPONENT 或 BLUECOMPONENT 三者之一。

如果配置文件将相应分量的 TRC 表示为表,而不是单个 gamma 值,则抛出异常。在这种情况下,可通过 getTRC(int) 方法获得实际的表。使用 gamma 值时,按如下方式计算线性分量(R、G 或 B):

 
                                           gamma
          linearComponent = deviceComponent

参数:
component - ICC_ProfileRGB 常量,表示要检索其 TRC 的分量
返回:
float 类型的 gamma 值。
抛出:
ProfileDataException - 如果配置文件没有将相应的 TRC 指定为单个 gamma 值。

getTRC

public short[] getTRC(int component)
以数组形式返回特定分量的 TRC。Component 必须是 REDCOMPONENTGREENCOMPONENTBLUECOMPONENT 三者之一。否则该返回数组表示一个查找表,在理论上,其输入分量值范围是 [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 的分量: REDCOMPONENTGREENCOMPONENTBLUECOMPONENT
返回:
表示 TRC 的 short 数组。
抛出:
ProfileDataException - 如果配置文件没有将相应的 TRC 指定为一个表。