Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHI.mastak.ru

Выпуск от 22.02.03 09:04

Лучшее из нашего FAQ   |x|
Преобразование цвета RGBуHLS


{ Максимальные значения }
Const
HLSMAX = 240;
RGBMAX = 255;
UNDEFINED = (HLSMAX*2) div 3;
Var
H, L, S : integer; { H-оттенок, L-яркость, S-насыщенность }
R, G, B : integer; { цвета }

procedure RGBtoHLS;
Var
cMax,cMin : integer;
Rdelta,Gdelta,Bdelta : single;
Begin
cMax := max( max(R,G), B);
cMin := min( min(R,G), B);
L := round( ( ((cMax+cMin)*HLSMAX) + RGBMAX )/(2*RGBMAX) );

if (cMax = cMin) then begin
S := 0; H := UNDEFINED;
end else begin
if (L <= (HLSMAX/2)) then
S := round( ( ((cMax-cMin)*HLSMAX) + ((cMax+cMin)/2) ) / (cMax+cMin) )
else
S := round( ( ((cMax-cMin)*HLSMAX) + ((2*RGBMAX-cMax-cMin)/2) )
/ (2*RGBMAX-cMax-cMin) );
Rdelta := ( ((cMax-R)*(HLSMAX/6)) + ((cMax-cMin)/2) ) / (cMax-cMin);
! Gdelta := ( ((cMax-G)*(HLSMAX/6)) + ((cMax-cMin)/2) ) / (cMax-cMin);
Bdelta := ( ((cMax-B)*(HLSMAX/6)) + ((cMax-cMin)/2) ) / (cMax-cMin);
if (R = cMax) then H := round(Bdelta - Gdelta)
else if (G = cMax) then H := round( (HLSMAX/3) + Rdelta - Bdelta)
else H := round( ((2*HLSMAX)/3) + Gdelta - Rdelta );
if (H < 0) then H:=H + HLSMAX;
if (H > HLSMAX) then H:= H - HLSMAX;
end;
if S<0 then S:=0; if S>HLSMAX then S:=HLSMAX;
if L<0 then L:=0; if L>HLSMAX then L:=HLSMAX;
end;


procedure HLStoRGB;
Var
Magic1,Magic2 : single;

function HueToRGB(n1,n2,hue : single) : single;
begin
if (hue < 0) then hue := hue+HLSMAX;
if (hue > HLSMAX) then hue:=hue -! HLSMAX;
if (hue < (HLSMAX/6)) then
result:= ( n1 + (((n2-n1)*hue+(HLSMAX/12))/(HLSMAX/6)) )
else
if (hue < (HLSMAX/2)) then result:=n2 else
if (hue < ((HLSMAX*2)/3)) then
result:= ( n1 + (((n2-n1)*(((HLSMAX*2)/3)-hue)+(HLSMAX/12))/(HLSMAX/6)))
else result:= ( n1 );
end;

