HSL/HSB-Farbformat in RGB konvertieren (Farbe wird dunkler)

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von System32.

    HSL/HSB-Farbformat in RGB konvertieren (Farbe wird dunkler)

    Guten Tag alle miteinander,

    ich bin vor einigen Tagen auf ein, meiner Ansicht nach, merkwürdiges Problem gestoßen: Ich habe mir eine Funktion geschrieben, die Farben aus dem HSL/HGB-Format in eine RGB-Farbe konvertiert. Nachdem ich mir die passenden Umrechnungsformeln angeschaut habe ging das auch alles super von der Hand.
    Um das ganze dann zu testen habe ich eine RGB-Farbe in HSL/HGB umgewandelt und danach direkt wieder zurück, um zu schauen, ob die Farbe gleich bleibt. Bleibt sie leider nicht... Sie wird ein bisschen dunkler. Nach längerer Recherche im Internet habe ich mithilfe von Copy & Paste verschiedene Funktionen von verschiedenen Autoren getestet. Nach der Implementierung kam jede Funktion zum gleichen Ergebnis: Die in HSL/HGB und danach wieder zurück konvertierte Farbe ist dunkler als die Ursprungsfarbe.
    Im folgenden einmal eine Liste mit folgendem Syntax: [RGB von Ursprungsfarbe]; [HSL von Ursprungsfarbe] --> [RGB von konvertierter Farbe]; [HSL von konvertierter Farbe]
    Spoiler anzeigen

    Quellcode

    1. RGB(0,0,0); HSL(0,0,0) --> RGB(0,0,0); HSL(0,0,0)
    2. RGB(0,0,50); HSL(240,1,0.09803922) --> RGB(0,0,25); HSL(240,1,0.04901961)
    3. RGB(0,0,100); HSL(240,1,0.1960784) --> RGB(0,0,50); HSL(240,1,0.09803922)
    4. RGB(0,0,150); HSL(240,1,0.2941177) --> RGB(0,0,75); HSL(240,1,0.1470588)
    5. RGB(0,0,200); HSL(240,1,0.3921569) --> RGB(0,0,100); HSL(240,1,0.1960784)
    6. RGB(0,0,250); HSL(240,1,0.4901961) --> RGB(0,0,125); HSL(240,1,0.245098)
    7. RGB(0,50,0); HSL(120,1,0.09803922) --> RGB(0,25,0); HSL(120,1,0.04901961)
    8. RGB(0,50,50); HSL(180,1,0.09803922) --> RGB(0,25,25); HSL(180,1,0.04901961)
    9. RGB(0,50,100); HSL(210,1,0.1960784) --> RGB(0,25,50); HSL(210,1,0.09803922)
    10. RGB(0,50,150); HSL(220,1,0.2941177) --> RGB(0,25,75); HSL(220,1,0.1470588)
    11. RGB(0,50,200); HSL(225,1,0.3921569) --> RGB(0,25,100); HSL(225,1,0.1960784)
    12. RGB(0,50,250); HSL(228,1,0.4901961) --> RGB(0,25,125); HSL(228,1,0.245098)
    13. RGB(0,100,0); HSL(120,1,0.1960784) --> RGB(0,50,0); HSL(120,1,0.09803922)
    14. RGB(0,100,50); HSL(150,1,0.1960784) --> RGB(0,50,25); HSL(150,1,0.09803922)
    15. RGB(0,100,100); HSL(180,1,0.1960784) --> RGB(0,50,50); HSL(180,1,0.09803922)
    16. RGB(0,100,150); HSL(200,1,0.2941177) --> RGB(0,50,75); HSL(200,1,0.1470588)
    17. RGB(0,100,200); HSL(210,1,0.3921569) --> RGB(0,50,100); HSL(210,1,0.1960784)
    18. RGB(0,100,250); HSL(216,1,0.4901961) --> RGB(0,50,125); HSL(216,1,0.245098)
    19. RGB(0,150,0); HSL(120,1,0.2941177) --> RGB(0,75,0); HSL(120,1,0.1470588)
    20. RGB(0,150,50); HSL(140,1,0.2941177) --> RGB(0,75,25); HSL(140,1,0.1470588)
    21. RGB(0,150,100); HSL(160,1,0.2941177) --> RGB(0,75,50); HSL(160,1,0.1470588)
    22. RGB(0,150,150); HSL(180,1,0.2941177) --> RGB(0,75,75); HSL(180,1,0.1470588)
    23. RGB(0,150,200); HSL(195,1,0.3921569) --> RGB(0,75,100); HSL(195,1,0.1960784)
    24. RGB(0,150,250); HSL(204,1,0.4901961) --> RGB(0,75,125); HSL(204,1,0.245098)
    25. RGB(0,200,0); HSL(120,1,0.3921569) --> RGB(0,100,0); HSL(120,1,0.1960784)
    26. RGB(0,200,50); HSL(135,1,0.3921569) --> RGB(0,100,25); HSL(135,1,0.1960784)
    27. RGB(0,200,100); HSL(150,1,0.3921569) --> RGB(0,100,50); HSL(150,1,0.1960784)
    28. RGB(0,200,150); HSL(165,1,0.3921569) --> RGB(0,100,75); HSL(165,1,0.1960784)
    29. RGB(0,200,200); HSL(180,1,0.3921569) --> RGB(0,100,100); HSL(180,1,0.1960784)
    30. RGB(0,200,250); HSL(192,1,0.4901961) --> RGB(0,100,125); HSL(192,1,0.245098)
    31. RGB(0,250,0); HSL(120,1,0.4901961) --> RGB(0,125,0); HSL(120,1,0.245098)
    32. RGB(0,250,50); HSL(132,1,0.4901961) --> RGB(0,125,25); HSL(132,1,0.245098)
    33. RGB(0,250,100); HSL(144,1,0.4901961) --> RGB(0,125,50); HSL(144,1,0.245098)
    34. RGB(0,250,150); HSL(156,1,0.4901961) --> RGB(0,125,75); HSL(156,1,0.245098)
    35. RGB(0,250,200); HSL(168,1,0.4901961) --> RGB(0,125,100); HSL(168,1,0.245098)
    36. RGB(0,250,250); HSL(180,1,0.4901961) --> RGB(0,125,125); HSL(180,1,0.245098)
    37. RGB(50,0,0); HSL(0,1,0.09803922) --> RGB(25,0,0); HSL(0,1,0.04901961)
    38. RGB(50,0,50); HSL(300,1,0.09803922) --> RGB(25,0,25); HSL(300,1,0.04901961)
    39. RGB(50,0,100); HSL(270,1,0.1960784) --> RGB(25,0,50); HSL(270,1,0.09803922)
    40. RGB(50,0,150); HSL(260,1,0.2941177) --> RGB(25,0,75); HSL(260,1,0.1470588)
    41. RGB(50,0,200); HSL(255,1,0.3921569) --> RGB(25,0,100); HSL(255,1,0.1960784)
    42. RGB(50,0,250); HSL(252,1,0.4901961) --> RGB(25,0,125); HSL(252,1,0.245098)
    43. RGB(50,50,0); HSL(60,1,0.09803922) --> RGB(25,25,0); HSL(60,1,0.04901961)
    44. RGB(50,50,50); HSL(0,8.195639E-09,0.1960784) --> RGB(50,50,50); HSL(0,8.195639E-09,0.1960784)
    45. RGB(50,50,100); HSL(240,0.3333333,0.2941177) --> RGB(50,50,75); HSL(240,0.2,0.245098)
    46. RGB(50,50,150); HSL(240,0.5,0.3921569) --> RGB(50,50,100); HSL(240,0.3333333,0.2941177)
    47. RGB(50,50,200); HSL(240,0.6,0.4901961) --> RGB(50,50,125); HSL(240,0.4285714,0.3431373)
    48. RGB(50,50,250); HSL(240,0.952381,0.5882353) --> RGB(7,7,150); HSL(240,0.9108281,0.3078431)
    49. RGB(50,100,0); HSL(90,1,0.1960784) --> RGB(25,50,0); HSL(90,1,0.09803922)
    50. RGB(50,100,50); HSL(120,0.3333333,0.2941177) --> RGB(50,75,50); HSL(120,0.2,0.245098)
    51. RGB(50,100,100); HSL(180,0.3333333,0.2941177) --> RGB(50,75,75); HSL(180,0.2,0.2450981)
    52. RGB(50,100,150); HSL(210,0.5,0.3921569) --> RGB(50,75,100); HSL(210,0.3333333,0.2941177)
    53. RGB(50,100,200); HSL(220,0.6,0.4901961) --> RGB(50,75,125); HSL(220,0.4285714,0.3431373)
    54. RGB(50,100,250); HSL(225,0.952381,0.5882353) --> RGB(7,43,150); HSL(224.8951,0.9108281,0.3078431)
    55. RGB(50,150,0); HSL(100,1,0.2941177) --> RGB(25,75,0); HSL(100,1,0.1470588)
    56. RGB(50,150,50); HSL(120,0.5,0.3921569) --> RGB(50,100,50); HSL(120,0.3333333,0.2941177)
    57. RGB(50,150,100); HSL(150,0.5,0.3921569) --> RGB(50,100,75); HSL(150,0.3333333,0.2941177)
    58. RGB(50,150,150); HSL(180,0.5,0.3921569) --> RGB(50,100,100); HSL(180,0.3333333,0.2941177)
    59. RGB(50,150,200); HSL(200,0.6,0.4901961) --> RGB(50,100,125); HSL(200,0.4285714,0.3431373)
    60. RGB(50,150,250); HSL(210,0.952381,0.5882353) --> RGB(7,79,150); HSL(209.7902,0.9108281,0.3078431)
    61. RGB(50,200,0); HSL(105,1,0.3921569) --> RGB(25,100,0); HSL(105,1,0.1960784)
    62. RGB(50,200,50); HSL(120,0.6,0.4901961) --> RGB(50,125,50); HSL(120,0.4285714,0.3431373)
    63. RGB(50,200,100); HSL(140,0.6,0.4901961) --> RGB(50,125,75); HSL(140,0.4285714,0.3431373)
    64. RGB(50,200,150); HSL(160,0.6,0.4901961) --> RGB(50,125,100); HSL(160,0.4285714,0.3431373)
    65. RGB(50,200,200); HSL(180,0.6,0.4901961) --> RGB(50,125,125); HSL(180,0.4285714,0.3431373)
    66. RGB(50,200,250); HSL(195,0.952381,0.5882353) --> RGB(7,114,150); HSL(195.1049,0.9108281,0.3078431)
    67. RGB(50,250,0); HSL(108,1,0.4901961) --> RGB(25,125,0); HSL(108,1,0.245098)
    68. RGB(50,250,50); HSL(120,0.952381,0.5882353) --> RGB(7,150,7); HSL(120,0.9108281,0.3078431)
    69. RGB(50,250,100); HSL(135,0.952381,0.5882353) --> RGB(7,150,43); HSL(135.1049,0.9108281,0.3078431)
    70. RGB(50,250,150); HSL(150,0.952381,0.5882353) --> RGB(7,150,79); HSL(150.2098,0.9108281,0.3078431)
    71. RGB(50,250,200); HSL(165,0.952381,0.5882353) --> RGB(7,150,114); HSL(164.8951,0.9108281,0.3078431)
    72. RGB(50,250,250); HSL(180,0.952381,0.5882353) --> RGB(7,150,150); HSL(180,0.9108281,0.3078431)
    73. RGB(100,0,0); HSL(0,1,0.1960784) --> RGB(50,0,0); HSL(0,1,0.09803922)
    74. RGB(100,0,50); HSL(330,1,0.1960784) --> RGB(50,0,25); HSL(330,1,0.09803922)
    75. RGB(100,0,100); HSL(300,1,0.1960784) --> RGB(50,0,50); HSL(300,1,0.09803922)
    76. RGB(100,0,150); HSL(280,1,0.2941177) --> RGB(50,0,75); HSL(280,1,0.1470588)
    77. RGB(100,0,200); HSL(270,1,0.3921569) --> RGB(50,0,100); HSL(270,1,0.1960784)
    78. RGB(100,0,250); HSL(264,1,0.4901961) --> RGB(50,0,125); HSL(264,1,0.245098)
    79. RGB(100,50,0); HSL(30,1,0.1960784) --> RGB(50,25,0); HSL(30,1,0.09803922)
    80. RGB(100,50,50); HSL(9.834766E-07,0.3333333,0.2941177) --> RGB(75,50,50); HSL(1.966953E-06,0.2,0.245098)
    81. RGB(100,50,100); HSL(300,0.3333333,0.2941177) --> RGB(75,50,75); HSL(300,0.2,0.2450981)
    82. RGB(100,50,150); HSL(270,0.5,0.3921569) --> RGB(75,50,100); HSL(270,0.3333333,0.2941177)
    83. RGB(100,50,200); HSL(260,0.6,0.4901961) --> RGB(75,50,125); HSL(260,0.4285714,0.3431373)
    84. RGB(100,50,250); HSL(255,0.952381,0.5882353) --> RGB(43,7,150); HSL(255.1049,0.9108281,0.3078431)
    85. RGB(100,100,0); HSL(60,1,0.1960784) --> RGB(50,50,0); HSL(60,1,0.09803922)
    86. RGB(100,100,50); HSL(60,0.3333333,0.2941177) --> RGB(75,75,50); HSL(60,0.2,0.245098)
    87. RGB(100,100,100); HSL(0,8.195639E-09,0.3921569) --> RGB(100,100,100); HSL(0,8.195639E-09,0.3921569)
    88. RGB(100,100,150); HSL(240,0.2,0.4901961) --> RGB(100,100,125); HSL(240,0.1111111,0.4411765)
    89. RGB(100,100,200); HSL(240,0.4761905,0.5882353) --> RGB(79,79,150); HSL(240,0.3100437,0.4490196)
    90. RGB(100,100,250); HSL(240,0.9375,0.6862745) --> RGB(11,11,175); HSL(240,0.8817204,0.3647059)
    91. RGB(100,150,0); HSL(80,1,0.2941177) --> RGB(50,75,0); HSL(80,1,0.1470588)
    92. RGB(100,150,50); HSL(90,0.5,0.3921569) --> RGB(75,100,50); HSL(90,0.3333333,0.2941177)
    93. RGB(100,150,100); HSL(120,0.2,0.4901961) --> RGB(100,125,100); HSL(120,0.1111111,0.4411765)
    94. RGB(100,150,150); HSL(180,0.2,0.4901961) --> RGB(100,125,125); HSL(180,0.1111111,0.4411765)
    95. RGB(100,150,200); HSL(210,0.4761905,0.5882353) --> RGB(79,114,150); HSL(210.4225,0.3100437,0.4490196)
    96. RGB(100,150,250); HSL(220,0.9375,0.6862745) --> RGB(11,66,175); HSL(219.8781,0.8817204,0.3647059)
    97. RGB(100,200,0); HSL(90,1,0.3921569) --> RGB(50,100,0); HSL(90,1,0.1960784)
    98. RGB(100,200,50); HSL(100,0.6,0.4901961) --> RGB(75,125,50); HSL(100,0.4285714,0.3431373)
    99. RGB(100,200,100); HSL(120,0.4761905,0.5882353) --> RGB(79,150,79); HSL(120,0.3100437,0.4490196)
    100. RGB(100,200,150); HSL(150,0.4761905,0.5882353) --> RGB(79,150,114); HSL(149.5775,0.3100437,0.4490196)
    101. RGB(100,200,200); HSL(180,0.4761905,0.5882353) --> RGB(79,150,150); HSL(180,0.3100437,0.4490196)
    102. RGB(100,200,250); HSL(200,0.9375,0.6862745) --> RGB(11,120,175); HSL(200.1219,0.8817204,0.3647059)
    103. RGB(100,250,0); HSL(96,1,0.4901961) --> RGB(50,125,0); HSL(96,1,0.245098)
    104. RGB(100,250,50); HSL(105,0.952381,0.5882353) --> RGB(43,150,7); HSL(104.8951,0.9108281,0.3078431)
    105. RGB(100,250,100); HSL(120,0.9375,0.6862745) --> RGB(11,175,11); HSL(120,0.8817204,0.3647059)
    106. RGB(100,250,150); HSL(140,0.9375,0.6862745) --> RGB(11,175,66); HSL(140.1219,0.8817204,0.3647059)
    107. RGB(100,250,200); HSL(160,0.9375,0.6862745) --> RGB(11,175,120); HSL(159.8781,0.8817204,0.3647059)
    108. RGB(100,250,250); HSL(180,0.9375,0.6862745) --> RGB(11,175,175); HSL(180,0.8817204,0.3647059)
    109. RGB(150,0,0); HSL(0,1,0.2941177) --> RGB(75,0,0); HSL(0,1,0.1470588)
    110. RGB(150,0,50); HSL(340,1,0.2941177) --> RGB(75,0,25); HSL(340,1,0.1470588)
    111. RGB(150,0,100); HSL(320,1,0.2941177) --> RGB(75,0,50); HSL(320,1,0.1470588)
    112. RGB(150,0,150); HSL(300,1,0.2941177) --> RGB(75,0,75); HSL(300,1,0.1470588)
    113. RGB(150,0,200); HSL(285,1,0.3921569) --> RGB(75,0,100); HSL(285,1,0.1960784)
    114. RGB(150,0,250); HSL(276,1,0.4901961) --> RGB(75,0,125); HSL(276,1,0.245098)
    115. RGB(150,50,0); HSL(20,1,0.2941177) --> RGB(75,25,0); HSL(20,1,0.1470588)
    116. RGB(150,50,50); HSL(4.917383E-07,0.5,0.3921569) --> RGB(100,50,50); HSL(9.834766E-07,0.3333333,0.2941177)
    117. RGB(150,50,100); HSL(330,0.5,0.3921569) --> RGB(100,50,75); HSL(330,0.3333333,0.2941177)
    118. RGB(150,50,150); HSL(300,0.5,0.3921569) --> RGB(100,50,100); HSL(300,0.3333333,0.2941177)
    119. RGB(150,50,200); HSL(280,0.6,0.4901961) --> RGB(100,50,125); HSL(280,0.4285714,0.3431373)
    120. RGB(150,50,250); HSL(270,0.952381,0.5882353) --> RGB(79,7,150); HSL(270.2098,0.9108281,0.3078431)
    121. RGB(150,100,0); HSL(40,1,0.2941177) --> RGB(75,50,0); HSL(40,1,0.1470588)
    122. RGB(150,100,50); HSL(30,0.5,0.3921569) --> RGB(100,75,50); HSL(30,0.3333333,0.2941177)
    123. RGB(150,100,100); HSL(1.966953E-06,0.2,0.4901961) --> RGB(125,100,100); HSL(3.933907E-06,0.1111111,0.4411765)
    124. RGB(150,100,150); HSL(300,0.2,0.4901961) --> RGB(125,100,125); HSL(300,0.1111111,0.4411765)
    125. RGB(150,100,200); HSL(270,0.4761905,0.5882353) --> RGB(114,79,150); HSL(269.5775,0.3100437,0.4490196)
    126. RGB(150,100,250); HSL(260,0.9375,0.6862745) --> RGB(66,11,175); HSL(260.1219,0.8817204,0.3647059)
    127. RGB(150,150,0); HSL(60,1,0.2941177) --> RGB(75,75,0); HSL(60,1,0.1470588)
    128. RGB(150,150,50); HSL(60,0.5,0.3921569) --> RGB(100,100,50); HSL(60,0.3333333,0.2941177)
    129. RGB(150,150,100); HSL(60,0.2,0.4901961) --> RGB(125,125,100); HSL(60,0.1111111,0.4411765)
    130. RGB(150,150,150); HSL(0,2.980232E-08,0.5882353) --> RGB(150,150,150); HSL(0,2.980232E-08,0.5882353)
    131. RGB(150,150,200); HSL(240,0.3125,0.6862745) --> RGB(120,120,175); HSL(240,0.255814,0.5784314)
    132. RGB(150,150,250); HSL(240,0.9090909,0.7843137) --> RGB(18,18,200); HSL(240,0.8348624,0.427451)
    133. RGB(150,200,0); HSL(75,1,0.3921569) --> RGB(75,100,0); HSL(75,1,0.1960784)
    134. RGB(150,200,50); HSL(80,0.6,0.4901961) --> RGB(100,125,50); HSL(80,0.4285714,0.3431373)
    135. RGB(150,200,100); HSL(90,0.4761905,0.5882353) --> RGB(114,150,79); HSL(90.42254,0.3100437,0.4490196)
    136. RGB(150,200,150); HSL(120,0.3125,0.6862745) --> RGB(120,175,120); HSL(120,0.255814,0.5784314)
    137. RGB(150,200,200); HSL(180,0.3125,0.6862745) --> RGB(120,175,175); HSL(180,0.255814,0.5784314)
    138. RGB(150,200,250); HSL(210,0.9090909,0.7843137) --> RGB(18,109,200); HSL(210,0.8348624,0.427451)
    139. RGB(150,250,0); HSL(84,1,0.4901961) --> RGB(75,125,0); HSL(84,1,0.245098)
    140. RGB(150,250,50); HSL(90,0.952381,0.5882353) --> RGB(79,150,7); HSL(89.79021,0.9108281,0.3078431)
    141. RGB(150,250,100); HSL(100,0.9375,0.6862745) --> RGB(66,175,11); HSL(99.87805,0.8817204,0.3647059)
    142. RGB(150,250,150); HSL(120,0.9090909,0.7843137) --> RGB(18,200,18); HSL(120,0.8348624,0.427451)
    143. RGB(150,250,200); HSL(150,0.9090909,0.7843137) --> RGB(18,200,109); HSL(150,0.8348624,0.427451)
    144. RGB(150,250,250); HSL(180,0.9090909,0.7843137) --> RGB(18,200,200); HSL(180,0.8348624,0.427451)
    145. RGB(200,0,0); HSL(0,1,0.3921569) --> RGB(100,0,0); HSL(0,1,0.1960784)
    146. RGB(200,0,50); HSL(345,1,0.3921569) --> RGB(100,0,25); HSL(345,1,0.1960784)
    147. RGB(200,0,100); HSL(330,1,0.3921569) --> RGB(100,0,50); HSL(330,1,0.1960784)
    148. RGB(200,0,150); HSL(315,1,0.3921569) --> RGB(100,0,75); HSL(315,1,0.1960784)
    149. RGB(200,0,200); HSL(300,1,0.3921569) --> RGB(100,0,100); HSL(300,1,0.1960784)
    150. RGB(200,0,250); HSL(288,1,0.4901961) --> RGB(100,0,125); HSL(288,1,0.245098)
    151. RGB(200,50,0); HSL(15,1,0.3921569) --> RGB(100,25,0); HSL(15,1,0.1960784)
    152. RGB(200,50,50); HSL(3.278255E-07,0.6,0.4901961) --> RGB(125,50,50); HSL(6.556511E-07,0.4285714,0.3431373)
    153. RGB(200,50,100); HSL(340,0.6,0.4901961) --> RGB(125,50,75); HSL(340,0.4285714,0.3431373)
    154. RGB(200,50,150); HSL(320,0.6,0.4901961) --> RGB(125,50,100); HSL(320,0.4285714,0.3431373)
    155. RGB(200,50,200); HSL(300,0.6,0.4901961) --> RGB(125,50,125); HSL(300,0.4285714,0.3431373)
    156. RGB(200,50,250); HSL(285,0.952381,0.5882353) --> RGB(114,7,150); HSL(284.8951,0.9108281,0.3078431)
    157. RGB(200,100,0); HSL(30,1,0.3921569) --> RGB(100,50,0); HSL(30,1,0.1960784)
    158. RGB(200,100,50); HSL(20,0.6,0.4901961) --> RGB(125,75,50); HSL(20,0.4285714,0.3431373)
    159. RGB(200,100,100); HSL(9.834766E-07,0.4761905,0.5882353) --> RGB(150,79,79); HSL(2.442951E-06,0.3100437,0.4490196)
    160. RGB(200,100,150); HSL(330,0.4761905,0.5882353) --> RGB(150,79,114); HSL(330.4225,0.3100437,0.4490196)
    161. RGB(200,100,200); HSL(300,0.4761905,0.5882353) --> RGB(150,79,150); HSL(300,0.3100437,0.4490196)
    162. RGB(200,100,250); HSL(280,0.9375,0.6862745) --> RGB(120,11,175); HSL(279.8781,0.8817204,0.3647059)
    163. RGB(200,150,0); HSL(45,1,0.3921569) --> RGB(100,75,0); HSL(45,1,0.1960784)
    164. RGB(200,150,50); HSL(40,0.6,0.4901961) --> RGB(125,100,50); HSL(40,0.4285714,0.3431373)
    165. RGB(200,150,100); HSL(30,0.4761905,0.5882353) --> RGB(150,114,79); HSL(29.57746,0.3100437,0.4490196)
    166. RGB(200,150,150); HSL(7.510185E-06,0.3125,0.6862745) --> RGB(175,120,120); HSL(4.876743E-07,0.255814,0.5784314)
    167. RGB(200,150,200); HSL(300,0.3125,0.6862745) --> RGB(175,120,175); HSL(300,0.255814,0.5784314)
    168. RGB(200,150,250); HSL(270,0.9090909,0.7843137) --> RGB(109,18,200); HSL(270,0.8348624,0.427451)
    169. RGB(200,200,0); HSL(60,1,0.3921569) --> RGB(100,100,0); HSL(60,1,0.1960784)
    170. RGB(200,200,50); HSL(60,0.6,0.4901961) --> RGB(125,125,50); HSL(60,0.4285714,0.3431373)
    171. RGB(200,200,100); HSL(60,0.4761905,0.5882353) --> RGB(150,150,79); HSL(60,0.3100437,0.4490196)
    172. RGB(200,200,150); HSL(60,0.3125,0.6862745) --> RGB(175,175,120); HSL(60,0.255814,0.5784314)
    173. RGB(200,200,200); HSL(0,2.980232E-08,0.7843137) --> RGB(200,200,200); HSL(0,2.980232E-08,0.7843137)
    174. RGB(200,200,250); HSL(240,0.8333333,0.8823529) --> RGB(38,38,225); HSL(240,0.757085,0.5156863)
    175. RGB(200,250,0); HSL(72,1,0.4901961) --> RGB(100,125,0); HSL(72,1,0.245098)
    176. RGB(200,250,50); HSL(75,0.952381,0.5882353) --> RGB(114,150,7); HSL(75.1049,0.9108281,0.3078431)
    177. RGB(200,250,100); HSL(80,0.9375,0.6862745) --> RGB(120,175,11); HSL(80.12196,0.8817204,0.3647059)
    178. RGB(200,250,150); HSL(90,0.9090909,0.7843137) --> RGB(109,200,18); HSL(90,0.8348624,0.427451)
    179. RGB(200,250,200); HSL(120,0.8333333,0.8823529) --> RGB(38,225,38); HSL(120,0.757085,0.5156863)
    180. RGB(200,250,250); HSL(180,0.8333333,0.8823529) --> RGB(38,225,225); HSL(180,0.757085,0.5156863)
    181. RGB(250,0,0); HSL(0,1,0.4901961) --> RGB(125,0,0); HSL(0,1,0.245098)
    182. RGB(250,0,50); HSL(348,1,0.4901961) --> RGB(125,0,25); HSL(348,1,0.245098)
    183. RGB(250,0,100); HSL(336,1,0.4901961) --> RGB(125,0,50); HSL(336,1,0.245098)
    184. RGB(250,0,150); HSL(324,1,0.4901961) --> RGB(125,0,75); HSL(324,1,0.245098)
    185. RGB(250,0,200); HSL(312,1,0.4901961) --> RGB(125,0,100); HSL(312,1,0.245098)
    186. RGB(250,0,250); HSL(300,1,0.4901961) --> RGB(125,0,125); HSL(300,1,0.245098)
    187. RGB(250,50,0); HSL(12,1,0.4901961) --> RGB(125,25,0); HSL(12,1,0.245098)
    188. RGB(250,50,50); HSL(2.458692E-07,0.952381,0.5882353) --> RGB(150,7,7); HSL(2.422741E-08,0.9108281,0.3078431)
    189. RGB(250,50,100); HSL(345,0.952381,0.5882353) --> RGB(150,7,43); HSL(344.8951,0.9108281,0.3078431)
    190. RGB(250,50,150); HSL(330,0.952381,0.5882353) --> RGB(150,7,79); HSL(329.7902,0.9108281,0.3078431)
    191. RGB(250,50,200); HSL(315,0.952381,0.5882353) --> RGB(150,7,114); HSL(315.1049,0.9108281,0.3078431)
    192. RGB(250,50,250); HSL(300,0.952381,0.5882353) --> RGB(150,7,150); HSL(300,0.9108281,0.3078431)
    193. RGB(250,100,0); HSL(24,1,0.4901961) --> RGB(125,50,0); HSL(24,1,0.245098)
    194. RGB(250,100,50); HSL(15,0.952381,0.5882353) --> RGB(150,43,7); HSL(15.10489,0.9108281,0.3078431)
    195. RGB(250,100,100); HSL(6.556511E-07,0.9375,0.6862745) --> RGB(175,11,11); HSL(1.0767E-07,0.8817204,0.3647059)
    196. RGB(250,100,150); HSL(340,0.9375,0.6862745) --> RGB(175,11,66); HSL(339.8781,0.8817204,0.3647059)
    197. RGB(250,100,200); HSL(320,0.9375,0.6862745) --> RGB(175,11,120); HSL(320.1219,0.8817204,0.3647059)
    198. RGB(250,100,250); HSL(300,0.9375,0.6862745) --> RGB(175,11,175); HSL(300,0.8817204,0.3647059)
    199. RGB(250,150,0); HSL(36,1,0.4901961) --> RGB(125,75,0); HSL(36,1,0.245098)
    200. RGB(250,150,50); HSL(30,0.952381,0.5882353) --> RGB(150,79,7); HSL(30.20979,0.9108281,0.3078431)
    201. RGB(250,150,100); HSL(20,0.9375,0.6862745) --> RGB(175,66,11); HSL(20.12195,0.8817204,0.3647059)
    202. RGB(250,150,150); HSL(3.755093E-06,0.9090909,0.7843137) --> RGB(200,18,18); HSL(2.726421E-07,0.8348624,0.427451)
    203. RGB(250,150,200); HSL(330,0.9090909,0.7843137) --> RGB(200,18,109); HSL(330,0.8348624,0.427451)
    204. RGB(250,150,250); HSL(300,0.9090909,0.7843137) --> RGB(200,18,200); HSL(300,0.8348624,0.427451)
    205. RGB(250,200,0); HSL(48,1,0.4901961) --> RGB(125,100,0); HSL(48,1,0.245098)
    206. RGB(250,200,50); HSL(45,0.952381,0.5882353) --> RGB(150,114,7); HSL(44.8951,0.9108281,0.3078431)
    207. RGB(250,200,100); HSL(40,0.9375,0.6862745) --> RGB(175,120,11); HSL(39.87805,0.8817204,0.3647059)
    208. RGB(250,200,150); HSL(30,0.9090909,0.7843137) --> RGB(200,109,18); HSL(30,0.8348624,0.427451)
    209. RGB(250,200,200); HSL(3.933907E-06,0.8333333,0.8823529) --> RGB(225,38,38); HSL(4.924555E-07,0.757085,0.5156863)
    210. RGB(250,200,250); HSL(300,0.8333333,0.8823529) --> RGB(225,38,225); HSL(300,0.757085,0.5156863)
    211. RGB(250,250,0); HSL(60,1,0.4901961) --> RGB(125,125,0); HSL(60,1,0.245098)
    212. RGB(250,250,50); HSL(60,0.952381,0.5882353) --> RGB(150,150,7); HSL(60,0.9108281,0.3078431)
    213. RGB(250,250,100); HSL(60,0.9375,0.6862745) --> RGB(175,175,11); HSL(60,0.8817204,0.3647059)
    214. RGB(250,250,150); HSL(60,0.9090909,0.7843137) --> RGB(200,200,18); HSL(60,0.8348624,0.427451)
    215. RGB(250,250,200); HSL(60,0.8333333,0.8823529) --> RGB(225,225,38); HSL(60,0.757085,0.5156863)
    216. RGB(250,250,250); HSL(0,2.980233E-08,0.9803922) --> RGB(250,250,250); HSL(0,2.980233E-08,0.9803922)[/box]


    Ich finde leider kein relatives Verhältnis zwischen den Zahlen und komme mir auch ein bisschen doof vor eines zu suchen, da ich denke, dass der Fehler eigentlich viel simpler ist... Vielleicht hatte jemand dasselbe Problem oder kennt sich besser mit dem HSB/HSL-Farbformat aus. Ich bin über jede Hilfe dankbar.

    Hier einer der vielen Algorithmen (kam ja alles auf dasselbe hinaus):
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Function hsvToColor(ByVal hue As Double, ByVal saturation As Double, ByVal value As Double)
    2. Dim hi As Integer = Convert.ToInt32(Math.Floor(hue / 60))
    3. Dim f As Double = hue / 60 - hi
    4. Dim p As Integer = Convert.ToInt32(value * (1 - saturation) * 255)
    5. Dim q As Integer = Convert.ToInt32(value * (1 - saturation * f) * 255)
    6. Dim t As Integer = Convert.ToInt32(value * (1 - saturation * (1 - f)) * 255)
    7. Dim val As Integer = Convert.ToInt32(value * 255)
    8. Select Case hi
    9. Case 0
    10. Return Color.FromArgb(val, t, p)
    11. Case 1
    12. Return Color.FromArgb(q, val, p)
    13. Case 2
    14. Return Color.FromArgb(p, val, t)
    15. Case 3
    16. Return Color.FromArgb(p, q, val)
    17. Case 4
    18. Return Color.FromArgb(t, p, val)
    19. Case 5
    20. Return Color.FromArgb(val, p, q)
    21. Case 6
    22. Return Color.FromArgb(val, t, p)
    23. End Select
    24. End Function


    Schönen Tag noch, Gruß
    System32
    @System32 Die Color-Struktur bietet ebenfalls die Umrechnung in HSV an, sieh Dir die mal an:

    VB.NET-Quellcode

    1. Dim col = Color.FromArgb(r, g, b)
    2. Dim h = col.GetHue
    3. Dim s = col.GetSaturation
    4. Dim v = col.GetBrightness
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @System32 Die Color-Struktur bietet ebenfalls die Umrechnung in HSV an, sieh Dir die mal an:

    Jo, jo. Das ist soweit ich weiß ein One-Way-Ticket.
    Ich würde ja gerne genau in die andere Richtung.

    EDIT: Ich finde aber die Idee eine systemeigene Funktion zu nutzen super. Der ColorDialog kann das ja auch...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „System32“ ()

    HSL- bzw. HSB-Farbformate sind unterschiedliche Farbformate. In welchen wandelt man jetzt um?
    de.wikipedia.org/wiki/HSV-Farbraum
    Im Framework wird auf HSB-Farbräume verwiesen (oben genannte Methoden wie: .GetHue, .GetSaturation und .GetBrightness) - sie sind aber anscheinend HSL-Farbraum bezogen?
    Hier eine Diskussion darüber...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB1963“ ()

    Mir ist auch noch nicht ganz klar, in welches Farbformat du umwandeln willst. Deine Funktion im OP heißt ja "hsvToColor". Für den Wandel zwischen HSV und RGB habe ich dir hier mal die Funktionen hingepackt; die funktionieren auch, wenn man hin und her konvertiert (ist halt C# aber kannste ja ganz einfach umändern):

    Spoiler anzeigen

    C#-Quellcode

    1. public Color GetColorRGB(double H, double S, double V)
    2. {
    3. int hi = Convert.ToInt32(Math.Floor(H / 60)) % 6;
    4. double f = H / 60 - Math.Floor(H / 60);
    5. double value = V * 255;
    6. byte v = Convert.ToByte(value);
    7. byte p = Convert.ToByte(value * (1 - S));
    8. byte q = Convert.ToByte(value * (1 - f * S));
    9. byte t = Convert.ToByte(value * (1 - (1 - f) * S));
    10. if (hi == 0)
    11. return Color.FromArgb(v, t, p);
    12. else if (hi == 1)
    13. return Color.FromArgb(q, v, p);
    14. else if (hi == 2)
    15. return Color.FromArgb(p, v, t);
    16. else if (hi == 3)
    17. return Color.FromArgb(p, q, v);
    18. else if (hi == 4)
    19. return Color.FromArgb(t, p, v);
    20. else
    21. return Color.FromArgb(v, p, q);
    22. }

    C#-Quellcode

    1. //Die ColorHSV-Klasse ist fiktiv; da müsstest du dir erst eine erstellen
    2. public ColorHSV GetColorHSV(byte R, byte G, byte B)
    3. {
    4. int max = Math.Max(R, Math.Max(G, B));
    5. int min = Math.Min(R, Math.Min(G, B));
    6. double hue = System.Drawing.Color.FromArgb(255, R, G, B).GetHue();
    7. double saturation = (max == 0) ? 0 : 1d - (1d * min / max);
    8. double value = max / 255d;
    9. return new ColorHSV(hue, saturation, value);
    10. }

    Twitch Viewer Display Chat-, Zuschauer- und Statistiktool für Streamer
    Vielen Dank.
    Habe da tatsächlich etwas mit den Formeln von den verschiedenen Farbräumen durcheinander gebracht...
    Mich wundert, dass sowas nicht gleich schon in der Color-Klasse drin ist. Ich meine, der Colordialog macht das ja auch ohne Probleme :P