咨询区

  • viky

请问如何将一个16进制的 color code 转成 C# 中的 Color ?

我的业务场景中需要从文件读取一个 hex color code,然后我需要将该 code 转成 System.Windows.Media.Color 实例,不知道 .NET Framework 中是否有相关的支持类?

回答区

  • Thorarin

从你提供的 color code 看,它是一个 ARGB 值,你可以将其转成 System.Drawing.ColorSystem.Windows.Media.Color,参考如下代码:


using System.Windows.Media;Color color = (Color)ColorConverter.ConvertFromString("#FFDFD991");

如果你不想使用 ColorTranslator ,我还有一种简单的方式。


string colorcode = "#FFFFFF00";
int argb = Int32.Parse(colorcode.Replace("#", ""), NumberStyles.HexNumber);
Color clr = Color.FromArgb(argb);

或者你也可以每2个2个的截取来提取颜色值。


string colorcode = "#FFFFFF00";
colorcode = colorcode.TrimStart('#');Color col; // from System.Drawing or System.Windows.Media
if (colorcode.Length == 6)col = Color.FromArgb(255, // hardcoded opaqueint.Parse(colorcode.Substring(0,2), NumberStyles.HexNumber),int.Parse(colorcode.Substring(2,2), NumberStyles.HexNumber),int.Parse(colorcode.Substring(4,2), NumberStyles.HexNumber));
else // assuming length of 8col = Color.FromArgb(int.Parse(colorcode.Substring(0, 2), NumberStyles.HexNumber),int.Parse(colorcode.Substring(2, 2), NumberStyles.HexNumber),int.Parse(colorcode.Substring(4, 2), NumberStyles.HexNumber),int.Parse(colorcode.Substring(6, 2), NumberStyles.HexNumber));
  • Oded

如果你的 color code 是类似 HTML 中的 rgb 值,可以借助基础类库的 ColorTranslator 类,比如:


System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml("#FFCC66");

当然,如果你是 ARGB 的话,得需要用 WPF 下的 ColorConverter 类。


Color col = ColorConverter.ConvertFromString("#FFDFD991") as Color;
  • Jink

我封装了一个简单粗暴的扩展方法。


static class ExtensionMethods
{public static Color ToColor(this uint argb){return Color.FromArgb((byte)((argb & -16777216)>> 0x18),      (byte)((argb & 0xff0000)>> 0x10),   (byte)((argb & 0xff00) >> 8),(byte)(argb & 0xff));}
}

接下来可以这么用。


Color color = 0xFFDFD991.ToColor();

点评区

几位大佬提供的几种方法都非常灵活,????????,学习了,收藏了!

NET问答: 如何将十六进制的 #FFDFD991 转成 C# 中的 Color 类?相关推荐

  1. C将十六进制数字字符串转成数字

    1.将十六进制数字字符串转成数字 long   lTemp   =   strtol("0xa10b", NULL, 16); 这样的话,就将0xa10b这个十六制形式的字符串转为 ...

  2. 将十六进制的字符串转换成整数

    #include "stdafx.h" #include<stdio.h> #include<string.h>/*将大写字母转换成小写字母*/ int t ...

  3. JS - 将十六进制的颜色值转成rgb、rgba格式

    JS - 将十六进制的颜色值转成rgb.rgba格式 /**hex -> rgb* @param {Object} hex*/ export function hexToRgb(hex) {re ...

  4. 十六进制颜色码转换成RGB颜色值

    十六进制颜色码转换成RGB颜色值 相关知识点 0xFF 十六进制 如果转成二进制位:11111111 int值是32位,0的二进制: 00000000000000000000000000000000 ...

  5. 十六进制颜色码转换成RGB颜色值:

    十六进制颜色码转换成RGB颜色值:   颜色码对照表 颜色 英文代码 形象描述 十六进制 RGB LightPink 浅粉红 #FFB6C1 255,182,193 Pink 粉红 #FFC0CB 2 ...

  6. C#:十六进制字节数组 转换成 字符串、字符串形式的16进制数据 转换成 十六进制字节数组

    十六进制字节数组 转换成 字符串 /// <summary>/// 十六进制字节数组 转换成 字符串/// </summary>/// <returns></ ...

  7. 字符串中的十六进制字符如何转换成十六进制数

    最近因工程项目需要读取模块的MAC地址,该设备上传的字符串中包含MAC地址,但是是用十六进制描述,如何将字符串中的十六进制字符转换成十六进制数呢? 例如:字符串中的MAC地址如下 "FA15 ...

  8. html发送十六进制字符数组,十六进制数组怎么转换成字符串数组?

    本身我有一篇文章专门谈这个事情,结果被说内容不好. 题外话,回答主题: 其实对计算机系统来说,没有什么十六进制转字符,字符在计算机中存储本身就是按一个一个编号来的,在计算机中也是二进制存储处理,注意, ...

  9. iOS中NSString转换成HEX(十六进制)-NSData转换成int

    NSString *str = @"0xff055008"; //先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型 unsigned lon ...

最新文章

  1. 《最后期限》阅读笔记2
  2. (六)数据结构之“集合”
  3. request重定向_golang不想http自动处理重定向的解决方案
  4. 基于领域知识的Docker镜像自动构建方法
  5. 杰和科技多款商显方案亮相2017英特尔RCA论坛
  6. python 奥数_Python 和 奥数 — 同余法求数值
  7. 中文文字校对和文档对比合并开源工具调研
  8. Tomcat常见内存溢出的解决方案
  9. xposed框架_把安卓手机开发到极致的框架xposed
  10. vue 描述框[el-descriptions] 与之对应 div
  11. Pytorch 学习笔记--to(device)的用法
  12. 视频无缝续播的一些解决方案
  13. MongoDB分片机制
  14. JavaScript中if嵌套
  15. 户外运动装备新品--云息智能定位胸牌
  16. 香蕉派 Banana pi BPI-R2 开源智能路由器 MTK 7623N 方案设计
  17. 计算机网络和信息安全-网络安全
  18. 客户端与服务器端的区别
  19. Ubuntu 18.04配置及美化 (20.04 / 22.04基本相同)
  20. 浅谈nodejs与php设计构思层面上的差异

热门文章

  1. python中if语句缺省else_9_【Python学习分享文章】_if(条件语句)
  2. mybatis jar包_springboot2整合mybatis-plus3踩到的坑
  3. 关于epoll,select,poll的理解
  4. Codeforces 924D Contact ATC (看题解)
  5. 分布式锁的几种实现原理
  6. Python基础七(函数)
  7. 在线自动下载最新版本jquery
  8. 在Marketplace上销售应用【WP7学习札记之十八】
  9. (二)SpringBoot功能
  10. 简练软考知识点整理-项目启动过程组