我可能不會使用正確的顏色術語,但我希望基本上能夠縮放與所附圖片相似的顏色。我一直在尋找飽和度來做到這一點,因爲看起來正確的版本只是左側的飽和版本。如何去色飽和度?
我是想這(我發現),但它是不是找正確可言:
Public Shared Function GetDesaturatedColor(color As Color) As Color
Const kValue As Double = 0.01R
Dim greyLevel = (color.R * 0.299R) + _
(color.G * 0.587R) + _
(color.B * 0.144R)
Dim r = greyLevel * kValue + (color.R) * (1 - kValue)
Dim g = greyLevel * kValue + (color.G) * (1 - kValue)
Dim b = greyLevel * kValue + (color.B) * (1 - kValue)
' ColorUtils.ToByte converts the double value
' to a byte safely
Return color.FromArgb(255, _
ColorUtils.ToByte(r), _
ColorUtils.ToByte(g), _
ColorUtils.ToByte(b))
End Function
有誰知道一些算法,可以做到這一點的?
搜索這裏RGB到HSL,你會發現關於這個專題的許多職位。 – Brad