XParseColor(3) 色の値を取得

Other Alias

XQueryColor, XQueryColors, XLookupColor

書式

XQueryColor(display, colormap, def_in_out)

      Display *display;

      Colormap colormap;

      XColor *def_in_out;

XQueryColors(display, colormap, defs_in_out, ncolors)

      Display *display;

      Colormap colormap;

      XColor defs_in_out[];

      int ncolors;

Status XLookupColor(display, colormap, color_name, exact_def_return, screen_def_return)

      Display *display;

      Colormap colormap;

      char *color_name;

      XColor *exact_def_return, *screen_def_return;

Status XParseColor(display, colormap, spec, exact_def_return)

        Display *display;

        Colormap colormap;

        char *spec;

        XColor *exact_def_return;

引き数

colormap
カラーマップを指定する。
color_name
色の名前を表す文字列(例えば red)を指定する。 この文字列に対応する色定義の構造体が返される。
def_in_out
構造体で指定されているピクセルに対する RGB 値を指定する。 また、その RGB 値が返される。
defs_in_out
構造体で指定されているピクセルに対する色定義の構造体の配列を指定する。 また、その配列が返される。
display
X サーバへの接続を指定する。
exact_def_return
正確な RGB 値が返される。
ncolors
色定義の配列内の XColor 構造体の数を指定する。
screen_def_return
ハードウェアが提供する最も近い RGB 値が返される。
spec
色の名前を表す文字列を指定する。 大文字と小文字は区別されない。
exact_def_return
後で利用できる正確な RGB 値が返される。 また、フラグ DoRed, DoGreen, DoBlue を設定する。

説明

関数 XQueryColor は XColor 構造体内のピクセルの現在の RGB 値を返し、また、フラグ DoRed, DoGreen, DoBlue を設定する。 関数 XQueryColors は XColor 構造体それぞれのピクセルに対する RGB 値を返し、構造体それぞれの DoRed, DoGreen, DoBlue フラグを設定する。

XQueryColor と XQueryColors はエラー BadColor, BadValue を起こすことがある。

XLookupColor は指定したカラーマップに対応するスクリーンで色の名前を調べる。 この関数は指定したカラーマップのタイプについて、正確な色の値とスクリー ンが提供する最も近い値の両方を返す。 色の名前のエンコーディングがホストポータブル文字エンコーディングでない 場合の結果は実装依存である。 大文字や小文字の使用は問題ない。 XLookupColor は色の名前が解決できれば 0 でない値を返し、そうでない場合は 0 を返す。

関数 XParseColor は指定したカラーマップに対応するスクリーンに関して色の名前を調べる。 この関数は正確な色の値を返す。 色の名前のエンコーディングがホストポータブル文字エンコーディングでなかっ た場合、実行結果は実装依存である。 大文字や小文字の使用は問題ない。 XParseColor は色の解決ができれば 0 でない値を返し、できなければ 0 を返す。

XLookupColor と XParseColor はエラー BadColor を起こすことがある。

色の名前

RGB デバイスの指定はプレフィックス``rgb:''によって識別され、以下で示す 記法に従う。

rgb:<red>/<green>/<blue>

    <red>, <green>, <blue> := h | hh | hhh | hhhh
    h := 16進数1桁 (大文字、小文字は関係ない)

h は4ビットの値、 hh は8ビットの値、 hhh は12ビットの値、 hhhh は16ビットの値をそれぞれ示す。

過去との互換性のために RGB デバイスの古い記法もサポートされているが、 これを使うことは勧められない。 記法は以下のフォーマットのいずれかであり、先頭のシャープ記号(#)の後に 数の指定を続けたものである。

#RGB                (各4ビット)
#RRGGBB             (各8ビット)
#RRRGGGBBB          (各12ビット)
#RRRRGGGGBBBB       (各16ビット)

R, G, B は16進数の1桁を表す。 RGBの各値に16ビットより小さい値が指定されたときは、これは値の最大桁を 表す(スケールが変えられる ``rgb:'' の記法と異なる)。 例えば、文字列 ``#3a7'' は ``#3000a0007000'' と同じである。

RGB 強度の指定はプレフィックス ``rgbi:'' で認識され、以下の記法に従う。

rgbi:<red>/<green>/<blue>


red, green, blue の値は 0.0 以上 1.0 以下の浮動小数点の値である。 これらの入力フォーマットは、符号(無くてもよい)、数値を表す文字列(小数 点を含んでも良い)、符号付き整数を伴う E あるいは e からなる指数部分(無 くてもよい)で構成される。

標準的なデバイス非依存の文字列指定の記法を以下に示す。

CIEXYZ:<X>/<Y>/<Z>
CIEuvY:<u>/<v>/<Y>
CIExyY:<x>/<y>/<Y>
CIELab:<L>/<a>/<b>
CIELuv:<L>/<u>/<v>
TekHVC:<H>/<V>/<C>


全ての値 (C, H, V, X, Y, Z, a, b, u, v, y, x) は浮動小数点値である。 これらの値の記法は、正あるいは負の符号(無くてもよい)、数字を表す文字列 (小数点を含んでよい)、``E'' か ``e'' の後に正か負の符号(これは無くても よい)と数字を表す文字列を続けた対数部分(無くてもよい)から構成される。

返り値

BadColor
引き数 Colormap の値が定義されている Colormap を指していない。
BadValue
指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対 して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。