Color.GetSaturation() не работает?
Я использую цветовые фильтры HSL (HSL = HSB в качестве яркости насыщенности Heu). Чтобы преобразовать цвет в HSL, я делаю:
Color myColor = Color.FromArgb(pixel[blue], pixel[green], pixel[red]);
int HSLhue = (int)myColor.GetHue(); // note normally its a float but i need an int
float HSLsat = myColor.GetSaturation() * 100;
float HSLlight = myColor.GetBrightness()*100; //mycolorGetBrightness allready is a float.
Проблема, с которой я столкнулся в этом коде, заключается в том, что HSLheu работает нормально, а HSLlight работает нормально, однако, когда я использую цвет с небольшим количеством серого, HSLsat не отражает правильное значение. Из того, что я прочитал об этом, должно быть 0 для серого и 1 для чистого цвета. Так что в моем случае это от 0 до 100, но если я проверю его, чтобы увидеть, попадает ли насыщенность в определенный диапазон, это не работает.
1 ответ
Ну да ладно, это сработало, одна из тех { } ошибок ввода в фильтре, который его использовал, я много искал в коде и начал ощущать матрицу здесь.