RGB рд╕реЗ HSL рдХреНрдпрд╛ рд╣реИ?
RGB рдХрд┐рд╕реА рд░рдВрдЧ рдХреЛ рд▓рд╛рд▓ (Red), рд╣рд░рд╛ (Green) рдФрд░ рдиреАрд▓рд╛ (Blue) рд░реЛрд╢рдиреА рдорд┐рд▓рд╛рдХрд░ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рдЪреИрдирд▓ рдХреА рд╡реИрд▓реНрдпреВ 0 рд╕реЗ 255 рдХреЗ рдмреАрдЪ рд╣реЛрддреА рд╣реИред рд╡рд╣реАрдВ HSL рдЙрд╕реА рд░рдВрдЧ рдХреЛ рддреАрди рдЬрд╝реНрдпрд╛рджрд╛ рд╕рдордЭрдиреЗ-рдпреЛрдЧреНрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рд╕реЗ рдмрддрд╛рддрд╛ рд╣реИ: рд╣реНрдпреВ (рдХрд▓рд░ рд╡реНрд╣реАрд▓ рдкрд░ рд░рдВрдЧ рдХреА рд╕реНрдерд┐рддрд┐, 0-360┬░), рд╕реИрдЪреБрд░реЗрд╢рди (рд░рдВрдЧ рдХрд┐рддрдирд╛ рдЧрд╛рдврд╝рд╛ рдпрд╛ рдЪрдЯрдХ рд╣реИ, 0-100%) рдФрд░ рд▓рд╛рдЗрдЯрдиреЗрд╕ (рд░рдВрдЧ рдХрд┐рддрдирд╛ рд╣рд▓реНрдХрд╛ рдпрд╛ рдЧрд╣рд░рд╛ рд╣реИ, 0-100%)ред рдбрд┐рдЬрд╝рд╛рдЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП HSL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрдЯрдиреЗрд╕ рдпрд╛ рд╕реИрдЪреБрд░реЗрд╢рди рдмрджрд▓рдиреЗ рдХрд╛ рд╕реАрдзрд╛ рдорддрд▓рдм рд╣реЛрддрд╛ рд╣реИ тАФ "рд╣рд▓реНрдХрд╛", "рдЧрд╣рд░рд╛", "рдЬрд╝реНрдпрд╛рджрд╛ рдЪрдЯрдХ" рдпрд╛ "рдЬрд╝реНрдпрд╛рджрд╛ рднреВрд░рд╛"ред
рдЗрд╕ рдХрдиреНрд╡рд░реНрдЯрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреИрд╕реЗ рдХрд░реЗрдВ
рдЕрдкрдиреЗ рд░рдВрдЧ рдХреА рд▓рд╛рд▓, рд╣рд░реА рдФрд░ рдиреАрд▓реА рд╡реИрд▓реНрдпреВ рдбрд╛рд▓реЗрдВ тАФ рд╣рд░ рдПрдХ 0 рд╕реЗ 255 рдХреЗ рдмреАрдЪред рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рддреБрд░рдВрдд рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рдХрд╛ HSL рдорд╛рди рджрд┐рдЦрд╛ рджреЗрдЧрд╛, рдЬрд┐рд╕реЗ рдЖрдк рд╕реАрдзреЗ CSS рдореЗрдВ hsl(H, S%, L%) рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдлреЙрд░реНрдореВрд▓рд╛ рдЖрд╕рд╛рди рд╢рдмреНрджреЛрдВ рдореЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рд░ рдЪреИрдирд▓ рдХреЛ 255 рд╕реЗ рднрд╛рдЧ рджреЗрдХрд░ 0 рдФрд░ 1 рдХреЗ рдмреАрдЪ рдиреЙрд░реНрдорд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╡реИрд▓реНрдпреВ max рдФрд░ рд╕рдмрд╕реЗ рдЫреЛрдЯреА min рд╣реИред рд▓рд╛рдЗрдЯрдиреЗрд╕ \(L = (max + min) / 2\) рд╣реЛрддреА рд╣реИред рдЕрдЧрд░ max рдФрд░ min рдмрд░рд╛рдмрд░ рд╣реИрдВ, рддреЛ рд░рдВрдЧ рднреВрд░реЗ (рдЧреНрд░реЗ) рдХрд╛ рдХреЛрдИ рд╢реЗрдб рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реИрдЪреБрд░реЗрд╢рди рдФрд░ рд╣реНрдпреВ рджреЛрдиреЛрдВ 0 рд╣реЛрддреЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рдЬрдм \(L > 0.5\) рд╣реЛ рддреЛ рд╕реИрдЪреБрд░реЗрд╢рди \(= (max - min) / (2 - max - min)\) рд╣реЛрддреА рд╣реИ, рдФрд░ рдЬрдм \(L \le 0.5\) рд╣реЛ рддреЛ \((max - min) / (max + min)\)ред рд╣реНрдпреВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рддрдп рд╣реЛрддреА рд╣реИ рдХрд┐ рдХреМрди-рд╕рд╛ рдЪреИрдирд▓ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ (max) рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рдбрд┐рдЧреНрд░реА (0-360) рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
$$L = \frac{C_{max} + C_{min}}{2}, \quad S = \begin{cases} \dfrac{\Delta}{2 - C_{max} - C_{min}} & L > 0.5 \\[0.6em] \dfrac{\Delta}{C_{max} + C_{min}} & L \le 0.5 \end{cases}$$ $$\text{where}\quad \left\{ \begin{aligned} R &= \frac{\text{Red}}{255}, \; G = \frac{\text{Green}}{255}, \; B = \frac{\text{Blue}}{255} \\ C_{max} &= \max(R,G,B), \; C_{min} = \min(R,G,B), \; \Delta = C_{max} - C_{min} \end{aligned} \right.$$ $$H = 60^{\circ} \times \begin{cases} \left(\dfrac{G - B}{\Delta}\right) \bmod 6 & C_{max} = R \\[0.7em] \dfrac{B - R}{\Delta} + 2 & C_{max} = G \\[0.7em] \dfrac{R - G}{\Delta} + 4 & C_{max} = B \end{cases}$$
рд╣рд▓ рдХрд┐рдпрд╛ рд╣реБрдЖ рдЙрджрд╛рд╣рд░рдг
рдЯрдорд╛рдЯрд░ рдЬреИрд╕реЗ рд▓рд╛рд▓ RGB(255, 99, 71) рдХреЗ рд▓рд┐рдП: рдиреЙрд░реНрдорд▓рд╛рдЗрдЬрд╝реНрдб \(= (1.0, 0.388, 0.278)\)ред \(max = 1.0\), \(min = 0.278\), рдЗрд╕рд▓рд┐рдП \(L = 0.639 \to 63.9\%\)ред рдЪреВрдБрдХрд┐ \(L > 0.5\), рдЗрд╕рд▓рд┐рдП $$S = (1.0 - 0.278) / (2 - 1.0 - 0.278) = 0.722 / 0.722 = 1.0 \to 100\%$$ рдпрд╣рд╛рдБ max рд▓рд╛рд▓ рд╣реИ, рддреЛ $$H = 60 \times ((0.388 - 0.278) / 0.722) = 60 \times 0.1525 = 9.1^{\circ}$$ рдирддреАрдЬрд╛: hsl(9, 100%, 64%)ред
рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓
рдЧреНрд░реЗ рд░рдВрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реНрдпреВ 0 рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИ? рдЬрдм рд▓рд╛рд▓, рд╣рд░рд╛ рдФрд░ рдиреАрд▓рд╛ рдмрд░рд╛рдмрд░ рд╣реЛрдВ рддреЛ рдХреЛрдИ рдкреНрд░рдореБрдЦ рд░рдВрдЧ рдирд╣реАрдВ рд░рд╣рддрд╛, рдЗрд╕рд▓рд┐рдП рд╣реНрдпреВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ 0 рдмрддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрдпрд╛ HSL рдФрд░ HSV/HSB рдПрдХ рд╣реА рд╣реИрдВ? рдирд╣реАрдВред HSL рдФрд░ HSV рдореЗрдВ рд╣реНрдпреВ рдПрдХ рдЬреИрд╕реА рд╣реЛрддреА рд╣реИ, рдкрд░ рд╕реИрдЪреБрд░реЗрд╢рди рдФрд░ рддреАрд╕рд░реА рд╡реИрд▓реНрдпреВ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдХрд╛рд▓реА рдЬрд╛рддреА рд╣реИрдВ; рдпрд╣ рдЯреВрд▓ HSL рджреЗрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдореИрдВ рдирддреАрдЬреЗ рдХреЛ рд╕реАрдзреЗ CSS рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ? рд╣рд╛рдБ тАФ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ hsl(9, 100%, 64%) рдХреЛ рд╕реАрдзреЗ рдПрдХ рдХрд▓рд░ рд╡реИрд▓реНрдпреВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВред