8

.Net と SQL Server 2008 を使用している場合、データベースに色を保存するための最良の方法は何ですか?

編集:

色から欲しいのは、それを取得して、指定された色で画面に何かを描画できることだけです。それに対してクエリを実行できる必要はありません。

4

6 に答える 6

16

色はどのようにネイティブに保存されますか?

0xRRGGBB形式を使用している場合は、それを整数としてデータベースに格納し、SELECT読みやすくするために再16進数化することもできます。

于 2009-09-10T16:55:10.410 に答える
11

データベースに情報を格納する方法は、その使用方法とアクセス方法によって異なります。どのように使用するかを知らずに、どのように保管するのが最善の方法であるかは言うまでもありません。

于 2009-09-10T17:04:45.763 に答える
6

デジタル カメラ、デスクトップ パブリッシング、サンナーなどの一部の業界では、色は驚くほど扱いにくいものです。ほとんどのプログラマーは色を 24 ビット色 (通常は RGB) と関連付けますが、32 ビット (RGBA) と関連付ける人もいます。色を多用する DTP のような業界で働く少数の人々は、色補正、色空間などを含むより豊富な用語のセットを持っています。では、具体的に何を保管する必要があるのでしょうか。

  • 変更されない単一の形式を保存する必要がありますか?
  • 複数のフォーマットを保存し、実際に保存されているフォーマットを知る必要がありますか ( RGB対 RGBA 対 CMY 対HSVなど) ? RGB のように単純に見えるものでも、実際にはAdob​​e RGBまたはsRGBであることに注意してください。
  • 色空間と補正を保存する必要がありますか? 多くの場合、RGB カラーは適切なカラー マネージメントなしでは意味をなさないことに注意してください。
  • 簡単なテキストの説明 (「赤」、「ライム」、「ティール」など) を保存する必要がありますか?
  • 「Web」カラー (つまり、RGB または RGBA を 16 進数として) を保存する必要がありますか?
于 2009-09-10T17:26:11.197 に答える
2

まあ、私はそれらを6桁の16進コードとして保存します。これにより、他の色の間で実際に色を検索するという興味深い可能性が開かれます。本当に強力にしたい場合は、R、G、B の 16 進数を 3 列に並べてください。これにより、赤を多く含む色や、別の色に似た色を見つけることができます (3 つの値の平均差で並べ替えます)。

于 2009-09-10T17:30:19.687 に答える
1

保存したい色の種類によって大きく異なります。例えば。固定パレットからのものである場合は、短い int または unsigned バイトで十分な場合があります。

3 バイトの RGB または 4 バイトの ARGB (A=​​alpha、つまり透明度) は 32 ビットに収まる可能性があるため、32 ビットの符号なし整数型が機能します。これは、ほとんどのアプリケーションの標準です。ただし、それ以上の数が必要になる場合があります。その場合、64 ビットの符号なし整数が必要になることがあります。

または、コンポーネントに従って色を変更またはクエリする場合は、各コンポーネントを独自の unsigned int (つまり、赤、緑、青、アルファ フィールド) として保存します。

于 2011-01-11T16:00:55.567 に答える