C#实现HSL颜色值转换为RGB的方法

本文实例讲述了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#程序设计有所帮助。

(0)

相关推荐

  • C#简单获取屏幕鼠标坐标点颜色方法介绍

    api函数: 复制代码 代码如下: 1.[DllImport("user32.dll")]//取设备场景 2.private static extern IntPtr GetDC(IntPtr hwnd);//返回设备场景句柄 3.[DllImport("gdi32.dll")]//取指定点颜色 4.private static extern int GetPixel(IntPtr hdc, Point p); 主要方法: 复制代码 代码如下: Timer tim

  • c#遍历System.drawing.Color下面的所有颜色以及名称以查看

    面试的时候被问到,如何遍历System.drawing.Color下面的所有颜色以及名称以查看,当时答得不好,现将方案记录如下: 复制代码 代码如下: View Code      public partial class Form1 : Form     {         FlowLayoutPanel newPanel = new FlowLayoutPanel(); public Form1()         {             InitializeComponent();  

  • C#实现改变DataGrid某一行和单元格颜色的方法

    本文所述实例主要实现WPF项目中C#改变DataGrid某一行和单元格颜色的功能.分享给大家供大家参考.具体方法如下: 如果要改变DataGrid某一行的颜色.高度,以及某个单元格的颜色.单元格字体的颜色,就必需取到datagrid的一行和一行的单元格,通过查找相关资料及测试总结出如下实例代码,现记录下来便于大家参考使用. 1.前台WPF界面添加一个DataGrid控件,并添加两列(便于编写,达到目的即可) <DataGrid AutoGenerateColumns="False"

  • c#构造ColorComboBox(颜色下拉框)

    复制代码 代码如下: class ColorComboBox : ComboBox    {        /// <summary>        /// 当前选中色        /// </summary>        public Color SelectedColor        {            get { return Color.FromName(this.Text); }        }        /// <summary>     

  • C#读取系统字体颜色与大小的方法

    本文实例讲述了C#读取系统字体颜色与大小的方法.分享给大家供大家参考.具体分析如下: 首先,说到字体.颜色,我们应该想到System.Drawing命名空间 先说说获取系统字体的方法: 在System.Drawing命名空间下有个FontFamily类,其下有个静态属性:Families(返回的是一个 FontFamily对象数组) 注:System.Drawsing.FontFamily是一个密封类. 而在System.Drawing.Text命名空间下有个InstalledFontColle

  • C#取得随机颜色的方法

    本文实例讲述了C#取得随机颜色的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: public string GetRandomColor() {         Random RandomNum_First = new Random((int)DateTime.Now.Ticks);         //  对于C#的随机数,没什么好说的         System.Threading.Thread.Sleep(RandomNum_First.Next(50));    

  • C#中改变DataGridView控件边框颜色的方法

    DataGridView是Visual Studio中一个最重要的数据控件.它可以应用在大多数场合,功能强大,使用灵活.本文要重点介绍一下,如果设置DataGridView的边框颜色. 比尔盖次说"Apple机上没有哪一个软件我是觉得应该是微软首创的",这说明盖次对微软软件功能强大的自信心.而乔布斯而说,微软的软件毫无艺术感可言!这说明什么,说明微软的东西--丑! 乔帮主不愧是乔帮主,真是入木三分,直中要害!是的,默认情况下的DataGridView,真是丑!尤其是那个黑色的边框,不是

  • C#图像颜色聚类高效方法实例

    本文实例讲述了C#图像颜色聚类高效方法.分享给大家供大家参考.具体分析如下: 图像颜色聚类的方法有很多,但是对于视频监控而言,现有方法很难满足实时性的要求,这里介绍一种位屏蔽压缩的方法实现颜色聚类,可以满足实时性的要求. 位屏蔽法就是在3D的RGB真彩空间中近似均匀采样的颜色压缩方法,即将屏蔽的颜色位置设置为0,具体可以采用移位运算来实现,这里我们以屏蔽RGB颜色分量末6位为例: public Bitmap PCluster(Bitmap a) { try { Rectangle rect =

  • C#基于XNA生成随机颜色的方法

    本文实例讲述了C#基于XNA生成随机颜色的方法.分享给大家供大家参考.具体分析如下: 确保您使用的是Microsoft.Xna.Framework.Graphics,为了使用XNA Color类,以及使用System for Random . 你可以调用一个新的随机颜色:Color newColor= RandomColor(); 主要代码如下: private Color RandomColor() { Random random = new Random(DateTime.Now.Milli

  • C#实现HSL颜色值转换为RGB的方法

    本文实例讲述了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; d

  • JavaScript实现16进制颜色值转RGB的方法

    本文实例讲述了JavaScript实现16进制颜色值转RGB的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/19

  • jquery实现将获取的颜色值转换为十六进制形式的方法

    本文实例讲述了jquery实现将获取的颜色值转换为十六进制形式的方法.分享给大家供大家参考.具体分析如下: 大家或许已经注意到了,在谷歌.火狐和IE8以上浏览器中,获取的颜色值是RGB形式,例如rgb(255,255,0),感觉非常不适应,或者在实际编码中不方便使用,这个时候就需要进行转换,下面就提供一段相关转换代码. 具体代码如下: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf

  • PHP中十六进制颜色与RGB颜色值互转的方法

    16进制的颜色值通常表示为#FFFFFF,当前也有缩减为#FFF,前提是两位两位必需相同,例如#FEFEFE这种,就不能进行缩减.而RGB的颜色格式是由3组0~255的数字构成,分别代表红(Red).绿(Green).蓝(Blue)的色值. 那么,将16进制转换为RGB色值,其实就是分别把#号后面的两位作为一个单位转换成十进制. 代码如下: /** * 将16进制颜色转换为RGB * author www.jb51.net */ function hex2rgb($hexColor){ $col

  • PHP实现将颜色hex值转换成rgb的方法

    本文实例讲述了PHP实现将颜色hex值转换成rgb的方法.分享给大家供大家参考,具体如下: function hex2rgb( $colour ) { if ( $colour[0] == '#' ) { $colour = substr( $colour, 1 ); } if ( strlen( $colour ) == 6 ) { list( $r, $g, $b ) = array( $colour[0] . $colour[1], $colour[2] . $colour[3], $co

  • JavaScript中将一个值转换为字符串的方法分析[译]

    译者注:前两天在看ES5的时候顺便出了一道题,今天看到这篇文章,刚好解释的很清楚,就翻译了一下.在JavaScript中,主要有三种方法能让任意值转换为字符串.本文讲解了每种方法以及各自的优缺点. 1.转换字符串的三种方法 这三种将value转换为字符串的方法是: 1.value.toString() 2."" + value 3.String(value) 第一种方法存在的问题是,它不能把null和undefined转换为字符串.还有第二种和第三种方法,这两种方法的效果基本一样. •

  • JAVA过滤标签实现将html内容转换为文本的方法示例

    本文实例讲述了JAVA过滤标签实现将html内容转换为文本的方法.分享给大家供大家参考,具体如下: /** * 把html内容转为文本 * @param html 需要处理的html文本 * @param filterTags 需要保留的html标签样式 * @return */ public static String trimHtml2Txt(String html, String[] filterTags){ html = html.replaceAll("\\<head>[\

  • java 三种将list转换为map的方法详解

    java 三种将list转换为map的方法详解 在本文中,介绍三种将list转换为map的方法: 1) 传统方法 假设有某个类如下 class Movie { private Integer rank; private String description; public Movie(Integer rank, String description) { super(); this.rank = rank; this.description = description; } public Int

  • 将json对象转换为字符串的方法

    复制代码 代码如下: /* 将json对象转换为字符串 使用方法: var json = {id=3,name="abc"}; var str = tools.j2s(json); */ tools.j2s = function(O) { var S = []; var J = ""; if (Object.prototype.toString.apply(O) === '[object Array]') { for ( var i = 0; i < O.le

  • php实现将数组转换为XML的方法

    本文实例讲述了php实现将数组转换为XML的方法.分享给大家供大家参考.具体如下: 1. php代码如下: <?php class A2Xml { private $version = '1.0'; private $encoding = 'UTF-8'; private $root = 'root'; private $xml = null; function __construct() { $this->xml = new XmlWriter(); } function toXml($da

随机推荐