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;
XQueryColor と XQueryColors はエラー BadColor, BadValue を起こすことがある。
XLookupColor は指定したカラーマップに対応するスクリーンで色の名前を調べる。 この関数は指定したカラーマップのタイプについて、正確な色の値とスクリー ンが提供する最も近い値の両方を返す。 色の名前のエンコーディングがホストポータブル文字エンコーディングでない 場合の結果は実装依存である。 大文字や小文字の使用は問題ない。 XLookupColor は色の名前が解決できれば 0 でない値を返し、そうでない場合は 0 を返す。
関数 XParseColor は指定したカラーマップに対応するスクリーンに関して色の名前を調べる。 この関数は正確な色の値を返す。 色の名前のエンコーディングがホストポータブル文字エンコーディングでなかっ た場合、実行結果は実装依存である。 大文字や小文字の使用は問題ない。 XParseColor は色の解決ができれば 0 でない値を返し、できなければ 0 を返す。
XLookupColor と XParseColor はエラー BadColor を起こすことがある。
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'' の後に正か負の符号(これは無くても よい)と数字を表す文字列を続けた対数部分(無くてもよい)から構成される。