颜色值格式






2.28/5 (10投票s)
此应用程序将以三种格式显示当前选择的颜色:RGB、十六进制和整数。
引言
此应用程序将以三种格式显示当前选择的颜色的格式:RGB、十六进制和整数。您可以更改任何格式的值,其他值将相应地进行调整。
System.Drawing.Color
此命名空间提供了最常用应用程序中使用的所有颜色;如果您想创建自己的颜色,则此命名空间提供了以下函数:
Color.FromArgb
:从四个 8 位 ARGB 组件(alpha、red、green 和 blue)值创建一个Color
结构。
十六进制转换
可以使用 Color.FromArgb(int argb)
函数获得 RGB 颜色的整数值。以下代码会将十进制表示转换为十六进制表示。
private string DeciamlToHexadeciaml(int number)
{
string[] hexvalues={"0","1","2","3","4","5","6","7",
"8","9","A","B","C","D","E","F"};
string result=null, final=null;
int rem=0,div=0;
while(true)
{
rem=(number%16);
result+=hexvalues[rem].ToString();
if (number<16)
break;
number=(number/16);
}
for (int i=(result.Length-1); i>=0; i--)
{
final+=result[i];
}
return final;
}
当前颜色
“当前颜色”框将以不同格式显示当前选择的颜色。当前颜色借助 PictureBox
显示。
this.pictureBox1.BackColor=Color.FromArgb(Convert.ToInt32(this.RedValue.Text),
Convert.ToInt32(this.GreenValue.Text),Convert.ToInt32(this.BlueValue.Text));
十进制转换
当 RGB 颜色的整数值发生更改时,此整数值将转换为相应的十六进制值。
private int GetNumberFromNotation(char c)
{
if (c=='A')
return 10;
else if (c=='B')
return 11;
else if (c=='C')
return 12;
else if (c=='D')
return 13;
else if (c=='E')
return 14;
else if (c=='F')
return 15;
return Convert.ToInt32(c.ToString());
}
private int HexadecimaltoDecimal(string hexadecimal)
{
int result=0;
for (int i=0; i<hexadecimal.Length; i++)
{
result+=Convert.ToInt32(this.GetNumberFromNotation(hexadecimal[i])*
Math.Pow(16,Convert.ToInt32(hexadecimal.Length)-(i+1)));
}
return Convert.ToInt32(result);
}
动机
制作这个程序的想法源于我在不同的图形工具上工作时感到沮丧,那里存在的问题是有些支持 RDB 颜色格式,有些支持十六进制格式,还有其他的……
所以,与其一遍又一遍地自己计算它们,我现在有了这个不错的程序在我的桌面上 :).