Изменение гаммы рисунка

Советы » Bitmap » Изменение гаммы рисунка

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Изменение гаммы рисунка

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

procedure

Gamma(Bitmap: TBitmap; L: Double); {0.0 < L < 7.0} function

Power(Base, Exponent: Extended): Extended; begin

Result := Exp(Exponent * Ln(Base)); end

; type

TRGB = record

B, G, R: Byte; end

; pRGB = ^TRGB; var

Dest: pRGB; X, Y: Word; GT: array

[0..255] of

Byte; begin

Bitmap.PixelFormat := pf24Bit; GT[0] := 0; if

L = 0 then

L := 0.01; for

X := 1 to

255 do

GT[X] := Round(255 * Power(X / 255, 1 / L)); for

Y := 0 to

Bitmap.Height - 1 do

begin

Dest := Bitmap.ScanLine[y]; for

X := 0 to

Bitmap.Width - 1 do

begin

with

Dest^ do

begin

R := GT[R]; G := GT[G]; B := GT[B]; end

; Inc(Dest); end

; end

; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2023 - All Rights Reserved - www.delphirus.com