begin
if (S = 0) then begin
B:=round( (L*RGBMAX)/HLSMAX ); R:=B; G:=B;
end else begin
if (L <= (HLSMAX/2)) then Magic2 := (L*(HLSMAX + S) + (HLSMAX/2))/HLSMAX
else Magic2 := L + S - ((L*S) + (HLSMAX/2))/HLSMAX;
Magic1 := 2*L-Magic2;
R := round( (HueToRGB(Magic1,Magic2,H+(HLSMAX/3))*RGBMAX + (HLSMAX/2))/HLSMAX );
G := round( (HueToRGB(Magic1,Magic2,H)*RGBMAX + (HLSMAX/2)) / HLSMAX );
B := round( (HueToRGB(Magic1,Ma! gic2,H-(HLSMAX/3))*RGBMAX + (HLSMAX/2))/HLSMAX );
end;
if R<0 then R:=0; if R>RGBMAX then R:=RGBMAX;
if G<0 then G:=0; if G>RGBMAX then G:=RGBMAX;
if B<0 then B:=0; if B>RGBMAX then B:=RGBMAX;
end;

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
У нас большой выбор статей   |x|
Создание COM-объектов средствами Delphi. Часть 1
Как преодолеть отсутствие множественного наследования в Delphi.
Однако есть способ решения этих проблем: применение единого стандарта для организации связи между объектами, который не зависит от используемой платформы и языка. Именно такова разработанная Microsoft компонентная модель объекта COM (Component Object Model). Данная технология уже получила широкое внедрение: ведь на ее базе работают механизмы OLE и ActiveX.
Новинки книжного рынка   |x|
Borland C++ Builder 5. Энциклопедия программиста
Borland C++ Builder 5. Энциклопедия программиста написана большим авторским коллективом под руководством Чарли Калверта и Кента Рейсдорфа и продолжает серию книг о C++ Builder, начатую Чарли Калвертом после выхода в свет первой версии этого замечательного продукта. Все без исключения авторы книги имеют не только многолетний опыт создания коммерческих продуктов при помощи систем программирования C++ Builder и Delphi, но и принимали непосредственное участие в написании большого количества книг соответствующей тематики.Книга написана опытными программистами для опытных программистов и этим она резко отличается от подавляющего большинства других книг о C++ Builder (и вообще других книг, посвященных программированию). В ней вы не найдете подробного и планомерного описания интегрированной среды разработки (IDE), перечисления всех стандартных компонентов, их свойств и методов, а также обсуждения тому подобных вопросов. Взамен этого, авторы сосредоточились на о! бсуждении наиболее сложных разделов программирования с использованием C++ Builder, которые обычно обходятся авторами других книг. Характерным является также и то, что в примерах программ, представленных на поставляемом вместе с книгой компакт-диске, авторы наряду с использованием стандартных возможностей библиотеки VCL, зачастую применяют и функции Windows API.
Автор: Калверт Ч.
Другие сайты о DELPHI   |x|
Afalina Soft: by Delphi-developers for Delphi-developers
Сайт компании Afalina Soft. Здесь вы найдете множество полезной информации, оригинальные Delphi-компоненты оттестированные и проверенные в реальной работе, которые, мы надеемся, вам очень пригодятся.

» Оценка сайта: 4
Опрос населения :)
Что мешает плохому танцору?
»»» Эти штуки... ;)
»»» Танцовщица
»»» Крылья
»»» Оппозиция
»»» Что и хорошему
»»» Ничего мне не мешает!
Журнал "RSDN Magazine"  |x|

Дорогие друзья! Мы рады представить вам новый совместный проект сайтов www.rsdn.ru, delphi.mastak.ru и www.optim.ru - профессиональный журнал для программистов RSDN Magazine.
Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
На сайте выложен анонс пилотного выпуска журнала, вступительное слово от редакции.

Для души

Хокку дня
капли дождя
на стеклах ее очков: весна
уже недалеко

Афоризмы
Расставаясь с нечестным партнером, надо помнить, что удовольствие - больше не видеть его - тоже имеет определённую ценность......

Фраза дня
...и написал Иисус конвертер water2wine, и стал раздавать его freeware...

Дурацкие законы (информация предоставлена сайтом kurilka.com)
На Аляске (США) запрещается поить спиртными напитками лосей.
В Аризоне (США) под угрозой крупного штрафа запрещена охота на верблюдов. В этом же штате серьезным преступлением считается также срубить кактус- нарушителям закона грозит до 25 ти лет тюрьмы.

И на закуску коротенький анекдот
Отец за сыном в детсад приходит. У него спрашивают:
- Который ваш?
- А какая разница? Все равно завтра обратно вести.

Фотоприколы.
Начните день с хорошего настроения!
http://delphi.mastak.ru/cgi-bin/prikol.pl?id=211


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (delphi@mastak.com)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное