windows画图吧 关注:12贴子:59
  • 1回复贴,共1

RGB与HSL互转公式

只看楼主收藏回复

RGB转HSL公式
R,G,B,H,S,L∈[0,1]
M=MAX(R,G,B)
m=min(R,G,B)
L=(M+m)/2
L≤1/2→S=(M-m)/(M+m)
L≥1/2→S=(M-m)/(2-M-m)
R=M,B=m→H=0+(G-B)/6(R-B)
G=M,B=m→H=1/3-(R-B)/6(G-B)
G=M,R=m→H=1/3+(B-R)/6(G-R)
B=M,R=m→H=2/3-(G-R)/6(B-R)
B=M,G=m→H=2/3+(R-G)/6(B-G)
R=M,G=m→H=1-(B-G)/6(R-G)
HSL转RGB公式
L≤1/2→M=L(1+S),m=L(1-S)
L≥1/2→M=1-(1-S)(1-L),m=1-(1+S)(1-L)
H∈[0,1/6]→R=M,B=m,G=6H(R-B)+B
H∈[1/6,1/3]→G=M,B=m,R=6(1/3-H)(G-B)+B
H∈[1/3,1/2]→G=M,R=m,B=6(H-1/3)(G-R)+R
H∈[1/2,2/3]→B=M,R=m,G=6(2/3-H)(B-R)+R
H∈[2/3,5/6]→B=M,G=m,R=6(H-2/3)(B-G)+G
H∈[5/6,1]→R=M,G=m,B=6(1-H)(R-G)+G
注意:在计算机上RGB一般是0~255,HSL一般是0~240,这时需要先除以255或240,转化为0~1


IP属地:江西来自Android客户端1楼2023-05-05 22:23回复
    这个公式是怎么来的哇


    IP属地:湖北来自Android客户端2楼2025-04-07 12:47
    回复