注意Color.GetSaturation()并Color.GetBrightness()返回HSL值,而不是HSV。

以下代码演示了不同之处。

Color original = Color.FromArgb(50, 120, 200);

// original = {Name=ff3278c8, ARGB=(255, 50, 120, 200)}

double hue;

double saturation;

double value;

ColorToHSV(original, out hue, out saturation, out value);

// hue        = 212.0

// saturation = 0.75

// value      = 0.78431372549019607

Color copy = ColorFromHSV(hue, saturation, value);

// copy = {Name=ff3278c8, ARGB=(255, 50, 120, 200)}

// Compare that to the HSL values that the .NET framework provides:

original.GetHue();        // 212.0

original.GetSaturation(); // 0.6

original.GetBrightness(); // 0.490196079

以下C#代码就是您想要的。它使用维基百科上描述的算法在RGB和HSV之间进行转换。范围为0 - 360表示hue,0 - 1表示saturation或value。

public static void ColorToHSV(Color color, out double hue, out double saturation, out double value)

{

int max = Math.Max(color.R, Math.Max(color.G, color.B));

int min = Math.Min(color.R, Math.Min(color.G, color.B));

hue = color.GetHue();

saturation = (max == 0) ? 0 : 1d - (1d * min / max);

value = max / 255d;

}

public static Color ColorFromHSV(double hue, double saturation, double value)

{

int hi = Convert.ToInt32(Math.Floor(hue / 60)) % 6;

double f = hue / 60 - Math.Floor(hue / 60);

value = value * 255;

int v = Convert.ToInt32(value);

int p = Convert.ToInt32(value * (1 - saturation));

int q = Convert.ToInt32(value * (1 - f * saturation));

int t = Convert.ToInt32(value * (1 - (1 - f) * saturation));

if (hi == 0)

return Color.FromArgb(255, v, t, p);

else if (hi == 1)

return Color.FromArgb(255, q, v, p);

else if (hi == 2)

return Color.FromArgb(255, p, v, t);

else if (hi == 3)

return Color.FromArgb(255, p, q, v);

else if (hi == 4)

return Color.FromArgb(255, t, p, v);

else

return Color.FromArgb(255, v, p, q);

}

rgb hsv php,如何将RGB颜色更改为HSV?相关推荐

  1. python使用openCV加载图像、并将BGR格式转换成HSV格式、定义HSV格式中需要分离颜色的掩码(掩模)区间(mask)、并使用mask信息进行颜色分离、BGR格式的图像转化为RGB、并可视化

    python使用openCV加载图像.并将BGR格式转换成HSV格式.定义HSV格式中需要分离颜色的掩码(掩模)区间(mask).并使用mask信息进行颜色分离.将BGR格式的图像转化为RGB.可视化 ...

  2. RGB颜色空间、色调、饱和度、亮度、HSV颜色空间详解

    一.概述 本文章会详细的介绍RGB颜色空间与RGB三色中色调.饱和度.亮度之间的关系,最后会介绍HSV颜色空间! 一.RGB颜色空间 1. 起源 RGB三原色起源于上世纪初1809年Thomas Yo ...

  3. python使用matplotlib可视化、使用英文单次或者缩写指定使用的颜色、使用16进制的RGB字符串指定颜色、使用RGB或者RGBA数字元组指定颜色

    python使用matplotlib可视化.使用英文单次或者缩写指定使用的颜色.使用16进制的RGB字符串指定颜色.使用RGB或者RGBA数字元组指定颜色 目录

  4. CSS 的 rgb() 和 rgba() 函数(设置颜色的方式之一)

    一.CSS中设置颜色的四种方式: 值 描述 color_name 规定颜色值为颜色名称的颜色(如:yellow黄色) hex_number 规定颜色值为16进制颜色值(比如:#ff0000) rgb_ ...

  5. ARGB与RGB区别及透明度和RGB颜色对照表

    对于RGB比较常见,显示器.电视等都是采用RGB的颜色标准.RGB是工业界的一种颜色标准,通过R(红).G(绿).B(蓝)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色.我们知道计算机是 ...

  6. css rgb转hsl,HSL到RGB颜色转换

    也是从这里,它很好地解释了它的数学原理. 这基本上是一堆可以与HSL(Hue Saturation Lightness)相互转换的函数 经过测试并在PHP 5.6.15上工作 TL; DR:完整代码可 ...

  7. 【RGB=HSI】单片机控制RGB单灯与HSI互转算法

    最近在做一个RGB补光灯的小玩意儿,项目上有一个OLED屏幕显示当前灯光的HSI参数,对于HSI我是完全陌生的,由于时间紧任务重,我也没想过去百度一下HSI是个啥,直接拿着样品测试了一组参数,自己去演 ...

  8. html5中颜色范围,HTML5输入范围:将runnable-track的颜色更改为当前值

    该方法类似于颜色渐变 check this one, 所以你需要做的是根据范围输入,根据每个颜色的当前百分比混合两种颜色,所以在这种情况下,输入的每一边都代表一种颜色. 为了达到这个目的,你需要玩一些 ...

  9. LINUX下简单实现ISP图像处理从RAW到RGB,BMP算法、RGB到JPEG库的使用(一)

    在这里分享一下相关的ISP的一些基本简单图像处理算法.在一般的市面上,相关的ISP算法都是非常复杂,且经过不同serson设备的情况进行固定参数并且固化在芯片内来实现.所以硬件ISP的效率会比软件算法 ...

最新文章

  1. 详细说说Transformer (超详细图解,一图胜千言)
  2. Vim设置括号自动补全和快速跳出
  3. bd3.2 Python高级
  4. img元素高度多出来的几像素
  5. jQuery调用其他JS文件中的方法
  6. js opacity0点击_javascript opacity兼容性随笔
  7. 白话SpringCloud | 第五章:服务容错保护(Hystrix)
  8. 旅游(树形dp求树的最大独立集)
  9. P3538-[POI2012]OKR-A Horrible Poem【hash,字符串】
  10. 2019最佳工作、平均年薪达百万!想入行,先看这10本书
  11. 记一次mysql进程无法启动的解决方案
  12. 微信封杀lol手游活动小程序?《英雄联盟手游》回应了
  13. vue string转date_进阶高级前端,这9种Vue技术你掌握了吗?
  14. 【电子技术实验理论】语音放大电路
  15. 印象笔记Mac版的快捷键有哪些?Evernote for Mac快捷键大全
  16. Android Intent FLAG标识
  17. 华为充电协议_华为推出超级快充多协议充电器,支持65W USB PD快充输出
  18. namecheap mx记录配置邮箱
  19. V831——脱机实现通信行程卡识别
  20. php curl返回body,获取CURL中返回的body内容

热门文章

  1. 洛达1536u怎么刷固件_华强北洛达1536U三代Pro版AirPods开箱体验
  2. 为什么我一直在坚持着持续进步?
  3. qtQuick pdf 下载
  4. android 测量文字长度,【Android】TextView文字长度测量和各种Padding解析
  5. 准备放弃收购ARM?英伟达公司回应:消息不实
  6. Neural Style Transfer解读与实现
  7. 3M布灯箱+无边字制作安装纪实
  8. SQL教程——where语法
  9. seer文献_文献解读:SEER数据库临床预测模型
  10. 计算机系学生用什么系统,大学计算机系学生:重装系统必备的法宝