11

Visual Studio テーマに基づいて Sublime テキスト用に独自の配色を作成しています。

Visual Studio テーマにはフォアグラウンドとバックグラウンドが定義されていますが、標準の RGB トリプレットにはありません。この数値が何を意味するのかわかりません。Sublime Text で使用するために、どのように RGB トリプレット (つまり #FFFFFF) に変換できるのか疑問に思っていました。

サンプル:

<Item Name="Comment" Foreground="0x007B7466" Background="0x02000000" BoldFont="No"/>
<Item Name="Plain Text" Foreground="0x00F3F2F1" Background="0x002A2822" BoldFont="No"/>
<Item Name="Selected Text" Foreground="0x00FFFFFF" Background="0x0064614F" BoldFont="No"/>

こことグーグルで検索してみましたが、正しい答えを見つけるために正しい検索用語を取得できないようです。

4

3 に答える 3

19

参考までに、vsettings ファイルは RGB ではなく BGR を使用します

于 2011-12-29T21:34:13.897 に答える
5

これらは一見すると (MS がどのように色を処理するのが好きかについての知識があれば)、16 進形式の ARGB または XRGB DWORD のように見えます。ただし、実行内容によっては、A/XBGR である可能性があります。

ほとんどの場合、最初の 2 文字はアルファで、次に赤、緑、青です。これは、メモリ レジスタにきちんと収まり、いくつかの形式のテクスチャ データと一致するため、色を配置するかなり標準的な方法です。

ただし、一部の場所では、他のテクスチャ形式と一致するように逆にすることを好みます。A/X は最初のままで、次に青、緑、赤です。

これは、0x00FF0000 を指定することで簡単にテストできます。青ならBGR、赤ならRGB。

最初のチャネル/バイトをアルファ以外のものとして使用している可能性があります。3 チャネル テクスチャのアルファ チャネルにデータをパックすることは珍しくありません。ただし、色の 1 つだけが 0x02 です...、残りはすべて 0x00 です...、私はこれが起こっていません (そこには 3.5 バイトの色もあるので、おそらくタイプミスです)。

これらはすでに16進数であるため、これらを変換する必要はありません(実際のコードは16進数であり、#...Webのものではありません)。Web hex トリプレットを「変換」するには、# を削除して先頭に追加するだけで問題0x00ありません。他のすべての文字は同じままです (プロシージャとして大文字を好む人もいますが、大文字と小文字は関係ありません)。

于 2011-11-04T05:47:05.423 に答える