.Net と SQL Server 2008 を使用している場合、データベースに色を保存するための最良の方法は何ですか?
編集:
色から欲しいのは、それを取得して、指定された色で画面に何かを描画できることだけです。それに対してクエリを実行できる必要はありません。
.Net と SQL Server 2008 を使用している場合、データベースに色を保存するための最良の方法は何ですか?
編集:
色から欲しいのは、それを取得して、指定された色で画面に何かを描画できることだけです。それに対してクエリを実行できる必要はありません。
色はどのようにネイティブに保存されますか?
0xRRGGBB形式を使用している場合は、それを整数としてデータベースに格納し、SELECT
読みやすくするために再16進数化することもできます。
データベースに情報を格納する方法は、その使用方法とアクセス方法によって異なります。どのように使用するかを知らずに、どのように保管するのが最善の方法であるかは言うまでもありません。
デジタル カメラ、デスクトップ パブリッシング、サンナーなどの一部の業界では、色は驚くほど扱いにくいものです。ほとんどのプログラマーは色を 24 ビット色 (通常は RGB) と関連付けますが、32 ビット (RGBA) と関連付ける人もいます。色を多用する DTP のような業界で働く少数の人々は、色補正、色空間などを含むより豊富な用語のセットを持っています。では、具体的に何を保管する必要があるのでしょうか。
まあ、私はそれらを6桁の16進コードとして保存します。これにより、他の色の間で実際に色を検索するという興味深い可能性が開かれます。本当に強力にしたい場合は、R、G、B の 16 進数を 3 列に並べてください。これにより、赤を多く含む色や、別の色に似た色を見つけることができます (3 つの値の平均差で並べ替えます)。
保存したい色の種類によって大きく異なります。例えば。固定パレットからのものである場合は、短い int または unsigned バイトで十分な場合があります。
3 バイトの RGB または 4 バイトの ARGB (A=alpha、つまり透明度) は 32 ビットに収まる可能性があるため、32 ビットの符号なし整数型が機能します。これは、ほとんどのアプリケーションの標準です。ただし、それ以上の数が必要になる場合があります。その場合、64 ビットの符号なし整数が必要になることがあります。
または、コンポーネントに従って色を変更またはクエリする場合は、各コンポーネントを独自の unsigned int (つまり、赤、緑、青、アルファ フィールド) として保存します。