Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
Bitmap [50]
Canvas [0]
DirectX и DelphiX [39]
GIF [3]
ICO [24]
JPEG [14]
MetaFile [6]
OpenGL [9]
ScreenSaver и ScreenMate [13]
Векторная графика [2]
Графика [37]
Изображения [0]
Картография [6]
Компоненты и Графика [0]
Создание игр [17]
Цвета и Палитра [0]
Шрифты [0]

Наш опрос
Оцените мой сайт
Всего ответов: 30

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Графика и Игры » Bitmap

Изменение контрастности изображения
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Изменение контрастности изображения

Value - значение контрастности на отрезке [-100..100]
Local - если True, то применяется "местный контраст",
если False, то - "общий" (более красивый)

Зависимости: Windows
Автор: Fenik, chook_nu@uraltc.ru, Новоуральск
Copyright: Николай Федоровских
Дата: 14 июля 2003 г.
***************************************************** }


procedure Contrast(Bitmap: TBitmap; Value: Integer; Local: Boolean);

function BLimit(B: Integer): Byte;
begin
if B < 0 then
Result := 0
else if B > 255 then
Result := 255
else
Result := B;
end;

var
Dest: pRGBTriple;
x, y, mr, mg, mb,
W, H, tr, tg, tb: Integer;
vd: Double;

begin
if Value = 0 then
Exit;
W := Bitmap.Width - 1;
H := Bitmap.Height - 1;
if Local then
begin
mR := 128;
mG := 128;
mB := 128;
end
else
begin
tr := 0;
tg := 0;
tb := 0;
for y := 0 to H do
begin
Dest := Bitmap.ScanLine[y];
for x := 0 to W do
begin
with Dest^ do
begin
Inc(tb, rgbtBlue);
Inc(tg, rgbtGreen);
Inc(tr, rgbtRed);
end;
Inc(Dest);
end;
end;
mB := Trunc(tb / (W * H));
mG := Trunc(tg / (W * H));
mR := Trunc(tr / (W * H));
end;
if Value > 0 then
vd := 1 + (Value / 10)
else
vd := 1 - (Sqrt(-Value) / 10);
for y := 0 to H do
begin
Dest := Bitmap.ScanLine[y];
for x := 0 to W do
begin
with Dest^ do
begin
rgbtBlue := BLimit(mB + Trunc((rgbtBlue - mB) * vd));
rgbtGreen := BLimit(mG + Trunc((rgbtGreen - mG) * vd));
rgbtRed := BLimit(mR + Trunc((rgbtRed - mR) * vd));
end;
Inc(Dest);
end;
end;
end;
Категория: Bitmap | Добавил: Angel (08.07.2008)
Просмотров: 515 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz