Ich muss HSL
Farbwerte zu RGB
konvertieren, oder genauer HSL-Werte zu einem System.Drawing.Color
Objekt mit Powershell. Es gibt ein paar Lösungen in anderen Programmiersprachen (wie LINK). Aber während es einfach aussieht, kann ich es nicht in Powershell konvertieren.Powershell: HSL zu RGB
Function HSLtoRGB ($H,$S,$L) {
$H = [double]($H/360)
$S = [double]($S/100)
$L = [double]($L/100)
if ($s -eq 0) {
$r = $g = $b = $l
}
else {
if ($l -lt 0.5){
$q = $l * (1 + $s)
}
else {
$q = $l + $s - $l * $s
}
$p = (2 * $L) - $q
$r = (Hue2rgb $p $q ($h + 1/3))
$g = (Hue2rgb $p $q $h)
$b = (Hue2rgb $p $q ($h - 1/3))
}
$r = [Math]::Round($r * 255)
$g = [Math]::Round($g * 255)
$b = [Math]::Round($b * 255)
return ($r,$g,$b)
}
function Hue2rgb ($p, $q, $t) {
if ($t -lt 0) { $t++ }
if ($t -gt 0) { $t-- }
if ($t -lt 1/6) { return ($p + ($q + $p) * 6 * $t) }
if ($t -lt 1/2) { return $q }
if ($t -lt 2/3) { return ($p + ($q - $p) * (2/3 - $t) * 6) }
return $p
}
HSLtoRGB 63 45 40 # result should be R 145 G 148 B 56
"Ich kann es nicht in Powershell konvertieren" - was hast du bisher versucht? Wie wird es Ihren Erwartungen nicht gerecht? –
Die Beispielfunktion in der Antwort, mit der Sie verlinkt haben, funktioniert einwandfrei, wenn sie auf PowerShell portiert wurde. Btw –
Ja, vergessen Sie den Code. :) Ich hatte Zweifel an ein paar Zeilen und eine Zeile konnte ich gar nicht übersetzen (siehe Code). Hauptsächlich weiß ich nicht, was einige der Betreiber meinen. – Moss