IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Как сделать рисунки в Paintbox прозрачными ?
priboltik
сообщение 5.06.2007 1:02
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Константин

Репутация: -  1  +


Помогите пожалуйста: никак не пойму, как сделать так, чтобы рисунки в PaintBox были прозрачными..????
подскажите, если это вообще возможно, конечно... или елси нет, то как выйти из этой ситуации??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.06.2007 1:07
Сообщение #2


Гость






Drkb -> Работа с графикой и мультимедиа -> Графические фильтры и эффекты -> Прозрачность -> Как нарисовать BitMap с прозрачностью.

Ты об этом?
 К началу страницы 
+ Ответить 
priboltik
сообщение 5.06.2007 1:58
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Константин

Репутация: -  1  +


Цитата(volvo @ 5.06.2007 1:07) *

Drkb -> Работа с графикой и мультимедиа -> Графические фильтры и эффекты -> Прозрачность -> Как нарисовать BitMap с прозрачностью.

Ты об этом?


ну почти.. good.gif сорри.. у меня старая версия DRKB нельзя ли полностью строки кода, если возможно..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 5.06.2007 8:28
Сообщение #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;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
priboltik
сообщение 6.06.2007 0:34
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Константин

Репутация: -  1  +


а как сделать возможность выделения части изображения на допустим например какого-то Image1????
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 4:11
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"