xterm: #xxxxxxから0から255色変換 - どうやって?

xterm: #xxxxxxから0から255色変換 - どうやって?

次のように、ANSI拡張セットバックグラウンドシーケンスを使用して、255個のxterm-color(背景)をすべて印刷しました。 (0-255\033[48;5;%dmで置き換えます%d)以下のように#eee9bfviaを使用して.Xdefaults xtermウィンドウの色を設定しましたxrdb

XTerm*background: LemonChiffon2

#eee9bfGIMPカラーセレクタを使用して目視検査を行うときにANSIの色が一致しないのはなぜですか? xterm色域は0〜255までのみ適用されます。それでは、ここで何が起こっていますか? xtermはどのように#xxxxxx0から255に変換しますか? ANSIはこれにどのように適していますか?

import sys

bgn_marker = '\033[48;5;%dm '
fgn_marker = '\033[%dm'
end_marker = '\033[0m'

text = "11. hello, how are you - today is not a it;s d'ay"
space = ' ' * 40

def burp(bg):
    print '######################## %d ####################################' % bg
    for fg in range(30,38):
        print (bgn_marker + fgn_marker + text + space + end_marker) % (bg, fg)

(私が望むのは、vim / dmesgなどを使用するときに頻繁に表示されるANSI色を隠さないxtermに適した背景を選択することです。)

答え1

ANSIはこのプロセスで何の役割も果たしません。これ以外は一度もやったことはありません。便利なネーミング。 ANSIは、ほとんどの人が0から7まで番号を付ける8つのカラーセットを定義します。このスキームを16、88、256色に拡張すると便利同じタイプのインデックスでアドレス指定されるカラー値の配列を作成します。

Xサーバー(およびディスプレイ構成)が違いを生み出します。

xtermはリソースからまたはnameに間接的に16進値を取得し、rgb.txtXサーバーにR / G / B値に「近い」色を要求します。サーバーは色を大まかに推定でき、しばしばそうします。読み始めるのに良い場所は(適切に)xtermのソースコードです。AnsiColorの割り当て

追加資料:

関連情報