Module  java.desktop
软件包  java.awt.color

Class ICC_ProfileRGB

  • All Implemented Interfaces:
    Serializable


    public class ICC_ProfileRGB
    extends ICC_Profile
    ICC_ProfileRGB类是ICC_Profile类的子类,表示符合以下条件的配置文件:
    • 配置文件的颜色空间类型为RGB。
    • 该配置文件包含redColorantTaggreenColorantTagblueColorantTagredTRCTaggreenTRCTagblueTRCTag ,并mediaWhitePointTag标签。
    当满足这些条件时, ICC_Profile getInstance方法将返回一个ICC_ProfileRGB对象。 三组件,基于矩阵的输入配置文件和RGB显示配置文件是这种类型配置文件的示例。

    此配置文件类提供了颜色转换矩阵和查找表,Java或本机方法可以在某些情况下直接使用颜色转换来优化颜色转换。

    要从设备配置文件颜色空间转换到CIEXYZ配置文件连接空间,每个设备颜色组件首先通过相应的色调再现曲线(TRC)的查找进行线性化。 所得到的线性RGB分量使用由RGB着色剂构成的3×3矩阵转换为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 _] 
    通过将PCS XYZ分量转换为上述3×3矩阵的逆的线性RGB分量,然后通过反向TRC将线性RGB转换为设备RGB来执行逆变换。
    另请参见:
    Serialized Form
    • 字段详细信息

      • REDCOMPONENT

        public static final int REDCOMPONENT
        用于获得红色分量的伽马值或TRC。
        另请参见:
        Constant Field Values
      • GREENCOMPONENT

        public static final int GREENCOMPONENT
        用于获取绿色组件的伽马值或TRC。
        另请参见:
        Constant Field Values
      • BLUECOMPONENT

        public static final int BLUECOMPONENT
        用于获取蓝色分量的伽马值或TRC。
        另请参见:
        Constant Field Values
    • 方法详细信息

      • getMediaWhitePoint

        public float[] getMediaWhitePoint​()
        返回一个数组,其中包含配置文件的组件 mediaWhitePointTag
        结果
        一个包含配置文件 mediaWhitePointTag的x,y和z组件的3元素 float数组。
      • getMatrix

        public float[][] getMatrix​()
        返回一个3x3 float矩阵从X,Y构造和配置文件的Z分量redColorantTaggreenColorantTag ,并blueColorantTag

        该矩阵可用于轮廓的正向颜色变换 - 从轮廓颜色空间到CIEXYZ PCS。

        结果
        的3×3 float阵列包含x,y和配置文件的的z分量 redColorantTaggreenColorantTag ,和 blueColorantTag
      • getGamma

        public float getGamma​(int component)
        返回表示特定组件的色调再现曲线(TRC)的伽马值。 组件参数必须是REDCOMPONENT,GREENCOMPONENT或BLUECOMPONENT之一。

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

                                                    gamma
                  linearComponent = deviceComponent 
        参数
        component - 表示要检索其TRC的组件的 ICC_ProfileRGB常量
        结果
        伽马值为浮点数。
        异常
        ProfileDataException - 如果配置文件没有将相应的TRC指定为单个伽玛值。
      • getTRC

        public short[] getTRC​(int component)
        将特定组件的TRC作为数组返回。 组件必须是REDCOMPONENTGREENCOMPONENT ,或BLUECOMPONENT 否则,返回的数组表示一个查找表,其中输入组件值在概念上在[0.0,1.0]的范围内。 值0.0映射到数组索引0,值1.0映射到数组索引长度-1。 可以使用插值来生成不精确映射到数组中的索引的输入值的输出值。 输出值也线性映射到范围[0.0,1.0]。 值0.0由数组值0x0000和值1.0由0xFFFF表示。 换句话说,即使这些值在short数组中返回,这些值也是无符号的short值。 如果配置文件已将相应的TRC指定为线性(gamma = 1.0)或简单的伽玛值,则此方法会引发异常。 在这种情况下,应使用getGamma(int)方法获取伽玛值。
        参数
        component -该 ICC_ProfileRGB常量,表示要检索其TRC的分量: REDCOMPONENTGREENCOMPONENT ,或 BLUECOMPONENT
        结果
        代表TRC的短阵列。
        异常
        ProfileDataException - 如果配置文件没有将相应的TRC指定为表。