zoukankan      html  css  js  c++  java
  • 计算机中的颜色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×ρ

        λ’=MAX-R+G-MIN+B-MIN+ω’

        当λ’<0时,令λ’’=-λ’

        当λ’>3ρ时,令λ’’=6ρ-λ’

        否则λ’’=λ’

        偏转纯色的分量

          R’=2ρ-λ’’;若R’<0,则R’=0;若R’>ρ,则R’=ρ;

          G’=λ’’;若G’>ρ,则G’=ρ;

          B’=λ’’-2ρ;若B’<0;则B’=0;

        若(G<B)XOR(λ’<0或λ’>3ρ)=True时,交换G’,B’分量的值

      最后

        R’=R’+MIN

        G’=G’+MIN

        B’=B’+MIN

      

      (120,44,20)顺时针偏转133得到什么颜色呢?答案是(20,120,66)

      (120,44,20)逆时针偏转133得到什么颜色呢?答案是(22,20,120)

  • 相关阅读:
    nginx重启命令
    Java中Vector笔记
    JAVA中字符串比较equals()和equalsIgnoreCase()的区别
    HashMap和TreeMap的常用排序方法
    Logger用法
    HashMap和Hashtable的区别
    class.getDeclaredFields()与class.getFields()
    java中 文件压缩处理
    Java远程执行Shell命令
    python 学习笔记 redis操作
  • 原文地址:https://www.cnblogs.com/grenet/p/1630021.html
Copyright © 2011-2022 走看看