Изменение гаммы рисунка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 прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |