模块 java.desktop

类 ColorSpace

java.lang.Object
java.awt.color.ColorSpace
所有已实现的接口:
Serializable
已知子类:
ICC_ColorSpace

public abstract class ColorSpace extends Object implements Serializable
此抽象类用作颜色空间标签,以识别 Color 对象或通过 ColorModel 对象识别 ImageBufferedImageGraphicsDevice 的特定颜色空间。它包含将特定颜色空间中的颜色与 sRGB 和定义明确的 CIEXYZ 颜色空间相互转换的方法。

出于此类中方法的目的,颜色表示为颜色组件数组,表示为每个 ColorSpace 定义的标准化范围内的浮点数。对于许多 ColorSpaces(例如 sRGB),此范围为 0.0 到 1.0。但是,某些 ColorSpaces 具有值具有不同范围的组件。提供了查询每个组件最小和最大归一化值的方法。

为了引用颜色空间类型(例如 TYPE_RGBTYPE_XYZ 等)和引用特定颜色空间(例如 CS_sRGBCS_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).

 
参见:
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    static final int
    上面定义的内置 CIEXYZ 转换颜色空间。
    static final int
    内置线性灰度色彩空间。
    static final int
    内置线性RGB色彩空间。
    static final int
    内置 Photo YCC 转换色彩空间。
    static final int
    http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html 定义的内置 sRGB 色彩空间。
    static final int
    通用 2 组件颜色空间。
    static final int
    通用 3 组件颜色空间。
    static final int
    通用 4 组件颜色空间。
    static final int
    通用 5 组件颜色空间。
    static final int
    通用 6 组件颜色空间。
    static final int
    通用 7 组件颜色空间。
    static final int
    通用 8 组件颜色空间。
    static final int
    通用 9 组件颜色空间。
    static final int
    通用 10 组件颜色空间。
    static final int
    通用 11 组件颜色空间。
    static final int
    通用 12 组件颜色空间。
    static final int
    任何 CMY 色彩空间系列。
    static final int
    任何 CMYK 色彩空间系列。
    static final int
    通用 13 组件颜色空间。
    static final int
    通用 14 组件颜色空间。
    static final int
    通用 15 组件颜色空间。
    static final int
    GRAY 颜色空间系列中的任何一种。
    static final int
    任何 HLS 颜色空间系列。
    static final int
    任何 HSV 颜色空间系列。
    static final int
    任何 Lab 颜色空间系列。
    static final int
    任何 Luv 颜色空间系列。
    static final int
    任何 RGB 颜色空间系列。
    static final int
    XYZ 颜色空间系列中的任何一种。
    static final int
    YCbCr 颜色空间系列中的任何一种。
    static final int
    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 cspace)
    返回代表特定预定义颜色空间之一的 ColorSpace
    float
    getMaxValue(int component)
    返回指定组件的最大标准化颜色组件值。
    float
    getMinValue(int component)
    返回指定组件的最小标准化颜色组件值。
    getName(int component)
    返回给定组件索引的组件名称。
    int
    返回此 ColorSpace 的组件数。
    int
    返回此 ColorSpace 的颜色空间类型(例如 TYPE_RGBTYPE_XYZ、...)。
    boolean
    如果 ColorSpaceCS_sRGB 则返回真。
    abstract float[]
    toCIEXYZ(float[] colorvalue)
    将假定在此 ColorSpace 中的颜色值转换为 CS_CIEXYZ 转换颜色空间。
    abstract float[]
    toRGB(float[] colorvalue)
    将假定在此 ColorSpace 中的颜色值转换为默认 CS_sRGB 颜色空间中的值。

    在类 java.lang.Object 中声明的方法

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 字段详细信息

    • TYPE_XYZ

      @Native public static final int TYPE_XYZ
      XYZ 颜色空间系列中的任何一种。
      参见:
    • TYPE_Lab

      @Native public static final int TYPE_Lab
      任何 Lab 颜色空间系列。
      参见:
    • TYPE_Luv

      @Native public static final int TYPE_Luv
      任何 Luv 颜色空间系列。
      参见:
    • TYPE_YCbCr

      @Native public static final int TYPE_YCbCr
      YCbCr 颜色空间系列中的任何一种。
      参见:
    • TYPE_Yxy

      @Native public static final int TYPE_Yxy
      Yxy 颜色空间系列中的任何一种。
      参见:
    • TYPE_RGB

      @Native public static final int TYPE_RGB
      任何 RGB 颜色空间系列。
      参见:
    • TYPE_GRAY

      @Native public static final int TYPE_GRAY
      GRAY 颜色空间系列中的任何一种。
      参见:
    • TYPE_HSV

      @Native public static final int TYPE_HSV
      任何 HSV 颜色空间系列。
      参见:
    • TYPE_HLS

      @Native public static final int TYPE_HLS
      任何 HLS 颜色空间系列。
      参见:
    • TYPE_CMYK

      @Native public static final int TYPE_CMYK
      任何 CMYK 色彩空间系列。
      参见:
    • TYPE_CMY

      @Native public static final int TYPE_CMY
      任何 CMY 色彩空间系列。
      参见:
    • TYPE_2CLR

      @Native public static final int TYPE_2CLR
      通用 2 组件颜色空间。
      参见:
    • TYPE_3CLR

      @Native public static final int TYPE_3CLR
      通用 3 组件颜色空间。
      参见:
    • TYPE_4CLR

      @Native public static final int TYPE_4CLR
      通用 4 组件颜色空间。
      参见:
    • TYPE_5CLR

      @Native public static final int TYPE_5CLR
      通用 5 组件颜色空间。
      参见:
    • TYPE_6CLR

      @Native public static final int TYPE_6CLR
      通用 6 组件颜色空间。
      参见:
    • TYPE_7CLR

      @Native public static final int TYPE_7CLR
      通用 7 组件颜色空间。
      参见:
    • TYPE_8CLR

      @Native public static final int TYPE_8CLR
      通用 8 组件颜色空间。
      参见:
    • TYPE_9CLR

      @Native public static final int TYPE_9CLR
      通用 9 组件颜色空间。
      参见:
    • TYPE_ACLR

      @Native public static final int TYPE_ACLR
      通用 10 组件颜色空间。
      参见:
    • TYPE_BCLR

      @Native public static final int TYPE_BCLR
      通用 11 组件颜色空间。
      参见:
    • TYPE_CCLR

      @Native public static final int TYPE_CCLR
      通用 12 组件颜色空间。
      参见:
    • TYPE_DCLR

      @Native public static final int TYPE_DCLR
      通用 13 组件颜色空间。
      参见:
    • TYPE_ECLR

      @Native public static final int TYPE_ECLR
      通用 14 组件颜色空间。
      参见:
    • TYPE_FCLR

      @Native public static final int TYPE_FCLR
      通用 15 组件颜色空间。
      参见:
    • CS_sRGB

      @Native public static final int CS_sRGB
      http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html 定义的内置 sRGB 色彩空间。
      参见:
    • CS_LINEAR_RGB

      @Native public static final int CS_LINEAR_RGB
      内置线性RGB色彩空间。此空间基于与 CS_sRGB 相同的 RGB 原色,但具有线性色调再现曲线。
      参见:
    • CS_CIEXYZ

      @Native public static final int CS_CIEXYZ
      上面定义的内置 CIEXYZ 转换颜色空间。
      参见:
    • CS_PYCC

      @Native public static final int CS_PYCC
      内置 Photo YCC 转换色彩空间。
      参见:
    • CS_GRAY

      @Native public static final int CS_GRAY
      内置线性灰度色彩空间。
      参见:
  • 构造方法详细信息

    • ColorSpace

      protected ColorSpace(int type, int numComponents)
      构造一个给定颜色空间类型和组件数的ColorSpace对象。
      参数:
      type - ColorSpace 类型常量之一
      numComponents - 颜色空间中的组件数
  • 方法详情

    • getInstance

      public static ColorSpace  getInstance(int cspace)
      返回代表特定预定义颜色空间之一的 ColorSpace
      参数:
      cspace - 由预定义类常量之一标识的特定颜色空间(例如 CS_sRGBCS_LINEAR_RGBCS_CIEXYZCS_GRAYCS_PYCC
      返回:
      请求的 ColorSpace 对象
    • isCS_sRGB

      public boolean isCS_sRGB()
      如果 ColorSpaceCS_sRGB 则返回真。
      返回:
      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 - 一个浮点数组,其长度至少为该 ColorSpace 中的组件数
      返回:
      长度为 3 的浮点数组
      抛出:
      ArrayIndexOutOfBoundsException - 如果数组长度不至少是这个 ColorSpace 中的组件数
    • fromRGB

      public abstract float[] fromRGB(float[] rgbvalue)
      将假设在默认 CS_sRGB 颜色空间中的颜色值转换为此 ColorSpace

      此方法使用旨在在输入和输出颜色之间产生最佳感知匹配的算法来转换颜色值。为了对颜色值进行比色转换,应该使用CS_sRGB颜色空间的toCIEXYZ方法先从输入颜色空间转换到CS_CIEXYZ颜色空间,然后使用这个颜色空间的fromCIEXYZ方法从CS_CIEXYZ转换到输出色彩空间。有关详细信息,请参阅 toCIEXYZ fromCIEXYZ

      参数:
      rgbvalue - 长度至少为 3 的浮点数组
      返回:
      长度等于此 ColorSpace 中的组件数的浮点数组
      抛出:
      ArrayIndexOutOfBoundsException - 如果数组长度不至少为 3
    • toCIEXYZ

      public abstract float[] toCIEXYZ(float[] colorvalue)
      将假定在此 ColorSpace 中的颜色值转换为 CS_CIEXYZ 转换颜色空间。

      此方法使用国际色彩联盟标准定义的相对比色法转换颜色值。这意味着此方法返回的 XYZ 值是相对于 CS_CIEXYZ 颜色空间的 D50 白点表示的。此表示在两步颜色转换过程中很有用,在该过程中,颜色从输入颜色空间转换为 CS_CIEXYZ,然后转换为输出颜色空间。此表示与色度计根据给定颜色值测量的 XYZ 值不同。需要进一步转换来计算将使用当前 CIE 推荐做法测量的 XYZ 值。有关详细信息,请参阅 ICC_ColorSpacetoCIEXYZ 方法。

      参数:
      colorvalue - 一个浮点数组,其长度至少为该 ColorSpace 中的组件数
      返回:
      长度为 3 的浮点数组
      抛出:
      ArrayIndexOutOfBoundsException - 如果数组长度不至少是此 ColorSpace 中的组件数。
    • fromCIEXYZ

      public abstract float[] fromCIEXYZ(float[] colorvalue)
      将假设位于 CS_CIEXYZ 转换颜色空间中的颜色值转换为此 ColorSpace

      此方法使用国际色彩联盟标准定义的相对比色法转换颜色值。这意味着此方法采用的 XYZ 参数值是相对于 CS_CIEXYZ 颜色空间的 D50 白点表示的。此表示在两步颜色转换过程中很有用,在该过程中,颜色从输入颜色空间转换为 CS_CIEXYZ,然后转换为输出颜色空间。此方法返回的颜色值不是那些在用色度计测量时会产生传递给该方法的 XYZ 值的颜色值。如果您的 XYZ 值对应于使用当前 CIE 推荐做法进行的测量,则必须将它们转换为 D50 相对值,然后再传递给此方法。有关详细信息,请参阅 ICC_ColorSpacefromCIEXYZ 方法。

      参数:
      colorvalue - 长度至少为 3 的浮点数组
      返回:
      长度等于此 ColorSpace 中的组件数的浮点数组
      抛出:
      ArrayIndexOutOfBoundsException - 如果数组长度不至少为 3
    • getType

      public int getType()
      返回此 ColorSpace 的颜色空间类型(例如 TYPE_RGBTYPE_XYZ、...)。该类型定义了颜色空间的组件数量和解释,例如TYPE_RGB 标识了具有三个组件的颜色空间——红色、绿色和蓝色。它没有定义空间的特定颜色特征,例如原色的色度。
      返回:
      表示此 ColorSpace 类型的类型常量
    • getNumComponents

      public int getNumComponents()
      返回此 ColorSpace 的组件数。
      返回:
      这个 ColorSpace 中的组件数量
    • getName

      public String  getName(int component)
      返回给定组件索引的组件名称。
      参数:
      component - 组件索引
      返回:
      指定索引处的组件名称
      抛出:
      IllegalArgumentException - 如果 component 小于 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 - 如果组件小于 0 或大于 numComponents - 1
      自从:
      1.4