電腦中的顏色VII——快速計算純色的偏轉

來源:互聯網
上載者:User

  在顏色的實際使用中,通過更改顏色的色相值改變圖片的顏色是常用的方法。

  通過更改純色的色相值稱為純色的偏轉,例如:純色(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-(255-R+G+B)/255×60    公式2

  令ω為偏轉值,且定義正值為順時針偏轉,負值為逆時針偏轉,ω的取值範圍為[-180,180]

  則偏轉後的顏色的色相值H'=H+ω,此時H'有一個溢出的問題。後文再討論。

  在“電腦中的顏色VI——從色相值到純色的快速計算”中,

  計算純色的關鍵就在於純色和紅色的夾角θ,當H<180,θ=H;當H>180,θ=360-H

  結合公式1和公式2,可知θ=(255-R+G+B)/255×60

  偏轉後的純色和紅色的夾角θ’=θ+ω,此時的ω和上文的ω有一定的區別,在六色環的右邊,定義和上文一樣;在六色環的左邊,定義和上文相反,逆時針正值,順時針負值。因為六色環左右對稱的緣故。

  λ’=θ’/60×255=(θ+ω)/60×255=[(255-R+G+B)/255×60+ω]/60×255=255-R+G+B+ω/60×255

  令ω’=ω/60×255,則λ’=255-R+G+B+ω’

  再考慮λ’的溢出問題,

  當λ’<0時,說明,偏轉後的顏色跨越了左右分區(註:在上文中,實際顏色分為左右兩個分區)。此時,令λ’’=-λ’

  當λ’>765時,也說明偏轉後的顏色跨越了左右分區。此時,令λ’’=1530-λ’

  否則λ’’=λ’

  則偏轉後的純色(R’,G’,B’)

  R’=510-λ’’;若R’<0,則R’=0;若R’>255,則R’=255;

  G’=λ’’;若G’>255,則G’=255;

  B’=λ’’-510;若B’<0;則B’=0;

  若偏轉後的顏色在左半區,那麼交換G’,B’

  如何判斷偏轉後的顏色在左半區,而要交換G’,B’?

  對於G≥B,原色在右半區,那麼當出現跨越分區的情況。偏轉後的純色在左半區。就是λ’<0或λ’>765

  對於G<B,原色在左半區,那麼當沒出現跨越分區的情況。偏轉後的純色在左半區。就是0≤λ’≤765

  這兩種情況,有沒有統一的表述公式呢?

  當(G<B)XOR(λ’<0或λ’>765)運算式為TRUE時,要交換G’,B’

  XOR表示異或運算,兩個邏輯運算式為一真一假時,得到TRUE,反之得到FALSE

 

  好,把上面的推理過程梳理一下。純色(R,G,B)偏轉ω後,如何計算偏轉純色(R’,G’,B’)

  當G<B時,ω=-ω

  ω’=ω/60×255

  λ’=255-R+G+B+ω’

  當λ’<0時,令λ’’=-λ’

  當λ’>765時,令λ’’=1530-λ’

  否則λ’’=λ’

  偏轉純色的分量

  R’=510-λ’’;若R’<0,則R’=0;若R’>255,則R’=255;

  G’=λ’’;若G’>255,則G’=255;

  B’=λ’’-510;若B’<0;則B’=0;

  若(G<B)XOR(λ’<0或λ’>765)=True時,交換G’,B’分量的值

 

  (255,44,0)順時針偏轉127得到什麼顏色呢?答案是(0,255,74)

  (255,44,0)逆時針偏轉127得到什麼顏色呢?答案是(14,0,255)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.