Помогите пожалуйста: никак не пойму, как сделать так, чтобы рисунки в PaintBox были прозрачными..????
подскажите, если это вообще возможно, конечно... или елси нет, то как выйти из этой ситуации??
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
![]() ![]() |
| priboltik |
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Константин Репутация: 1 |
Помогите пожалуйста: никак не пойму, как сделать так, чтобы рисунки в PaintBox были прозрачными..????
подскажите, если это вообще возможно, конечно... или елси нет, то как выйти из этой ситуации?? |
| volvo |
Сообщение
#2
|
|
Гость |
Drkb -> Работа с графикой и мультимедиа -> Графические фильтры и эффекты -> Прозрачность -> Как нарисовать BitMap с прозрачностью.
Ты об этом? |
| priboltik |
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Константин Репутация: 1 |
Drkb -> Работа с графикой и мультимедиа -> Графические фильтры и эффекты -> Прозрачность -> Как нарисовать BitMap с прозрачностью. Ты об этом? ну почти.. |
| Ozzя |
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
procedure DrawTransparentBmp(Cnv: TCanvas; x,y: Integer; Bmp: TBitmap; clTransparent: TColor);
var bmpXOR, bmpAND, bmpINVAND, bmpTarget: TBitmap; oldcol: Longint; begin try bmpAND := TBitmap.Create; bmpAND.Width := Bmp.Width; bmpAND.Height := Bmp.Height; bmpAND.Monochrome := True; oldcol := SetBkColor(Bmp.Canvas.Handle, ColorToRGB(clTransparent)); BitBlt(bmpAND.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Bmp.Canvas.Handle, 0, 0, SRCCOPY); SetBkColor(Bmp.Canvas.Handle, oldcol); bmpINVAND := TBitmap.Create; bmpINVAND.Width := Bmp.Width; bmpINVAND.Height := Bmp.Height; bmpINVAND.Monochrome := True; BitBlt(bmpINVAND.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, bmpAND.Canvas.Handle, 0, 0, NOTSRCCOPY); bmpXOR := TBitmap.Create; bmpXOR.Width := Bmp.Width; bmpXOR.Height := Bmp.Height; BitBlt(bmpXOR.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Bmp.Canvas.Handle, 0, 0, SRCCOPY); BitBlt(bmpXOR.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, bmpINVAND.Canvas.Handle, 0, 0, SRCAND); bmpTarget := TBitmap.Create; bmpTarget.Width := Bmp.Width; bmpTarget.Height := Bmp.Height; BitBlt(bmpTarget.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Cnv.Handle, x, y, SRCCOPY); BitBlt(bmpTarget.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, bmpAND.Canvas.Handle, 0, 0, SRCAND); BitBlt(bmpTarget.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, bmpXOR.Canvas.Handle, 0, 0, SRCINVERT); BitBlt(Cnv.Handle, x, y, Bmp.Width, Bmp.Height, bmpTarget.Canvas.Handle, 0, 0, SRCCOPY); finally bmpXOR.Free; bmpAND.Free; bmpINVAND.Free; bmpTarget.Free; end; end; |
| priboltik |
Сообщение
#5
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Константин Репутация: 1 |
а как сделать возможность выделения части изображения на допустим например какого-то Image1????
|
![]() ![]() |
|
Текстовая версия | 5.11.2025 16:29 |