Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

маска+картинка=результат   Найти похожие ветки 

 
race1   (2005-01-05 10:22) [0]

как можно, имея исходный канвас (TCanvas), битовую маску и destination-канвас нарисовать на последнем исходный канвас, используя битовую маску? лучше если api функциями


 
MBo ©   (2005-01-05 10:29) [1]

MaskBlt


 
race1   (2005-01-05 10:37) [2]

а примерчика нету? я вроде всё по справке делаю, даже немного из vcl"я взял, но "параметр указан неверно"...


 
MBo ©   (2005-01-05 11:24) [3]

Вот два способа, есть и другие, например, с помощью BitBlt несколько раз, что совместимо с Win9X (PlgBlt и MaskBlt там не поддерживается)


procedure TForm1.Button4Click(Sender: TObject);
var
 B,Mask : TBitmap;
 P:array[0..3] of TPoint;
begin
 B := TBitmap.Create;
 Mask := TBitmap.Create;
 B.LoadFromFile("e:\4.bmp");
 Canvas.Draw(0,0,b);
 Mask.PixelFormat:=pf1bit;
 Mask.Width:=B.Width;
 Mask.Height:=B.Height;
 PatBlt(Mask.Canvas.Handle,0,0,B.Width,B.Height,BLACKNESS);
 Mask.Canvas.Ellipse(10,10,B.Width-10,B.Height-10);
 Canvas.Draw(B.Width+10,0,Mask);
 P[0]:=Point(B.Width*2+20,0);
 P[1]:=Point(B.Width*3+20,0);
 P[2]:=Point(B.Width*2+20,B.Height);
 PlgBlt(Canvas.Handle,P,B.Canvas.Handle,0,0,B.Width,B.Height,MAsk.Handle,0,0);
 MaskBlt(Canvas.Handle,B.Width*3+30,0,B.Width,B.Height,B.Canvas.Handle,
   0,0,Mask.Handle,0,0,MakeRop4(SRCCOPY,PATCOPY));
 B.Free;
 Mask.Free;
end;


см. также TransparentStretchBlt в Graphics.pas


 
race1   (2005-01-05 12:25) [4]

спасибо. у меня ошибка была в том, что один из параметров был TCanvas вместо HDC



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
14-1106938821
Cobalt
2005-01-28 22:00
2005.02.20
закачка на FTP


9-1100334142
mozartw
2004-11-13 11:22
2005.02.20
Как сотрудничают 3dmax и compiler


1-1107093457
Dr. Genius
2005-01-30 16:57
2005.02.20
Окошко с пунктами


4-1104329917
Tatianka
2004-12-29 17:18
2005.02.20
Как получить код возврата потока, вызываемого из другого прилож?


1-1107446586
Muhan
2005-02-03 19:03
2005.02.20
Распечатка и кое-что еще...