C#实现HSL颜色值转换为RGB的方法
作者:小卒过河 发布时间:2022-02-21 09:56:11
标签:C#,颜色,转换
本文实例讲述了C#实现HSL颜色值转换为RGB的方法。分享给大家供大家参考。具体实现方法如下:
//This method converts the values to RGB
public RgbColor HslToRgb(int Hue, int Saturation, int Lightness)
{
double num4 = 0.0;
double num5 = 0.0;
double num6 = 0.0;
double num = ((double)Hue) % 360.0;
double num2 = ((double)Saturation) / 100.0;
double num3 = ((double)Lightness) / 100.0;
if (num2 == 0.0)
{
num4 = num3;
num5 = num3;
num6 = num3;
}
else
{
double d = num / 60.0;
int num11 = (int)Math.Floor(d);
double num10 = d - num11;
double num7 = num3 * (1.0 - num2);
double num8 = num3 * (1.0 - (num2 * num10));
double num9 = num3 * (1.0 - (num2 * (1.0 - num10)));
switch (num11)
{
case 0:
num4 = num3;
num5 = num9;
num6 = num7;
break;
case 1:
num4 = num8;
num5 = num3;
num6 = num7;
break;
case 2:
num4 = num7;
num5 = num3;
num6 = num9;
break;
case 3:
num4 = num7;
num5 = num8;
num6 = num3;
break;
case 4:
num4 = num9;
num5 = num7;
num6 = num3;
break;
case 5:
num4 = num3;
num5 = num7;
num6 = num8;
break;
}
}
return new RgbColor((int)(num4 * 255.0), (int)(num5 * 255.0), (int)(num6 * 255.0));
}
//The structure that will hold the RGB Values
public struct RgbColor
{
public RgbColor(int r, int g, int b)
{
red = r;
green = g;
blue = b;
}
public int red;
public int green;
public int blue;
}
希望本文所述对大家的C#程序设计有所帮助。


猜你喜欢
- android线程消息机制主要由Handler,Looper,Message和MessageQuene四个部分组成。平常在开发中,我们常用来
- java Class.getSimpleName() 的用法Usage in android:private static final St
- 上帝之火本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼。每次我都能联想到带来上帝之火的希腊之神,普罗米修斯。而这
- 为了提升编译速度,这几天用上了 AS 3.0 和 Gradle 3.0 插件,不得不说不论是 AS 3.0,还是 Gradle 3.0 都变
- jpa之动态插入与修改(重写save)1.动态插入@Data@Entity@DynamicInsert@Table(name = "
- File 类:文件和目录路径名的抽象表示。注意:File 类只能操作文件的属性,文件的内容是不能操作的。1、File 类的字段我们知道,各个
- 本文实例讲述了C#实现图片切割的方法。分享给大家供大家参考,具体如下:图片切割就是把一幅大图片按用户要求切割成多幅小图片。dotnet环境下
- 升级年初了,我们打算升级下apg,这样之后就拥抱下jetpack compose了!!想用comopse有两个必选项agp7.0和kotli
- 在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能。它提供对本地和远程进程的访问并使您能够启动和停止
- 本文实例为大家分享了android计算器实现加减乘除的具体代码,供大家参考,具体内容如 * :以下计算器只注重实现功能,不考虑其他BUG,只有
- Synchronized关键字Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码
- 其实如果我们不进行设置,只是修改了代码,运行程序以后,其出错界面如下图1所示:图1抛出异常如下:************** Excepti
- 说明compose中我们的所有ui操作,包括一些行为,例如:点击、手势等都需要使用Modifier来进行操作。因此对Modifier的理解可
- 本文以实例形式讲述了C#泛型的用法,有助于读者深入理解C#泛型的原理,具体分析如下:首先需要明白什么时候使用泛型:当针对不同的数据类型,采用
- 一.内部类的介绍 内部类: 一个类定义在 另一个类 的 内部。 &
- 本文实例讲述了Java实现的zip工具类。分享给大家供大家参考,具体如下:实现把zip解压到指定路径,把文件夹压缩到zip,把文件列表压缩为
- 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些
- 前言Spring Boot项目一般都是内嵌tomcat或者jetty服务器运行,很少用war包部署到外部的服务容器,即使放到linux中,一
- 最近.一个朋友跟我说想,我给她弄个闹钟APP软件...功能其实很简单...只需要弄个简单的闹钟.自己设计设计时间.然后时间到了的时候,闹铃放
- 这里记录Java中从控制台读入信息的几种方式,已备后查!(1)JDK 1.4(JDK 1.5和JDK 1.6也都兼容这种方法)public