Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Инверсия всех цветов Bitmap

Delphi , Графика и Игры , Bitmap



Автор: Fenik
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Зависимости: Graphics
Автор:       Fenik, chook_nu@uraltc.ru, Новоуральск
Copyright:   Собственное написание (Николай федоровских)
Дата:        1 июня 2002 г.
***************************************************** }

procedure InvertBitmap(Bitmap: TBitmap);
type
  TRGB = record
    B, G, R: Byte;
  end;
  pRGB = ^TRGB;
var
  x, y: Integer;
  Dest: pRGB;
begin
  Bitmap.PixelFormat := pf24Bit;
  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 := 255 - R;
        G := 255 - G;
        B := 255 - B;
      end;
      Inc(Dest);
    end;
  end;
end;

Программный код на языке Delphi для инвертирования цветов изображения в формате TBitmap. Код был написан Феником (Николаем Федоровским) и имеет авторское право.

Зависимости: Код использует модуль Graphics.

Автор и авторские права: Автор - Феник (Николай Федоровский), авторские права принадлежат ему.

Дата написания: Код был написан 1 июня 2002 года.

Процедура InvertBitmap: Эта процедура принимает объект TBitmap в качестве входного параметра и инвертирует его цвета. Вот что она делает:

  1. Она устанавливает формат пикселя для битмапа в 24-бит (истинный цвет).
  2. Она проходит по каждой строке (y) битмапа, начиная с верхней (0) до нижней (Height-1).
  3. Для каждой строки она получает указатель на скан-линию (Bitmap.ScanLine[y]) и проходит по каждому пикселю (x) в этой строке, начиная с левого (0) до правого (Width-1).
  4. Для каждого пикселя она использует блок with для доступа к красному, зелёному и синему компонентам цвета (R, G, B). Затем она рассчитывает инвертированные значения, вычитывая текущие значения из 255 (максимального значения для каждого компонента). Это эффективно.flip-ает цвета.
  5. Процедура увеличивает указатель на следующий пиксель после обработки каждого.

Примечание: Код предполагает, что битмап находится в формате 24-бит true color, то есть имеет три байта на пиксел: один для красного, один для зелёного и один для синего. Если ваш битмап находится в другом формате (например, индексированном или сжатом), этот код может не работать как ожидалось.

В целом, это простой но эффективный способ инвертирования цветов изображения в Delphi.

В статье описывается процедура InvertBitmap, которая инвертирует цвета в Bitmap-образе, меняя красный, зелёный и синий компоненты на их отрицательные значения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Bitmap ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 06:12:39/0.0032920837402344/0