web-dev-qa-db-ja.com

48ビットカラー?

特にX11関連のもの(Xリソース、Roxtermテーマなど)では、48ビットの数値として指定された色がよく見られます。#2e2e34343636#cccc00000000通常の24ビットの代わりに#2e3436および#cc0000。余分なビットは何に使用されますか?

4
user1686

Xlibのドキュメントの「Colorstrings」で答えを見つけました。 Xlibは実際には色に16ビットRGB値を使用しているようです。

RGBデバイス文字列仕様

[...] RGBデバイスの古い構文がサポートされていますが、継続して使用することはお勧めしません。構文は、次のいずれかの形式の最初のシャープ記号文字とそれに続く数値指定です。

#RGB          (4 bits each)
#RRGGBB       (8 bits each)
#RRRGGGBBB    (12 bits each)
#RRRRGGGGBBBB (16 bits each)

R、G、およびBは、1桁の16進数を表します。それぞれ16ビット未満が指定されている場合、それらは値の最上位ビットを表します(値がスケーリングされる「rgb:」構文とは異なります)。たとえば、文字列「#3a7」は「#3000a0007000」。

2
user1686

X11でのそれらの使用について話すことはできませんが、一般的には、ビット深度とアルファチャネルが少ない場合には生成できない追加のカラー値です。

1
Hasaan Chop

あなたが与えた例から、24ビット値が単に繰り返されているのでそれらはまったく使用されていません(「ウェブセーフ」色を表すために3つの16進文字のみを使用する慣行に少し似ているので、#c00は#cc0000または204と同じ意味です、0,0、#cccc00000000に拡張)。

32ビット値は通常、アルファチャネル(透明度)の最後のバイトを使用します。 48ビットの値が色ごとに独立したアルファを持つ24ビットの色を使用している可能性があると思いますが、あなたが提供する例はこれをサポートしていません。

1
AdamV