`

.NET中颜色的转换方法总结

阅读更多
1,AGRB字符串"#FF00AFDB"转Color

法一:System.Drawing.ColorTranslator类
Color color = ColorTranslator.FromHtml("#FF00AFDB");

ColorTranslator还可以将Color转成Html的颜色代码,但是Alpha值将会丢失,如"#FF00AFDB"将会变成"#00AFDB"

法二:System.Drawing.ColorConverter类

ColorConverter colorConverter = new ColorConverter();
Color color = (Color)colorConverter.ConvertFromString("#FF00AFDB");

备注:对于WPF,对应的是System.Windows.Media.ColorConverter,ConvertFromString也变成了静态方法
Color color = (Color)ColorConverter.ConvertFromString("#FF00AFDB");


法三:将"#FF00AFDB"转换成int型的ARGB数字,再利用构造函数构建
public static Color ToColor(this string colorName) {    if (colorName.StartsWith("#"))
        colorName = colorName.Replace("#", string.Empty);
    int v = int.Parse(colorName, System.Globalization.NumberStyles.HexNumber);
    return new Color() {
        A = Convert.ToByte((v >> 24) & 255),
        R = Convert.ToByte((v >> 16) & 255),
        G = Convert.ToByte((v >> 8) & 255),
        B = Convert.ToByte((v >> 0) & 255)
    };
}
做成了扩展方法,之后这样使用
Rectangle rectangle = new Rectangle();
rectangle.Fill = new SolidColorBrush("#FFF5F5F5".ToColor());


2,已知颜色的名字创建Color,如red,green等

Color color = Color.FromName("red");


3,不知道颜色的名字,可以用系统定义的颜色,如下面几种方式

Color color = Color.FromKnownColor(KnownColor.ActiveBorder);
Color color = Color.Red;
Color color = SystemColors.ButtonFace;


4,Color转Int32


看到这里你可能要问了,Color转int有啥用啊?其实如果你在用一些现有的图像库的时候,它们经常将Color表现为一个int值。
在这种情况下,ARGB值是通过其AARRGGBB的byte的顺序用32位int表现的。这里我们可以做如下转换:
public static int ToArgb(this Color color) {
    int argb = color.A << 24;
    argb += color.R << 16;
    argb += color.G << 8;
    argb += color.B;
    return argb;
} 
以下是这两个方法的一个综合应用:
Rectangle rectangle = new Rectangle();
SolidColorBrush scb = new SolidColorBrush();
scb.Color = "#FFF5F5F5".ToColor();
rectangle.Fill = scb;
MessageBox.Show(scb.Color.ToArgb().ToString());
分享到:
评论

相关推荐

    颜色值转换(RGB与VB十六进制)

    这时,开发一个颜色转换工具就显得非常实用,它可以简化代码,提高效率,避免手动转换的错误。 实现RGB到VB十六进制的转换,可以创建一个函数,接收RGB三元组作为参数,然后分别将每个分量转换成两位的十六进制字符...

    AukeyMain .net 颜色屏幕捕捉 画图 文件编码转换

    标题中的"AukeyMain .net 颜色屏幕捕捉 画图 文件编码转换"涉及到的是一个基于.NET框架的软件工具,可能是一个集成了多种功能的实用程序,包括颜色屏幕捕捉、图像编辑(画图)以及文件编码转换。下面将详细阐述这些...

    asp.net 转换pdf

    总结起来,ASP.NET转换PDF涉及选择合适的库,理解库提供的API,以及熟练掌握数据转换、内容渲染和样式应用等技术。通过学习和实践,开发者能够为用户提供方便的PDF文档生成服务,增强应用程序的功能和用户体验。

    FastReport.NET中文用户手册2019

    ### FastReport.NET中文用户手册2019知识点总结 #### 报表概念 - **报表**: 快速报告系统中的核心元素,用于呈现数据的一种结构化格式。 - **报表设计器**: 一种工具,用于设计、编辑和预览报表布局及元素。 - **...

    ASP.NET生成静态页面方法大全(五种方案对比)

    ### ASP.NET生成静态页面方法大全(五种方案对比) #### 方案一:通过URL抓取...总结:以上介绍了五种不同的ASP.NET生成静态页面的方法,每种方法都有其特点和适用场景。开发者可以根据实际需求选择最合适的技术方案。

    .net 将SVG标签代码转成图片格式

    总结来说,使用.NET和SVG.dll库在VS2012中进行SVG到PNG的转换是一个简单的过程,主要包括导入SVG库、创建SVG文档实例、设置图像尺寸、渲染SVG到Bitmap,最后保存Bitmap为PNG文件。这个功能对于.NET开发者在处理SVG...

    【ASP.NET编程知识】ASP.NET验证码实现(附源码).docx

    在 ASP.NET 中,还有许多其他的验证码实现方法,例如使用 CAPTCHA 库、使用机器学习算法等。读者可以根据需要选择合适的方法来实现验证码。 七、总结 ASP.NET 验证码实现是 ASP.NET 编程中的一种常见技术,用于...

    【ASP.NET编程知识】ASP.NET中制作各种3D图表的方法.docx

    【ASP.NET编程知识】ASP.NET中制作各种3D图表的方法 在ASP.NET中,创建3D图表是一项常用的任务,尤其在数据分析和可视化方面。本文将详细介绍如何在ASP.NET环境中利用图表控件创建不同类型的3D图表,包括步骤、类型...

    ASP.NET轻松实现验证码3种方法

    根据提供的标题、描述以及部分代码内容,我们可以总结出关于在ASP.NET中实现验证码的三种方法。下面将详细介绍这些方法,并解释其工作原理和技术要点。 ### 方法一:利用图像生成验证码 这种方法是最常见的验证码...

    vb.net2010二维码开发生成源码,无缝支持中文

    总结来说,VB.NET 2010二维码开发生成源码提供了高效、便捷的二维码生成解决方案,尤其是对中文字符的完美支持,使开发者能够轻松地将二维码功能集成到各种应用中,满足多样化的业务需求。通过深入理解和运用这些...

    .NET(c#)Web生成二维码

    在.NET框架中,C#是一种常用的编程语言,用于构建各种应用程序,包括Web应用。本教程将专注于使用C#在Web环境中生成二维码(QR Code)的技术。二维码作为一种信息载体,广泛应用于移动设备,如手机,因为它可以快速...

    .NET 取色器

    总结来说,构建一个.NET取色器应用,我们需要掌握.NET Framework的Winform编程基础,理解GDI+的颜色获取机制,并熟悉如何处理鼠标事件以及设计用户界面。通过这些技术的组合,我们可以创建出一款实用且高效的取色...

    .net导入导出Excel

    而在ASP.NET Web Forms中,常用的是Page方法处理文件上传,导出时通过Response对象直接写入文件流。 五、性能优化与注意事项 1. 大文件处理:处理大量数据时,考虑分批读取和写入,避免一次性加载所有数据导致内存...

    vb.net程序 计算器

    在VB.NET环境中开发一个计算器程序是一项基础且实用的编程任务,它可以帮助初学者理解面向对象编程的概念、事件处理以及UI设计。以下将详细介绍这个“vb.net程序 计算器”项目中的关键知识点。 1. **VB.NET编程环境...

    Asp.net下生成二维码

    在Asp.net环境中生成二维码是一项常见的任务,尤其在如今移动互联网普及的时代,二维码被广泛用于信息传递、链接跳转、身份验证等场景。本资源提供了一个在Asp.net web应用程序中生成二维码并保存图片的解决方案。 ...

    .NET 开发常用图标

    5. **图标转换**:如果你有其他格式的图像文件,可以使用.NET的Image类或其他第三方库(如ImageMagick.NET)进行格式转换。 6. **自定义图标**:除了使用系统提供的图标外,开发者还可以设计自己的图标,确保其与...

    .net下的RGB图片转CMYK处理C#

    在本文中,我们将深入探讨如何在.NET框架下使用C#编程语言实现从RGB色彩模式转换到CMYK色彩模式的过程。该转换通常用于准备图像以供打印,因为大多数打印机使用CMYK(青色、洋红、黄色和黑色)颜色模型来呈现颜色,...

    使用asp.net改变图片颜色如灰色的变成彩色

    3. 颜色转换:根据方法的传入参数,决定当前像素点的颜色转换方式。通过GetGrayNumColor方法和GetHongNumColor方法,分别将彩色像素转换为灰色像素,或把灰色像素转换为彩色像素。 4. 保存图片:将所有像素点处理...

    ASP.NET控件综合实例

    在本实验中,主要目的是通过实际操作来熟练掌握ASP.NET中的各种服务器控件和验证控件的使用方法。通过这一过程,学习者可以更好地理解每种控件的功能,并能够实际应用这些控件来构建一个完整的注册验证页面。 **...

    基于ASP.NET生成二维码详细源码

    总结来说,学习基于ASP.NET生成二维码不仅涉及到了服务器端编程,还涉及到图像处理和数据编码。这个过程中,你可以了解到.NET框架的特性,以及如何利用第三方库解决实际问题。同时,对于初学者,这种实践性项目能很...

Global site tag (gtag.js) - Google Analytics