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

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


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

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



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

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

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

void HSV2RGB (unsigned char &r, unsigned char &g, unsigned char &b,

unsigned int i_hue, unsigned char sat, unsigned char val)

/* Вход:

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

* 0 - красный, 60 - желтый,

* 120 - зеленый, 180 - голубой

* 240 - синий, 300 - пурпурный

* hue == 360 - неопределён !!!

* Остальные цвета между ними

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

* 0 <= val <= 255 - Value - светлота

*

* Выход:

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

*/

  {

    int ii;

    double fr, hue;

    unsigned char c1, c2, c3;

    if (!sat)

      r = g = b = val;

    else

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

        while (i_hue >= 360)

          i_hue -= 360;

        hue = i_hue;

        ii = (int)(hue /= 60.0);

        fr = hue - ii;

        c1 = (val * (255 - sat)) / 255;

        c2 = (val * (255 - sat * fr)) / 255;

        c3 = (val * (255 - sat * (1.0 - fr))) / 255;

        switch (ii)

          {

            case 0: r = val; g = c3; b = c1; break;

            case 1: r = c2; g = val; b = c1; break;

            case 2: r = c1; g = val; b = c3; break;

            case 3: r = c1; g = c2; b = val; break;

            case 4: r = c3; g = c1; b = val; break;

            case 5: r = val; g = c1; b = c2; break;

          } // switch

      } // if (!sat)

  } // HSV 2 RGB

 



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

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




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



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


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