Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ **** UBPFD *********** by delphibase.endimus.com **** >> Изменение контрастности изображения Value - значение контрастности на отрезке [-100..100] Local - если True, то применяется "местный контраст", если False, то - "общий" (более красивый) Зависимости: Windows Автор: Fenik, chook_nu@uraltc.ru, Новоуральск Copyright: Николай Федоровских Дата: 14 июля 2003 г. ***************************************************** } procedureContrast(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
;