Главная страница
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.06 c
1-1107872625
Stype
2005-02-08 17:23
2005.02.20
Директория Windows


1-1107772136
Raider
2005-02-07 13:28
2005.02.20
Как сделаь так чтоб


14-1106970651
Юзвер
2005-01-29 06:50
2005.02.20
Flash-игра


1-1107710205
Alex870
2005-02-06 20:16
2005.02.20
Изображения в программе


8-1099152091
Arrakktur
2004-10-30 20:01
2005.02.20
Матрицу трансформации&сфера