如何从其十六进制 RGB 字符串创建 System.Drawing.Color?

Posted

技术标签:

【中文标题】如何从其十六进制 RGB 字符串创建 System.Drawing.Color?【英文标题】:How to create a System.Drawing.Color from its hexadecimal RGB string? 【发布时间】:2010-12-27 05:38:12 【问题描述】:

我想从#FF00FFFF00FF 之类的值创建System.Drawing.Color,而无需为此编写代码。有任何 .NET 内置解析器吗?

【问题讨论】:

【参考方案1】:
ColorTranslator.Fromhtml("#FF00FF");

【讨论】:

【参考方案2】:

您可以使用 System.Drawing.ColorTranslator 静态方法 FromHtml。

使用:

System.Drawing.ColorTranslator.FromHtml("#FFFFFF");

【讨论】:

【参考方案3】:

当您使用Convert-Class 时,这相当容易。 ToInt32 函数有一个重载,第二个参数表示字符串所在的基数。

using System.Drawing

Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));

【讨论】:

【参考方案4】:

使用ColorConverter 类:

var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );

这也可以从标准命名颜色转换,例如ConvertFromString("蓝色")

有关标准 .NET 类型转换机制的讨论,请参阅 here。

【讨论】:

【参考方案5】:

如果您要使用的颜色是常量,在 C# 中使用 System.Drawing.Color.FromArgb (0xFF00FF)。这比System.Drawing.Color.FromNameSystem.Drawing.Color.FromHtml 稍快,因为从字符串到整数的解析是在编译时完成的,而不是在运行时完成的。

【讨论】:

【参考方案6】:

FromName 方法对我有用

System.Drawing.Color.FromName("#FF00FF");

【讨论】:

以上是关于如何从其十六进制 RGB 字符串创建 System.Drawing.Color?的主要内容,如果未能解决你的问题,请参考以下文章

如何将RGB值转换为十六进制字符串iOS swift

如何将十六进制转换为RGB

在 C# 中,如何使用十六进制值创建 System.Drawing.Color 对象? [复制]

如何将“背景颜色”转换为 rgb() 格式?

在Javascript中将rgb字符串转换为十六进制

将 RGB 颜色值转换为十六进制字符串