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

クラスColorSpace

java.lang.Object
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カラー・スペースの値に変換します。

    クラス java.lang.Objectで宣言されたメソッド

    cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • フィールド詳細

  • コンストラクタの詳細

    • 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