Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Яркость [D7, Win2k]


seregka ©   (2005-03-30 19:28:00) 

Как изменять яркость изображения?


Eraser   (2005-04-02 20:10:00) [1]

Магнитоныч

Ну не фотошоп! )) но я когда увидел- удивился... можно небольшой графический редактор сделать...


Магнитоныч   (2005-04-02 19:17:00) [2]

> Eraser ©  (02.04.05 17:55) [14]

Ну уж, таки очень.. :))


Eraser   (2005-04-02 17:55:00) [3]

seregka

Посмотри в сторону библиотеки FastLib там ОЧЕНЬ много различных граических эффектов реализовано... с открытым кодом естественно.


Магнитон Борыч   (2005-03-31 23:49:00) [4]

>seregka  (31.03.05 21:36) [12]
>Хотя я подозреваю, что они исходную картинку хранят и новую операцию с ней делают, а нес ранеее модифицированной.

Естественно.


seregka   (2005-03-31 21:36:00) [5]

одинаковые хотел. Все граф. редакторы так работают. Хотя я подозреваю, что они исходную картинку хранят и новую операцию с ней делают, а нес ранеее модифицированной. Или я не прав?


Магнитон Борыч   (2005-03-31 21:00:00) [6]

А что ты хотел? :)


seregka   (2005-03-31 18:56:00) [7]

Может я туплю. Но с этой процедурой если установить контрастность 30, а потом -30 картинки получатся разные.


Магнитон Борыч   (2005-03-31 18:39:00) [8]

http://delphibase.spb.ru/?action=viewfunc&topic=mediaimg&id=10449


@!!ex   (2005-03-31 12:50:00) [9]

>XProger ©  
Я собственно это и имел ввиду. :)
>seregka
Я никогда не задавался подобным вопросом. :)
Помочь не могу. Алгоритм искать - времени нет.


seregka   (2005-03-31 12:07:00) [10]

опа, новая проблем - контрастность.
Как ее решить по аналогии с яркостью


seregka   (2005-03-31 10:24:00) [11]

спасибо. работает чудесно


parovoZZ   (2005-03-31 09:00:00) [12]


> Gero ©   (31.03.05 07:53) [4]
> Нужно преобразовать цвет в HSB или Lab.
> А там уже сменить яркость(причем только яркость) — раз плюнуть.

Как так?


Gero   (2005-03-31 07:53:00) [13]

Нужно преобразовать цвет в HSB или Lab.
А там уже сменить яркость(причем только яркость) — раз плюнуть.


parovoZZ   (2005-03-31 06:37:00) [14]

А можно и с гаммой поиграть.


XProger   (2005-03-31 00:04:00) [15]


type
TRGB = array [0..1] of record
 R, G, B : Byte;
end;
PRGB = ^TRGB;

var
 bmp   : TBitmap;

procedure Fade(k: integer);
var
R, G, B : integer;
x, y    : integer;
p       : PRGB;
begin
for y := 0 to bmp.Height - 1 do
begin
p := bmp.ScanLine[y];
for x := 0 to bmp.Width - 1 do
 begin
 R := p[x].R + k;
 G := p[x].G + k;
 B := p[x].B + k;
 if R < 0 then R := 0;
 if G < 0 then G := 0;
 if B < 0 then B := 0;
 if R > 255 then R := 255;
 if G > 255 then G := 255;
 if B > 255 then B := 255;
 p[x].R := R;
 p[x].G := G;
 p[x].B := B;
 end;
end;
end;

procedure Init;
begin
bmp := TBitmap.Create;
bmp.PixelFormat := pf24bit;
bmp.LoadFromFile('C:\image.bmp');
end;

procedure Draw;
begin
Fade(-1);
Canvas.Draw(0, 0, bmp); // отрисовка на форму
end;

Картинка 1024х768
Процессор P4 2 Ггц
Без отрисовки на форму - 101 FPS
С отрисовкой на форму - 43 FPS


@!!ex   (2005-03-30 22:16:00) [16]

Яркость какого изображения?
Самый простой и универсальный способ изменить яркость - изменить R,G,B на одинаковое число, но надо следаить, чтобы не уменьшались меньше 0 и не увеличивались больше 255.


Наверх

Титульная страница Поиск, карта сайта Написать письмо