の色値をRGB
に変換するか、より正確にはSystem.Drawing.Color
オブジェクトのHSL値をPowershellに変換する必要があります。 他の言語ではいくつか解決策があります(LINKなど)。しかし、それはシンプルに見えますが、私はそれをPowershellに変換することはありません。Powershell:HSLから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
"Powershellに変換されていません" - これまでに何を試みましたか?どのようにあなたの期待を満たしていないのですか? –
PowerShellに移植されたときにリンクされた答えのサンプル関数がうまく動作します。btw –
ええ、コードを忘れました。 :)私はいくつかの行に疑問を抱きました。そして、私が翻訳することができなかった行(コード参照)がありました。主に私は演算子のいくつかが何を意味するのか知りません。 – Moss