2010-01-26 7 views
1

Je le fais probablement à la dure, alors quel est le moyen le plus propre de convertir un pourcentage en une chaîne contenant une partie d'une valeur hexadécimale RVB?Pourcentage de la valeur de couleur hexadécimale

C'est ce que j'ai:

//dealing with small percentages, need to magnify the color differences. 
double increaseVisibilityFactor = 5;  

double percent = someDouble/someOtherDouble; 
double redLightenAmount = 1 - (percent * increaseVisibilityFactor); 
if (percent > 0 && redLightenAmount < 0) { redLightenAmount = 0; } //overflow 

int increaseWhiteBy = (int)(redLightenAmount * 0xFF); 

string hexColor = increaseWhiteBy.ToString("X"); 
if (hexColor.Length < 2) { hexColor = "0" + hexColor; } 
hexColor = "FF" + hexColor + hexColor; 

Certaines des lignes ci-dessus pourraient évidemment être combinées (par exemple la conversion en int et string) mais je me demande s'il y a des failles ou un meilleur ensemble façon de faire cela?

Répondre

1

Oui, qui peut être fait plus facile:

string hexcolor = string.Format("FF{0:X2}{0:X2}", increaseWhiteBy); 
+0

Connaissez-vous une meilleure façon de faire la 'double' à la conversion « 'pourcentage int' de 255 »? – jball

+0

Je ne vois rien de mal à ce que vous faites maintenant. –

Questions connexes