Я пытаюсь использовать это, чтобы выяснить, светлый ли цвет или темный
Оценить, является ли значение HEX темным или свет
Теперь. Требуется int
float calcLuminance(int rgb)
{
int r = (rgb & 0xff0000) >> 16;
int g = (rgb & 0xff00) >> 8;
int b = (rgb & 0xff);
return (r*0.299f + g*0.587f + b*0.114f) / 256;
}
Хотя у меня шестнадцатеричный цвет.
Я пытался сделать это
var color = System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
int rgb = color.R + color.G + color.B;
var a = calcLuminance(rgb);
Получил 0,12725 Я думал, что это должно быть в диапазоне 0-256 или что-то в этом роде.
Что я делаю не так? Нужно ли скрывать R
в int
? Или я уже далеко?