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

クラスColorSpace

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

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

    このクラスのメソッド用に、色は、各ColorSpaceによって定義される正規化された範囲内で浮動小数として表される色コンポーネントの配列として表されます。 ColorSpaces (例: sRGB)の多くの場合、範囲は0.0から1.0です。 ただし、ColorSpacesの中には、異なる範囲の値を持つコンポーネントが含まれているものがあります。 標準化された値の最小値と最大値は、成分ごとに用意されているメソッドを使用して照会できます。

    カラー・スペースタイプ(e.g. TYPE_RGB, TYPE_XYZ, etc.)を参照する目的で定義された複数の変数で、特定のカラー・スペース(例: CS_sRGBおよびCS_CIEXYZ)を参照します。sRGBは、提案される標準のRGBカラー・スペースです。 詳細は、http://www.w3.org/pub/WWW/Graphics/Color/sRGB.htmlを参照してください。

    明確に定義されたCIEXYZカラー・スペースとの間で変換を行うメソッドの目的は、2つのカラー・スペースの間で高精度の変換をサポートすることです。 ColorSpace (e.g. 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_RGBTYPE_XYZ、...)のカラー・スペース・タイプを返します。
      boolean isCS_sRGB()
      ColorSpaceCS_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 - 事前定義されたクラス定数の1つで識別される特定のカラー・スペース(例: CS_sRGBCS_LINEAR_RGBCS_CIEXYZCS_GRAYCS_PYCC)
        戻り値:
        要求されたColorSpaceオブジェクト
      • isCS_sRGB

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

        public abstract float[] toRGB​(float[] colorvalue)
        ColorSpaceで想定された色の値をデフォルトのCS_sRGBカラー・スペースの値に変換します。

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

        パラメータ:
        colorvalue - 長さが少なくともこのColorSpaceのコンポーネント数である浮動小数配列
        戻り値:
        長さが3のfloat配列
        例外:
        ArrayIndexOutOfBoundsException - 配列の長さがこのColorSpace内のコンポーネントの数以上でない場合
      • fromRGB

        public abstract float[] fromRGB​(float[] rgbvalue)
        色の値をデフォルトのCS_sRGBカラー・スペースとみなし、このColorSpaceに変換します。

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

        パラメータ:
        rgbvalue - 少なくとも3の長さを持つfloat配列
        戻り値:
        このColorSpaceのコンポーネント数と長さが等しい浮動小数配列
        例外:
        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のコンポーネント数である浮動小数配列
        戻り値:
        長さが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のコンポーネント数と長さが等しい浮動小数配列
        例外:
        ArrayIndexOutOfBoundsException - 配列の長さが3に満たない場合
      • getType

        public int getType()
        このColorSpace (例: TYPE_RGBTYPE_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