RGB与HSB之间转换

先来了解一些概念:

1.RGB是一种加色模型,就是将不同比例的Red/Green/Blue混合在一起得到新颜色.通常RGB颜色模型表示为:

 

2.HSB(HSV) 通过色相/饱和度/亮度三要素来表达颜色.

  • H(Hue):表示颜色的类型(例如红色,绿色或者黄色).取值范围为0—360.其中每一个值代表一种颜色.
  • S(Saturation):颜色的饱和度.从0到1.有时候也称为纯度.(0表示灰度图,1表示纯的颜色)
  • B(Brightness or Value):颜色的明亮程度.从0到1.(0表示黑色,1表示特定饱和度的颜色)

 

  用RGB来表示颜色虽然方便,但是两个相近的颜色的RGB值却可能相差十万八千里。用HSV(Hue色相、Saturation饱和度、Value(Brightness)明度,也叫HSB)来表示颜色就比较符合人们的习惯。

 

  后面地址是一个在线的观察RGB到HSB转换的工具:http://web.bentley.edu/empl/c/ncarter/MA307/color-converter.html

 

RGB到HSV(HSB)的转换:

 

HSV(HSB)到RGB的转换:

 

转载于:https://www.cnblogs.com/zoneofmine/p/8406283.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RGB(Red, Green, Blue)和HSB(Hue, Saturation, Brightness)都是常用的颜色模型。RGB模型是基于颜色的三个基本分量,即红色、绿色和蓝色,而HSB模型则是基于颜色的色相、饱和度和亮度。 RGB转换HSB的数学原理如下: 1. 首先需要将RGB转换为0-1的标准化值。假设原始颜色的RGB值为(r, g, b),则对应的标准化值为: r' = r / 255 g' = g / 255 b' = b / 255 2. 计算色相H。色相是指颜色在色轮上的位置,取值范围为0-360度。具体计算方式如下: - 如果最大值和最小值相等,那么色相H为0。 - 如果最大值是红色分量r,那么色相H的计算公式为:H = (g' - b') / (max(r', g', b') - min(r', g', b')) * 60 - 如果最大值是绿色分量g,那么色相H的计算公式为:H = ((b' - r') / (max(r', g', b') - min(r', g', b')) + 2) * 60 - 如果最大值是蓝色分量b,那么色相H的计算公式为:H = ((r' - g') / (max(r', g', b') - min(r', g', b')) + 4) * 60 需要注意的是,由于色相的取值范围是0-360度,所以如果计算出来的H值小于0,需要加上360度。 3. 计算饱和度S。饱和度是指颜色的纯度,取值范围为0-100%。具体计算方式如下: S = (max(r', g', b') - min(r', g', b')) / max(r', g', b') * 100 4. 计算亮度B。亮度是指颜色的明亮程度,取值范围为0-100%。具体计算方式可以参考我之前回答问题中的内容。 通过以上计算,可以得到HSB模型中的色相H、饱和度S和亮度B值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值