Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июня!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

Как перевести цвет из RGB-представления в HSV? 

Для перевода цвета из RGB в HSV воспользуйтесь следующим кодом:

RGB2HSV (unsigned int &hue, unsigned char &sat, unsigned char &val,

unsigned char r, unsigned char g, unsigned char b)

/*

* 0 <= r,g,b <= 255 - значения красного, зеленого, синего

*

*

* Выход:

* 0 <= hue <= 360 градусов - оттенок.

* 0 <= sat <= 255 - Saturation - насыщенность

* 0 <= val <= 255 - Value - яркость

*/

  {

    double h, rc, gc, bc, dmax;

    unsigned char s, v;

    unsigned char minc, maxc;

    maxc = (r > g) ? ((r > b) ? r : b) : ((g > b)? g : b);

    minc = (r < g) ? ((r < b) ? r : b) : ((g < b)? g : b);

    s = 0; // Насыщенность

 

    if (maxc)

      {

         s = (maxc - minc) * 255 / maxc;

      }

    sat = s;

    val = maxc;

    if (!s)

      { // Ахроматический цвет

        hue = UNDEFINED_HUE;

      }

    else

      { // Хроматический цвет

        dmax = maxc - minc;

        rc = (maxc - r) / dmax; /* rc - удаленность */

        gc = (maxc - g) / dmax; /* цвета от красного */

        bc = (maxc - b) / dmax;

        if (r == maxc)

          { // Цвет между желтым и пурпурным

            h = bc - gc;

          }

        else if (g == maxc)

          { // Цвет между голубым и желтым

            h = 2 + rc - bc;

          }

        else

          { // Цвет между пурпурным и голубым

            h = 4 + gc - rc;

          }

        h *= 60.0;

        if (h < 0.0)

          {

             h += 360.0;

          }

        hue = h;

        if (hue == 360)

          {

              hue = 0;

          }

      } // if (!s)

  } // RGB 2 HSV



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS