68user's page 掲示板

Prev< No. 1112> Next  [最新発言に戻る] [過去ログ一覧]
No. 1112 # gongo [E-mail] 2000/08/23 (水) 19:30:47
@68user様
カラーマップの内容を知るための例みたいなのが本に載っていたので
試してみました。以下のtmp[k]はXColor構造体です。
尚、この例はRGB各32階調カラーマップのカラーセル内の表示色値を得る
といったものだそうです。

-----------------------------------------------------------------------------
    cmap = DefaultColormap(dummy_dpy,dummy_screen);

    for(k=0; k<32; k++)
        {
            tmp[k].pixel = k | k << 5 | k << 10;
            tmp[k].pad = 0;
            tmp[k].flags = DoRed | DoGreen | DoBlue;
            XQueryColor(dummy_dpy,cmap,&tmp[k]);
        }
-----------------------------------------------------------------------------

で、結果的に

-----------------------------------------------------------------------------
Red=0 Green=0 Blue=0 Pixel=0
Red=2114 Green=2114 Blue=2114 Pixel=1057
Red=4228 Green=4228 Blue=4228 Pixel=2114
Red=6342 Green=6342 Blue=6342 Pixel=3171
〜省略〜
Red=61306 Green=61306 Blue=61306 Pixel=30653
Red=63420 Green=63420 Blue=63420 Pixel=31710
Red=65535 Green=65535 Blue=65535 Pixel=32767
-----------------------------------------------------------------------------

といったようにPixel値が32767まできました。
ということは私の環境では 32*32*32=32768色 が
カラーマップにエントリされているようです。
実際 Red=61306 Green=4228 Blue=6342 などのように
色を指定したところ、XAllocColorを通してもRGB値が
変化しませんでした。

TrueColorということでカラーマップを書き換えられないので
この範囲内でうまくやりくりするしかないのでしょうか・・・。
XCreateColormap と XInstallColormap について
本を見てみましたが、まだよくわかりません。

Prev< No. 1112> Next  [最新発言に戻る] [過去ログ一覧]