十六进制颜色混合器






2.95/5 (8投票s)
2006年1月16日
2分钟阅读

52038

576
本文档展示了如何创建一个控件来混合颜色,然后将其导出为 HTML 十六进制格式。
引言
颜色混合器控件允许用户“混合”自己的颜色。为此,为每个颜色分量(R、G 和 B)提供一个滑块。然后,它将这些转换为 HTML 应用程序中的十六进制格式,并存储单独的 RGB 字节以供以后使用。当颜色被混合时,控件的背景颜色会更改为与当前颜色匹配,以便向用户指示他们创建的颜色。
背景
最初,这作为一个对话框窗口开始,以实现相同的目的(它仍然被用于我的 HTML 编辑器程序中)。对话框窗口相同,只是它有一个单独的预览面板和文本框,用于显示 R、G、B 和 RGB 值以及十六进制字符串。我创建它是为了为我的用户提供一种在视觉环境中创建符合 HTML 标准的颜色代码的方式。为了完成这项工作,我必须创建一个函数来将 RGB 代码转换为十六进制数字系统。
使用代码
我正在根据 GNU 许可发布 ColorMixer.dll,因此人们可以在他们的应用程序中使用它,但请保留版权声明并给予我应有的赞誉。但我不想让人们使用我的代码创建另一个教程。
该代码本身相当简单,它为您提供了多种使用它的方式(弹出窗口、停靠工具栏等)。我将解释我发现特别具有挑战性的代码部分,或者关于如何改进/修改此示例的提示。
关注点
控件本身编写起来很容易,但有一种方法值得特别关注,那就是 RGBtoHEX()
方法。顾名思义,它将 RGB 颜色值转换为十六进制值,以便在 HTML 代码等中使用。
public string RGBtoHEX(int Value)
{
int Result = (Value / 16);
int Remain = (Value % 16);
string Resultant = null;
if (Result >= 10)
{
if (Result == 10)
Resultant = "A";
if (Result == 11)
Resultant = "B";
if (Result == 12)
Resultant = "C";
if (Result == 13)
Resultant = "D";
if (Result == 14)
Resultant = "E";
if (Result == 15)
Resultant = "F";
}
else Resultant = Result.ToString();
if (Remain >= 10)
{
if (Remain == 10)
Resultant += "A";
if (Remain == 11)
Resultant += "B";
if (Remain == 12)
Resultant += "C";
if (Remain == 13)
Resultant += "D";
if (Remain == 14)
Resultant += "E";
if (Remain == 15)
Resultant += "F";
}
else Resultant += Remain.ToString();
return Resultant;
}
可以使用十六进制值的枚举来更改它,但当前的系统很好地满足了它的目的。
联系方式
请将所有电子邮件发送至 xpyder@magclan.cwhnetworks.com。我也有 MSN Messenger,我的电子邮件地址是 jamespraveen@aol.com。
历史
- 2006/01/12:首次将代码提交至 The Code Project。