モジュール java.desktop
パッケージ java.awt.color

クラスColorSpace

  • すべての実装されたインタフェース:
    Serializable
    直系の既知のサブクラス:
    ICC_ColorSpace

    public abstract class ColorSpace
    extends Object
    implements Serializable
    この抽象クラスは、Colorオブジェクトの特定のカラー・スペース、またはColorModelオブジェクトを介して、Image、BufferedImage、またはGraphicsDeviceの特定のカラー・スペースを識別するためにカラー・スペース・タグとして機能します。 このクラスには、特定のカラー・スペースとsRGB、および特定のカラー・スペースと明確に定義されたCIEXYZカラー・スペースの間でカラーを変換するメソッドがあります。

    このクラスのメソッドでは、カラーは色成分の配列として表されます。色成分は、ColorSpaceごとに標準化された色成分の範囲のfloatとして表されます。 色成分の範囲は、多くのColorSpace (sRGBなど)では0.0 - 1.0です。 しかしながら、一部のColorSpaceでは別の範囲が定義されていることもあります。 標準化された値の最小値と最大値は、成分ごとに用意されているメソッドを使用して照会できます。

    カラー・スペース・タイプ(TYPE_RGB、TYPE_XYZなど)を表すため、および特定のカラー・スペース(CS_sRGBおよびCS_CIEXYZなど)を表すために、いくつかの変数が定義されています。sRGBは、検討中の標準RGBカラー・スペースです。 詳細は、http://www.w3.org/pub/WWW/Graphics/Color/sRGB.htmlを参照してください。

    明確に定義されたCIEXYZカラー・スペースとの間で変換を行うメソッドの目的は、2つのカラー・スペースの間で高精度の変換をサポートすることです。 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_ColorSpace直列化された形式
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      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
      http://www.w3.org/pub/WWW/Graphics/Color/sRGB.htmlで定義されている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
      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)
      特定の定義済みカラー・スペースの1つを表す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)
        特定の定義済みカラー・スペースの1つを表すColorSpaceを返します。
        パラメータ:
        colorspace - 定義済みクラス定数(CS_sRGB、CS_LINEAR_RGB、CS_CIEXYZ、CS_GRAY、CS_PYCCなど)のいずれかで識別される特定のカラー・スペース
        戻り値:
        要求されたColorSpaceオブジェクト
      • isCS_sRGB

        public boolean isCS_sRGB()
        ColorSpaceがCS_sRGBの場合にtrueを返します。
        戻り値:
        これがCS_sRGBカラー・スペースである場合はtrue、そうでない場合はfalse
      • toRGB

        public abstract float[] toRGB​(float[] colorvalue)
        このColorSpaceにあると考えられるカラー値をデフォルトのCS_sRGBカラー・スペースの値に変換します。

        このメソッドでは、入力と出力の色がもっとも知覚的に近い色を作成できるように設計されたアルゴリズムを使って、カラー値を変換します。 カラー値の比色変換を実行するには、最初にこのカラー・スペースのtoCIEXYZメソッドを使用して入力カラー・スペースからCS_CIEXYZカラー・スペースに変換し、次にCS_sRGBカラー・スペースのfromCIEXYZメソッドを使用してCS_CIEXYZから出力カラー・スペースに変換するようにしてください。 詳細は、toCIEXYZおよびfromCIEXYZを参照してください。

        パラメータ:
        colorvalue - 少なくともこのColorSpace内の成分の数の長さを持つfloat配列
        戻り値:
        長さが3のfloat配列
        例外:
        ArrayIndexOutOfBoundsException - 配列の長さがこのColorSpace内の成分の数に満たない場合
      • fromRGB

        public abstract float[] fromRGB​(float[] rgbvalue)
        デフォルトのCS_sRGBカラー・スペースにあると考えられるカラー値をこのColorSpaceに変換します。

        このメソッドでは、入力と出力の色がもっとも知覚的に近い色を作成できるように設計されたアルゴリズムを使って、カラー値を変換します。 カラー値の比色変換を実行するには、最初にCS_sRGBカラー・スペースのtoCIEXYZメソッドを使用して入力カラー・スペースからCS_CIEXYZカラー・スペースに変換し、次にこのカラー・スペースのfromCIEXYZメソッドを使用してCS_CIEXYZから出力カラー・スペースに変換するようにしてください。 詳細は、toCIEXYZおよびfromCIEXYZを参照してください。

        パラメータ:
        rgbvalue - 少なくとも3の長さを持つfloat配列
        戻り値:
        このColorSpaceの成分数と同じ長さのfloat配列
        例外:
        ArrayIndexOutOfBoundsException - 配列の長さが3に満たない場合
      • toCIEXYZ

        public abstract float[] toCIEXYZ​(float[] colorvalue)
        このColorSpaceにあると考えられるカラー値をCS_CIEXYZ変換カラー・スペースに変換します。

        このメソッドは、International Color Consortium基準で定義されている相対色度測定を使ってカラー値を変換します。 すなわち、このメソッドが返すXYZの値はCS_CIEXYZカラー・スペースのD50白点を基準にして表示されます。 この表現は、入力カラー・スペースからCS_CIEXYZ領域へ、次に出力カラー・スペースに変換される、2ステップのカラー変換処理において便利です。 この表現は、指定されたカラー値から色度計を使って測定するXYZ値と同じではありません。 現在CIE推奨の計算方法を使って測定されているXYZ値を計算するには、さらに詳細な変換が必要です。 詳細は、ICC_ColorSpacetoCIEXYZメソッドを参照してください。

        パラメータ:
        colorvalue - 少なくともこのColorSpace内の成分の数の長さを持つfloat配列
        戻り値:
        長さが3のfloat配列
        例外:
        ArrayIndexOutOfBoundsException - 配列の長さがこのColorSpace内の成分の数に満たない場合。
      • fromCIEXYZ

        public abstract float[] fromCIEXYZ​(float[] colorvalue)
        CS_CIEXYZ変換カラー・スペースにあると考えられるカラー値をこのColorSpaceに変換します。

        このメソッドは、International Color Consortium基準で定義されている相対色度測定を使ってカラー値を変換します。 すなわち、このメソッドがとるXYZの引数値はCS_CIEXYZカラー・スペースのD50白点を基準にして表示されます。 この表現は、入力カラー・スペースからCS_CIEXYZ領域へ、次に出力カラー・スペースに変換される、2ステップのカラー変換処理において便利です。 このメソッドが返すカラー値は、色度計で測定するときにメソッドに渡されるXYZ値を生成するカラー値ではありません。 現在CIE推奨の計算方法を使った測定値に対応するXYZ値を計算済みの場合は、その値がこのメソッドに渡される前にD50相対値に変換する必要があります。 詳細は、ICC_ColorSpacefromCIEXYZメソッドを参照してください。

        パラメータ:
        colorvalue - 少なくとも3の長さを持つfloat配列
        戻り値:
        このColorSpaceの成分数と同じ長さのfloat配列
        例外:
        ArrayIndexOutOfBoundsException - 配列の長さが3に満たない場合
      • getType

        public int getType()
        このColorSpaceのカラー・スペース・タイプ(TYPE_RGB、TYPE_XYZなど)を返します。 タイプはカラー・スペースの成分数およびその解釈を定義します。たとえば、TYPE_RGBは3つの成分(赤、緑、および青)を持つカラー・スペースを識別します。 領域の特定の色の特性(原色の色度など)は定義されません。
        戻り値:
        この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 - 成分が0より小さいか、またはnumComponents - 1より大きい場合
        導入されたバージョン:
        1.4