Вставить BitmapDelphi , Графика и Игры , BitmapВставить Bitmap
Оформил: DeeCo function InvertBmp1(SourceBmp: TBitmap): TBitMap; var i, j: Longint; tmp: TBitMap; red, green, blue: Byte; PixelColor: Longint; begin tmp := TBitmap.Create; tmp.Width := SourceBmp.Width; tmp.Height := SourceBmp.Height; for i := 0 to SourceBmp.Width - 1 do begin for j := 0 to SourceBmp.Height - 1 do begin PixelColor := ColorToRGB(SourceBmp.Canvas.Pixels[i, j]); red := PixelColor; green := PixelColor shr 8; blue := PixelColor shr 16; red := 255 - red; green := 255 - green; blue := 255 - blue; tmp.Canvas.pixels[i, j] := (red shl 8 + green) shl 8 + blue; end; end; Result := tmp; end; function InvertBmp2(ABitmap : TBitmap) : TBitmap; var l_bmp : TBitmap; begin l_bmp := TBitmap.Create; l_bmp.Width := ABitmap.Width; l_bmp.Height := ABitmap.Height; l_bmp.PixelFormat := ABitmap.PixelFormat; BitBlt( l_bmp.Canvas.Handle, 0, 0, l_bmp.Width, l_bmp.Height, ABitmap.Canvas.Handle, 0, 0, SRCINVERT ); result := l_bmp; end; Функции Функция InvertBmp1
Эта функция создает новый объект Сюда входят шаги:
Функция InvertBmp2
Эта функция также создает новый объект Сюда входят шаги:
Сравнение
Обе функции достигают одного и того же результата: они инвертируют цвета изображения. Однако
Альтернативное решение
Если вы хотите более эффективное и гибкое решение, вы можете использовать третьестороннюю библиотеку, предоставляющую функции обработки изображений, такие как Альтернативно, если вам нужно выполнить другие типы преобразований изображений помимо инверсии цвета, вы можете рассмотреть использование специализированной библиотеки обработки изображений, такой как В статье описываются два алгоритма для инвертирования растровой картинки в Delphi: с использованием функции ColorToRGB и с помощью процедуры BitBlt. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |