Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Рассчет более яркого цвета (http://www.flasher.ru/forum/showthread.php?t=113814)

Antisly 09.07.2008 23:21

Рассчет более яркого цвета
 
Уважаемые, подскажите как один цвет пересчитать в другой так, чтобы он получился на определенный процент ярче (светлее)? Это необходимо для реализции эффекта "блик", котрорый хочу сделать через beginGradientFill. Если есть другой способ, то буду благодарен за подсказку... :)

ramshteks 10.07.2008 00:09

вот те прога си++
разберешся со смыслом думаю )

Код:

Image1->Picture->LoadFromFile("c:\\img1.bmp");
TColor col[120][20], temp;
for(int j=0;j<20;j++){
    for(int i=0;i<120;i++){
        col[i][j]=Image1->Canvas->Pixels[i][0];
        temp=Image1->Canvas->Pixels[i][j];

        if(temp<8388607){
        temp=0;
        }else{
        temp=16777215;
        }

        //temp=temp;

        Image2->Canvas->Pixels[i][j]=temp;
    }
}

смысл в том что те что темнее пиксели те становились совсем черными а те что светлее те становились белыми)

Felicast 10.07.2008 00:13

я пробовал так делать, только не во флеше. я переводил значение пикселя из RGB в HSB (или HSL или HSV по разному называется), менял параметр B (он как раз отвечает за яркость), затем назад в RGB.
может быть во флеше есть специальная функция, кокторая это все реализует, я не знаю:(

Antisly 10.07.2008 00:16

Цитата:

Сообщение от ramshteks (Сообщение 751211)
вот те прога си++
разберешся со смыслом думаю )

Код:

....
смысл в том что те что темнее пиксели те становились совсем черными а те что светлее те становились белыми)

Чё-то не то, вроде бы... мне надо с RGB работать, а не с черным и белым цветом.... я так понимаю, надо RGB разложить на составляющие, усилить каналы и собрать RGB обратно. У меня чего-то не очень получилось, цвет почему-то оттенок менял :)

etc 10.07.2008 01:11

http://etcs.ru/blog/ru/etcs/draw/colorobject/

Felicast 10.07.2008 11:38

Цитата:

Сообщение от Antisly (Сообщение 751214)
я так понимаю, надо RGB разложить на составляющие, усилить каналы и собрать RGB обратно. У меня чего-то не очень получилось, цвет почему-то оттенок менял :)

почитай тут: http://ru.wikipedia.org/wiki/HSL
там представлен алгоритм конвертации из RGB в HSL и обратно
там за яркость отвечает L

Antisly 10.07.2008 11:47

Цитата:

Сообщение от Felicast (Сообщение 751270)
почитай тут: http://ru.wikipedia.org/wiki/HSL
там представлен алгоритм конвертации из RGB в HSL и обратно
там за яркость отвечает L

OK, спасибо! Думал, что все проще, ан нет! :) Ладно, будем разбираться....

vic_ 10.07.2008 14:57

HLS и HSV(HSB) - это два разных зверя

Felicast 11.07.2008 01:34

Цитата:

Сообщение от vic_ (Сообщение 751312)
HLS и HSV(HSB) - это два разных зверя

согласен.
я пробовал реализовывать оба. правда я менял только тон, поэтому разницы не заметил.

vic_ 11.07.2008 05:13

По Hue может быть и незаметно на глаз. Из начального поста цитата:
>
Уважаемые, подскажите как один цвет пересчитать в другой так, чтобы он получился на определенный процент ярче (светлее)?
Если ярче - то это HSV, менять Value(Brightness), а если светлее - то это HLS, Lightness
Я делал панель Color Palette для Fireworks, можно видеть в бете CS4. Там по градиентам на слайдерах заметна разница.


Часовой пояс GMT +4, время: 00:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.