模块  java.desktop
软件包  java.awt.color

Class ColorSpace

  • 实现的所有接口
    Serializable
    已知直接子类:
    ICC_ColorSpace

    public abstract class ColorSpace
    extends Object
    implements 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_ColorSpaceSerialized 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
      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颜色空间中的值。
    • 构造方法详细信息

      • ColorSpace

        protected ColorSpace​(int type,
                             int numcomponents)
        给定颜色空间类型和组件数量的ColorSpace对象。
        参数
        type - ColorSpace类型常量之一
        numcomponents - 颜色空间中的组件数
    • 方法详细信息

      • 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转换为输出颜色空间。 有关详细信息,请参阅toCIEXYZfromCIEXYZ

        参数
        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转换为输出颜色空间。 有关详细信息,请参阅toCIEXYZfromCIEXYZ

        参数
        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