Как преобразовать Hex в RGB?

Я пытаюсь использовать это, чтобы выяснить, светлый ли цвет или темный

Оценить, является ли значение 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 ? Или я уже далеко?

19
задан Community 23 May 2017 в 12:34
поделиться