RGB 与 HSB/HSV 的关系
能理解 RGB 模式中确定数值的各种颜色,但怎么理解「明度」、「饱和度」、「色相」等概念?


从第一张图可以简单得出以下结论:
- 明度——这个最简单,rgb中,三色光的值,其加起来的和越大,明度就越大。
就这么简单。
那么这个明度意味着什么?很显然,就是光总量有多少,光越多,明度越高
2.纯度:
(1)凡是在rgb中,有一个或者两个值为零的,都是纯度值最高的纯色。
(2)如何确定两个复杂颜色(即没有一个rgb值为零的颜色)的纯度比较?看图

如图两个颜色,如何确定哪个纯度高?
简单,rgb三个值,取最高值减去最低值,结果越大,纯度越高。
那么,这意味着纯度是什么呢?
显然,纯度就意味着三色光的混合程度,混合程度越高,纯度就越低——如果你把三色光调成一个数值,这个颜色就是纯灰色了
3.色相:这个相对复杂一点
(1)现在版本的rgb,色相可以在rgb条的颜色上实时反映了,其实非常好判断。
但是,这个问题的关键在于,色相究竟意味着什么。
再翻上去看那张图,在RGB下边有一个彩色长条,这个长条包含了所有的颜色,它有很多形式——色环,色盘,色立体等等。我们如果只看这个长条的横坐标,那么它就是所谓的色环——这个长条首尾都是红色,所以它其实可以接起来。
那么,理解了这个,我就可以简单的解释色相是什么——色相就是你调出的任何一个颜色,按光的比例关系进行变换(这个变换是为了去除明度和纯度的影响)后,总是可以对应到色环上一个固定的位置——这个位置就是色相——你可以理解成色彩的方向,或者色彩的本相。那么,这样做有什么用呢?1.这样我们就可以叫出颜色的名字——比如上图左边是一个橙色,右边是一个绿色。
2.有很多色彩规律蕴含在其中。比如色彩的冷暖规律,色彩搭配的色彩层次,色彩冲突的调整等等,都是基于色环来研究的
反色与补色的计算方式
反色: CNew = 255 - COld,也就是 CNew + COlde = '#ffffff' 纯白色
补色: CNew = Max(R,G,B) + Min(R,G,B) - COld,也就是 CNew + COlde = 灰色
RGB 与 HSB/HSV 的关系的更多相关文章
- 色彩空间RGB/CMYK/HSL/HSB/HSV/Lab/YUV基础理论及转换方法:RGB与YUV
之前做个设计,现在从事IT,脑子里面关于RGB,RGBA,CMY,CMYK,YUV,但是具体理论还是不扎实.若干年前之前写过<水煮RGB与CMYK色彩模型—色彩与光学相关物理理论浅叙>&l ...
- RGB和HSB的转换推算
RGB三原色是基于人肉眼对光线的生理作用.人眼内有三种椎状体“对这三种光线频率所能感受的带宽最大,也能独立刺激这三种颜色的受光体”,因此RGB称为三原色.比如,黄色波长的光对人眼的刺激效果,和红色与绿 ...
- RGB与HSB之间的转换公式
先来了解一些概念: 1.RGB是一种加色模型,就是将不同比例的Red/Green/Blue混合在一起得到新颜色.通常RGB颜色模型表示为: 2.HSB(HSV) 通过色相/饱和度/亮度三要素来表达颜色 ...
- RGB,CMYK,HSB各种颜色表示的转换 C#语言
Introduction Why an article on "colors"? It's the same question I asked myself before writ ...
- RGB与HSB之间转换
先来了解一些概念: 1.RGB是一种加色模型,就是将不同比例的Red/Green/Blue混合在一起得到新颜色.通常RGB颜色模型表示为: 2.HSB(HSV) 通过色相/饱和度/亮度三要素来表达颜色 ...
- C# RGB和HSB相互转换
背景 最近做的项目中有这样一个场景,设置任意一种颜色,得到这种颜色偏深和偏浅的两种颜色.也就是说取该颜色同色系的深浅两种颜色.首先想到的是调节透明度,但效果不理想.后来尝试调节颜色亮度,发现这才是正解 ...
- c# 颜色RGB到HSB互相转换
/// <summary> /// 色相,饱和度,亮度转换成rgb值 /// </summary> /// <returns></returns> pu ...
- RGB颜色空间、HSV颜色空间的理解
HSV是把H(色相),S(饱和度),V(亮度)当做色值来定位颜色的空间. 1.HSV模型 色相:取值范围是0~360度,用来表示颜色的类别.其中红色是0度,绿色是120度,蓝色是240度.饱和度:取值 ...
- e585. Converting Between RGB and HSB Colors
This example demonstrates how to convert between a color value in RGB (three integer values in the r ...
随机推荐
- Skywalking-02:如何写一个Skywalking trace插件
如何写一个Skywalking trace插件 javaagent 原理 美团技术团队-Java 动态调试技术原理及实践 类图 实现 ConsumeMessageConcurrentlyInstrum ...
- Unsupported major.minor version 52.0解决办法【转】
1.首先解释一下报错原因: stanford parser和jdk版本对应关系 J2SE8=52, J2SE7=51, J2SE6.0=50, J2SE5.0=49, JDK1.4=48, JDK1. ...
- java基于mongodb实现分布式锁
原理 通过线程安全findAndModify 实现锁 实现 定义锁存储对象: /** * mongodb 分布式锁 */ @Data @NoArgsConstructor @AllArgsConstr ...
- Java ParallelStream
ParallelStream 处理数据 Stream 接口提供了parallelStream方法来将集合转换为并行流.即将一个集合分为多个数据块,并用不同的线程分别处理每个数据块的流. 并且使用par ...
- Linux无法下载GCC
Linux:ping百度ping不通 因为作业需要今天使用Linux下载GCC编译器,却发生了不可预知的错误: Errors during downloading metadata for repos ...
- Openresty Lua协程调度机制
写在前面 OpenResty(后面简称:OR)是一个基于Nginx和Lua的高性能Web平台,它内部集成大量的Lua API以及第三方模块,可以利用它快速搭建支持高并发.极具动态性和扩展性的Web应用 ...
- ElasticSearch进阶篇(一)--版本控制
一.前言 ElasticSearch(以下简称ES)的数据写入支持高并发,高并发就会带来很普遍的数据一致性问题.常见的解决方法就是加锁.同样,ES为了保证高并发写的数据一致性问题,加入了类似于锁的实现 ...
- Kong网关安装之Docker版(1)
前言: Kong 是天生的微服务网关.她的官方简介是:Kong 是一个云原生,高效,可扩展的分布式 API 网关. 自 2015 年在 github 开源后,广泛受到关注,目前已收获 1.9w+ 的 ...
- Required request body is missing-请求接口报错
一.问题由来 自己目前在做一个小程序的后台,已经写好了项目中的很多的接口,同时也在进行一些修改,比如添加拦截器,统一校验一个固定的参数是否正确. 在自己添加拦截器之前,这些接口都可以正常访问,可是在添 ...
- Typora+Markdown便捷发布blog
参考文章:https://www.cnblogs.com/Heroge/p/12459762.html 需要下载Typora和dotnet Typora下载链接:https://www.typora. ...