User Tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
isp:hsl-_rgb [2021/07/24 11:42] – [HSL->RGB] Igor Yefmovisp:hsl-_rgb [2022/04/04 23:32] (current) – external edit 127.0.0.1
Line 89: Line 89:
  
 ^  #  ^  name  ^  math excerpt from Wikipedia  ^  bits  ^  range  ^  C-like code  ^  factor((multiply by that much to get the "real" value))  ^ ^  #  ^  name  ^  math excerpt from Wikipedia  ^  bits  ^  range  ^  C-like code  ^  factor((multiply by that much to get the "real" value))  ^
-| 1 | \[h\] | \[hue(pixel)\] |  ''14''\\ signed  |  \[-8192..+8191\] mapped into \(-180^\circ..+180^\circ\)  | <code>= pixel.hue();</code> | \[\frac{45}{2^{11}}\] | +| 1 | \[H\] | \[hue(pixel)\] |  ''14''\\ signed  |  \[-8192..+8191\] mapped into \(-180^\circ..+180^\circ\)  | <code>= pixel.hue();</code> | \[\frac{180}{2^{13}}\] | 
-| 2 | \[s\] | \[sat(pixel)\] |  ''8''  | \[0..255\] | <code>= pixel.sat();</code> | \[1\] | +| 2 | \[S\] | \[sat(pixel)\] |  ''9''  | \[0..511\] | <code>= pixel.sat();</code> | \[^1/_2\] | 
-| 3 | \[l\] | \[luma(pixel)\] |  ''9''  |  \[0..511\] mapped into \(0..255\)  | <code>= pixel.luma();</code> | \[^1/_2\] | +| 3 | \[L\] | \[luma(pixel)\] |  ''12''  |  \[0..4095\] mapped into \(0..255\)  | <code>= pixel.luma();</code> | \[\frac{1}{2^4}\] | 
-| 4 | \[H\] | \[(H+360^\circ) \bmod 360^\circ\] |  ''12''  |  \[0..4096\] mapped into \(0^\circ..+360^\circ\)  | <code>h1 = (h >> 2); +| 4 | \[h\] | \[(H+360^\circ) \bmod 360^\circ\] |  ''14''  |  \[0..16383\] mapped into \(0^\circ..+360^\circ\)  | <code>= (H > 0 ? : H + 16383);</code> | \[\frac{360}{2^{14}}\] | 
-= (h1 > 0 ? h1 h1 + 4096);</code> ((optimized from<code>= ((h > 0 ? h : h 16384) >> 2);</code>)) | \[\frac{45}{2^{9}}\] +| 5 | \[L^\prime\] | \[1-|2L-1|\] |  ''12''  | | <code>L_prime = 2^12 - abs(2 * L - 2^12);</code> | \[\frac{1}{2^{12}}\] | 
-| | \(S\)((not needed for calculations)) | \[\frac{S}{255}\] | | \[0..1\] | | | +| 6 | \[C\] | \[L^\prime \times S\] |  ''21''  | | <code>C = L_prime * s;</code> | \[\frac{1}{2^{21}}\] | 
-| | \(L\)((not needed for calculations)) | \[\frac{S}{511}\] | | \[0..1\] | | +| 7 | \[H^\prime\] | \[\frac{H}{60^\circ}\] |  ''23''  |  \[0..2^23-1\] mapped into \(0..6\)  | <code>Hp = H * 273;</code> | \[\frac{180}{2^{27}}\] | 
-| 5 | \[L^\prime\] | \[1-|2L-1|\] |  ''9'' \[0..510\] | <code>L_prime = 2^- abs(2 * L - 2^9);</code> | \[\frac{1}{2^9}\] | +| 8 | \[H^\prime_2\] | \[H^\prime \bmod 2\] |  ''21''  | | <code>Hp2 = Hp - (91 * 2^14) * (Hp * 90) >> 27)</code>((optimized from <code>Hp2 = Hp % (2^14 * 273 / 3);</code>)) | \[\frac{180}{2^{27}}\] | 
-| 6 | \[C\] | \[L^\prime \times S\] |  ''9'' \[0..510\] | <code>C = ((L_prime * s) >> 8);</code> | \[\frac{1}{2^9}\] | +| 9 | \[H^\prime_{2-1}\] | \[H^\prime \bmod 2 - 1\] |  ''21''\\ signed  | | <code>Hp2m1 = Hp2 - 2^13 * 91;</code> | \[\frac{180}{2^{27}}\] | 
-| 7 | \[H^\prime\] | \[\frac{H}{60^\circ}\] |  ''12''  |  \[0..4095\] mapped into \(0..6\)  | <code>Hp = ((H * 273) >> 9);</code> | \[\frac{45}{2^{14}}\] | +| 11 | \[H^\prime_{final}\] | \[1-|H^\prime \bmod 2 - 1|\] |  ''21''  | | <code>Hpf = 91 * 2^13 - abs(Hp2m1);</code> | \[\frac{180}{2^{27}}\] | 
-| 8 | \[H^\prime_2\] | \[H^\prime \bmod 2\] |  ''10'' \[0..727\] | <code>Hp2 = Hp - (91 * 2^3) * ((Hp * 90) >> 16)</code>((optimized from <code>Hp2 = Hp % (2^* 273 / 3);</code>)) | \[\frac{45}{2^{14}}\] | +| 12 | \[X\] | \[C \times H^\prime_{final}\] |  ''21''  | | <code>X = ((C * Hpf * 180) >> 27);</code> | \[\frac{1}{2^21}\] | 
-| 9 | \[H^\prime_{2-1}\] | \[H^\prime \bmod 2 - 1\] |  ''10''\\ signed \[-364..+363\] | <code>Hp2m1 = Hp2 - 2^* 91;</code> | \[\frac{45}{2^{14}}\] | +| 13 | \[(R_1,G_1,B_1)\] | multi-branch |  ''21''  | | <code>if(Hp < 745472*1){
-| 11 | \[H^\prime_{final}\] | \[1-|H^\prime \bmod 2 - 1|\] |  ''9''  \[0..364\] mapped into \(0..1\)  | <code>Hpf = 91 * 2^- abs(Hp2m1);</code> | \[\frac{45}{2^{14}}\] | +
-| 12 | \[X\] | \[C \times H^\prime_{final}\] |  ''9'' \[0..510\] | <code>X = ((C * Hpf * 180) >> 16);</code> | \[\frac{1}{2^9}\] | +
-| 13 | \[(R_1,G_1,B_1)\] | multi-branch |  ''9'' \[0..510\] | <code>if(Hp < 364*1){+
   /*(C,X,0)*/   /*(C,X,0)*/
-}else if(Hp < 364*2){+}else if(Hp < 745472*2){
   /*(X,C,0)*/   /*(X,C,0)*/
 }//...</code> | \[\] | }//...</code> | \[\] |
-| 14 | \[m\] | \[L - C/2\] |  ''9'' \[0..510\] | <code>m = - C / 2;</code> | \[\frac{1}{2^9}\] | +| 14 | \[m\] | \[L - C/2\] |  ''12''  | | <code>m = (/ 2^9) / 2;</code> | \[\frac{1}{2^{12}}\] | 
-| 15 | \[(R,G,B)\] | \[(R_1+m,G_1+m,B_1+m)\] |  ''8''  | \[0..255\] | <code>R=R1+m; G=G1+m; B=B1+m;</code> | \[1\] |+| 15 | \[(R,G,B)\] | \[(R_1+m,G_1+m,B_1+m)\] |  ''10''  | \[0..1023\] | <code>R=(R1/2^9+m)/2^2; G=(G1/2^9+m)/2^2; B=(B1/2^9+m)/2^2;</code> | \[1\] |
  

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

More information