Как нарисовать полупрозрачный прямоугольник на канве?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Aleandr
незнакомец
Сообщения: 4
Зарегистрирован: 04.06.2021 15:24:09

Как нарисовать полупрозрачный прямоугольник на канве?

Сообщение Aleandr »

Есть канва (TBitmap 1280х720), в которой формируется некое изображение.
Требуется прямоугольную часть этого изображения "затемнить", т.е. нарисовать в определенном месте полупрозрачный прямоугольник.

Сейчас выкрутился так:

Код: Выделить всё

  for x := 0 to 300 do
  for y := 0 to 200 do
      begin
           col := buf.Canvas.Pixels[x,y];
           RedGreenBlue(col, R, G, B);
           col := rgbtocolor( R div 6, G div 6, B div 6);
           buf.Canvas.Pixels[x,y] := col;
      end;


Работает очень медленно. Может, существует готовое быстродействующее решение под Win & Lazarus?
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3067
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

AlphaBlend
А готовое быстродействующее решение - Graphics32
https://github.com/graphics32/graphics32
Ответить