计算机中的颜色XIII——颜色转换的快速计算公式

  本文的公式的基础都是在前文的基础上的。详情请参看前文:

  计算机中的颜色I——颜色概述

  计算机中的颜色II——VB2005中的Color结构

  计算机中的颜色III——HSV表示方法

  计算机中的颜色IV——纯色、色相色

  计算机中的颜色V——快速计算颜色的色相值

  计算机中的颜色VI——从色相值到纯色的快速计算

  计算机中的颜色VII——快速计算纯色的偏转

  计算机中的颜色VIII——快速计算颜色的偏转

  计算机中的颜色IX——总述:RGB和HSV快速转换

  计算机中的颜色X——两颜色的偏转值

  计算机中的颜色XI——从色相值到纯色的快速计算(新的公式)

  计算机中的颜色XII——快速计算纯色的色相值(新的公式)

 

  本文在前文的基础上。把颜色转换的各个公式重新整理了一番。

  1、基本概念:

    计算机中的颜色一般采用两种表示方法:

      RGB法:用R、G、B三个分量来表示一种颜色。每个分量取值范围在[0,255]

      HSV法:用色相H、饱和S、亮度V来表示一种颜色。

          其中,H的取值范围是[0,360),S的取值范围是[0,1],V的取值范围是[0,1]

    纯色:颜色的S,V分量均是1,则该颜色表示纯色。纯色和色相有一一对应的关系。故有时用纯色表示色相

    灰度色:当S=0时,该颜色为灰度色。此时,三个颜色分量均相等。

  2、基本函数:

    MAX{A1,A2,A3,A4,……}:表示在A1,A2,A3,A4,……中取最大值

    MIN{A1,A2,A3,A4,……}:表示在A1,A2,A3,A4,……中取最小值

    |A|:表示取A的绝对值,若A≥0,则为A;若A<0,则为-A

    SIGN(A):表示取A的符号,若A>0,则为1;若A<0,则为-1;若A=0,则为0

    {A,P}:范围截取函数,若A<0,则为0;若A>P,则为P;若0≤A≤P,则为A

    A MOD B:求余运算,表示A除以B后的余数

  3、颜色的转换:RGB》HSV

    颜色Q的三个分量R、G、B

    令Max=MAX{R,G,B};Min=MIN{R,G,B}

 

    若Max=Min,则H=0,S=0,V=Max/255

 

    若Max≠Min,则

      H=180+(2Max-G-B+R-Min)×SIGN(B-G-0.5)/(Max-Min)×60

      S=1-Min/Max

      V=Max/255

 

  4、颜色的转换:HSV》RGB

    颜色Q的三个分量H、S、V

    令Max=255V

    

    若S=0,则表示灰度色;R=G=B=Max

 

    若S>0,则

      令P=255SV=Max-Min;Min=Max-255SV=255(1-S)V

      H'=H/60×P

      R={|H'-3P|-P,P}+255(1-S)V

      G={2P-|H'-2P|,P}+255(1-S)V

      B={2P-|H'-4P|,P}+255(1-S)V

 

  5、获得指定颜色的纯色

    颜色Q的三个分量R、G、B。该颜色对应的纯色Q'的三个分量R'、G'、B'。

    令Max=MAX{R,G,B};Min=MIN{R,G,B}

    

    若Max=Min,则R'=G'=B'=Max

    

    若Max≠Min,则

      R'=(R-Min)/(Max-Min)

      G'=(G-Min)/(Max-Min)

      B'=(B-Min)/(Max-Min)

 

  6、颜色的偏转

    颜色Q的三个分量R、G、B。该颜色偏转N后得到的颜色Q'的三个分量R'、G'、B'

    N>0表示顺时针方向偏转;N<0表示逆时针方向偏转    

 

    若R=G=B,则该颜色为灰度色。则R'=R,G'=G,B'=B

 

    若不为灰度色

    先按照3的方法求出Q的色相H

    颜色Q'的色相H'=(H+N) MOD 360

    再按照4的方法求出颜色Q'的三个颜色分量

 

  7、求出两个颜色的偏转值

    颜色Q1的三个分量R1、G1、B1;颜色Q2的三个分量R2、G2、B2。求从颜色Q1到颜色Q2的偏转值

    先按照3的方法求出Q1的色相H1,Q2的色相H2

    N=(H2-H1) MOD 360

    

    

时间: 2024-09-22 23:29:43

计算机中的颜色XIII——颜色转换的快速计算公式的相关文章

计算机中的颜色IX——总述:RGB和HSV快速转换

写了一段有关颜色的文章,回顾过去几篇文章,做一个阶段性总结.利用前几篇文章的心得,推导出快速转换RGB模式与HSV模式的公式. RGB模式:用R.G.B三个颜色的分量来表示颜色,分量的取值范围为[0,255],整数型 HSV模式:用H.S.V三个分量来表示颜色. 分量H:表示颜色的色相,取值[0,360),整数型 分量S:表示颜色的纯度,取值[0,1),浮点数型 分量V:表示颜色的亮度,取值[0,1),浮点数型 以上内容,详细请参看"计算机中的颜色III--HSV表示方法" 1.RGB

计算机中的颜色XIV——快速变换颜色的V分量

基本知识回顾: 计算机中的颜色Color,用RGB模式存储(用R.G.B三个分量表示颜色,每个分量的范围是0-255). 而计算机中的颜色除了用RGB模式表示以外,常见的还有HSV模式(或者是HSB.HSL模式)   RGB模式: 用R.G.B三个分量表示颜色 R分量:红色(Red)分量,整数型,范围是[0,255] G分量:绿色(Green)分量,整数型,范围是[0,255] B分量:蓝色(Blue)分量,整数型,范围是[0,255]   HSV模式: 用H.S.V三个分量表示颜色 H分量:色

计算机中的颜色XI——从色相值到纯色的快速计算(新的公式)

先将前面写的关于颜色的十篇文章列表贴于下方 计算机中的颜色I--颜色概述 计算机中的颜色II--VB2005中的Color结构 计算机中的颜色III--HSV表示方法 计算机中的颜色IV--纯色.色相色 计算机中的颜色V--快速计算颜色的色相值 计算机中的颜色VI--从色相值到纯色的快速计算 计算机中的颜色VII--快速计算纯色的偏转 计算机中的颜色VIII--快速计算颜色的偏转 计算机中的颜色IX--总述:RGB和HSV快速转换 计算机中的颜色X--两颜色的偏转值   先回顾"计算机中的颜色V

计算机中的颜色X——两颜色的偏转值

颜色C1到颜色C2的偏转值定义为,颜色C1沿顺时针方向偏转到颜色C2时所转过的角度. 偏转值和两颜色C1与C2的夹角类似,但不完全一样.两颜色的夹角表示为两颜色的色相值的夹角,取值范围为[0,180],C1和C2的夹角与 C2和C1的夹角是一样的.偏转值特制C1沿顺时针所偏转的角度,故取值范围为[0,360).C1到C2的偏转值和C2到C1的偏转值是不一样的,他们的和为360. H1为C1和红色的夹角,H2为C2和红色的夹角.(相关的计算参看"计算机中的颜色V--快速计算颜色的色相值"

计算机中的颜色VII——快速计算纯色的偏转

在颜色的实际使用中,通过更改颜色的色相值改变图片的颜色是常用的方法. 通过更改纯色的色相值称为纯色的偏转,例如:纯色(255,0,0)顺时针偏转60就得到纯色(255,255,0),逆时针偏转60得到纯色(255,0,255). 那么纯色(255,44,0)顺时针偏转127得到什么颜色呢?下面的文章就是讲述计算方法. 在"计算机中的颜色V--快速计算颜色的色相值"中,纯色的色相值H的计算公式为: 当G≥B时,H=(255-R+G+B)/255×60 公示1 当G<B时,H=360

计算机中的颜色I——颜色概述

无论是设计网页还是编写程序,一个美观的界面是必不可少的.仔细分析界面的构成,无外乎两个因素:一是颜色.一个是形状.这个又被称为UI设计.美术功底好的人,是能设计出让人赏心悦目的界面来,欠缺美术功底的人,有时费尽心思也没辙. 这个系列的文章,专注于计算机的颜色表示.通过了解计算机的颜色表示,能有助于提高那些欠缺美术功底的人设计界面的能力. 计算机中的颜色是采用RGB颜色系统,也就是每种颜色采用红.绿.蓝三种分量.每个颜色分量的取值从0到255,一共有256种可能.则计算机中所能表示的颜色为256×

计算机中的颜色XII——快速计算纯色的色相值(新的公式)

在"计算机中的颜色XI--从色相值到纯色的快速计算(新的公式)"中提到了色相值到纯色的快速计算. 反过来如何快速的计算纯色的色相值?在"计算机中的颜色V--快速计算颜色的色相值"中曾经提到过计算公式 任意一个纯色的色相值可以用下面公式表示 当G≥B时,H=(255-R+G+B)/255×60 当G<B时,H=360-(255-R+G+B)/255×60 经过一番推导之后,将上面两个公式合并成一个计算公式. H=180+(510-G-B+R)×Sign(B-G-

计算机中的颜色VIII——快速计算颜色的偏转

在"计算机中的颜色VII--快速计算纯色的偏转"中介绍了纯色的偏转. 本文对上文的公式进行扩展,扩展到任意的颜色. 颜色(R,G,B)偏转ω后,如何计算偏转颜色(R',G',B') 具体的推导过程不详述了,和前文类似.下面介绍计算过程: 令MAX为R.G.B三个分量的最大值,MIN为R.G.B三个分量的最小值 若MAX=MIN,则颜色为灰度色,无论怎么偏转,还是原来的颜色. R'=R:G'=G:B'=B 若MAX≠MIN,令ρ=MAX-MIN 当G<B时,ω=-ω ω'=ω/60

计算机中的颜色V——快速计算颜色的色相值

在之前的文章中,给定一个颜色,它的色相值计算如下:   由公式可知,计算色相时要分为六种情况,计算略显复杂.有没有简单的计算方法呢?来看看下面这个图   上面这个图,表示纯色的色相分布,把纯色分为六个部分.仔细观察,每个部分的纯色都有统一的特点,例如,右上角的部分,R=255,B=0,G从0变化到255.右边的部分,G=255,B=0,R从255变化到0.每一个部分都是一个分量是255,一个分量是0,一个分量在0到255之间变化. 在仔细观察以后,突然发现,任意一种纯色(R,G,B)和红色之间的