Meilleur moyen de représenter une couleur dans une Base de données SQL?
Si je suis à l'aide .Net et SQL Server 2008, quelle est la meilleure façon pour moi de stocker une couleur dans la base de données, dois-je utiliser ToString ou de convertir un nombre entier, ou quelque chose d'autre?
Edit:
Tout ce que je veux de la couleur est d'être en mesure de le récupérer et de dessiner quelque chose sur l'écran dans la couleur désirée. Je n'ai pas besoin d'être capable de faire une requête contre elle.
OriginalL'auteur Colin Desmond | 2009-09-10
Vous devez vous connecter pour publier un commentaire.
Comment sont les couleurs stockée nativement?
Si vous êtes juste en utilisant 0xRRGGBB format, vous pouvez ainsi stocker un nombre entier dans la base de données, et re-hexify quand vous
SELECT
(pour des raisons de lisibilité).OriginalL'auteur Mark Rushakoff
Comment stocker des informations dans une base de données dépend de la façon dont vous avez l'intention d'utilisation et d'accès. Il n'y a pas de dire quelle est la meilleure façon de le stocker, c'est sans savoir comment vous allez l'utiliser.
+1, bien sûr, comme avec aucun de données. Une requête qui recherche pour toutes les pixels avec
green
entre 0x40 et 0x50 bénéficieraient de stockage séparées, R, G et B composants (indexé chaque). Celui qui demande la "transparence des pixels en 1 milliards. enregistrements aurait besoin de l'Un canal distinct. Ou certaines requêtes demander de "Luminosité" et du besoin de HSV/HSL format.OriginalL'auteur Steve Kass
La couleur peut être étonnamment difficile sur certaines industries comme les appareils photo numériques, l'édition de bureau, sanners et d'autres. La plupart des programmeurs associer les couleurs avec la couleur 24 bits (RVB en général), certains associés avec le 32 bits (RGBA). Les quelques-uns qui travaillent dans des industries comme le DTP qui font un usage intensif de la couleur ont un jeu plus riche de termes qui comprend la correction des couleurs, espace de couleur et ainsi de suite et ainsi de suite. Qu'est-ce exactement avez-vous besoin pour stocker?
OriginalL'auteur Remus Rusanu
Si vous êtes le stockage de la
System.Drawing.Color
, vous avez besoin de stocker 4 octets qui représentent l'alpha et l'3 canaux de couleur. Vous pouvez utiliser unint
type de données.Si vous êtes le stockage de la
System.Windows.Media.Color
(à partir de WPF), il existe deux possibilités en fonction de l'utilisation que vous utilisez:int
type de données.OriginalL'auteur Pierre-Alain Vigeant
Eh bien, je serais de les stocker sous forme de six chiffres des codes hex. Qui ouvre la possibilité intéressante de fait la recherche pour les couleurs entre d'autres couleurs. Si vous voulez vraiment rendre puissante, garder le R, G, B les nombres hexadécimaux en trois colonnes. Qui vous permet de trouver les couleurs qui contiennent tellement de rouge, ou de celles qui sont similaires à une autre couleur (par différence moyenne des trois valeurs).
OriginalL'auteur Sudhir Jonathan
Dépend le type de couleur que vous souhaitez stocker. Par exemple. si c'est à partir d'une palette fixe ensuite un short int ou même un octet non signé peut être suffisant.
3 octets RVB ou 4 octets ARGB (A=alpha, c'est à dire. la transparence) pourrait s'appliquer en 32 bits, donc un 32 bits entier non signé de type de travail. C'est la norme pour la plupart des applications.
Toutefois, vous souhaiterez peut-plus - dans ce cas, un 64 bits entier non signé peut être nécessaire.
Alternativement, si vous souhaitez modifier la requête ou de la couleur en fonction de ses composants, je voudrais stocker chaque composant ses propres unsigned int (ie. Rouge, Vert, Bleu, Alpha).
OriginalL'auteur winwaed