十进制数转颜色码(转RGB转Color)

本文介绍了将十进制数转换为颜色码的过程,包括十进制转十六进制字符串、十六进制转RGB码以及RGB码转成Color类型。在C# Winform应用中,通过理解颜色码的结构和转换规则,可以实现数据库中的十进制颜色值到控件文字颜色的映射。同时,文章提到了微软提供的优化方法,如使用ToString("X6")进行十六进制转换,以及Color对象的FromArgb()方法创建颜色。
摘要由CSDN通过智能技术生成

今天碰到一个这样的问题。我在修改以前用VB写的一个功能,这个功能中有一个部分是使用着色器给一段文字上色。然后这个颜色值存入数据库中的值是一个十进制数。新项目用C#,在Winform中需要读取这个数据给文字画上颜色。

 

通过上网找资料以及结合个人理解,该转换过程主要有以下几个步骤:

1、十进制数转成十六进制字符串。

2、十六进制字符串转成RGB码。

3、RGB码转成Color类型的值,给控件文字颜色属性赋值。

 

 

在研究这个功能实现的过程中需要先了解一些关键点。

首先,就是colorEdit等选颜色的控件都是通过设置RGB值来设置颜色的。而且R、G、B的范围都是0~255。转成十六进制就是0~FF。因此十六进制字符串为6位字符的字符串,范围为000000~FFFFFF。

其次,就是十进制转成十六进制字符串时,字符串的字符个数可能没有6位,这种情况需要在字符串前补0。如果超过6位,说明这个十进制不是用来转颜色码的。

最后,通过测试发现这个6位字符的十六进制字符串,前两个字符对应这RGB码的B位,中间两位对应G位,后面两位对应R位。

 

一、十进制转十六进制

/// <summary>
        /// 十进制转换到十六进制
        /// </summary>
        /// <param name="strDecimal">十进制数的字符串</param>
        /// <returns>十六进制字符串</returns>
        public static string Decimal2Hexadecimal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值