![]() |
![]() ![]() ![]() ![]() |
|
Изменение гаммы рисункаDelphi , Графика и Игры , Bitmap
Автор: Fenik
{ **** 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;
Программный код на языке Delphi, который реализует фильтр коррекции гаммы для растровой изображения. Функция Вот шаг за шагом, что код делает:
Коррекция гаммы - это распространенная техника, используемая для изменения яркости и контраста изображения, изменяя его цветовые значения. В этом реализации входное значение Код является довольно эффективным и использует встроенные функции Delphi для поддержки растровых изображений с 24-битными пикселями и массивами. Однако он мог бы быть улучшен с помощью параллельного процессинга, чтобы ускорить процесс коррекции гаммы, особенно для больших изображений. Вот несколько предложений по альтернативным решениям:
В целом, этоsolid реализация фильтра коррекции гаммы для Delphi и она должна работать хорошо для большинства случаев использования. Изменение гаммы рисунка - процедура, которая изменяет цветовую схему изображения на основе параметра L, управляющего степенью изменения гаммы. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||