|
|
发表于 2005-9-17 18:04:00
|
显示全部楼层
Re:如何更有效率地在DelphiX中画半透明的PNG图片?
其??surface是可以?半透明的,?是有些??
var
Form1: TForm1;
MySurface, MySurface2, AlphaSurface: TDirectDrawSurface;
implementation
{$R *.DFM}
procedure TForm1.DXDraw1InitializeSurface(Sender: TObject);
begin
MySurface := TDirectDrawSurface.Create(DXDraw1.DDraw);
MySurface2 := TDirectDrawSurface.Create(DXDraw1.DDraw);
AlphaSurface := TDirectDrawSurface.Create(DXDraw1.DDraw);
AlphaSurface.LoadFromGraphic(DXImageList1.Items[0].Picture.Graphic);
MySurface.LoadFromGraphic(DXImageList1.Items[1].Picture.Graphic);
MySurface2.LoadFromGraphic(DXImageList1.Items[1].Picture.Graphic);
end;
procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
DXDraw1.Surface.Fill(0);
DXDraw1.BeginScene;
MySurface.Fill(0);
MySurface.Draw(0, 0, MySurface2.ClientRect, MySurface2, True);
MySurface.DrawAlpha(AlphaSurface.ClientRect, AlphaSurface.ClientRect, AlphaSurface, True, 100);
DXDraw1.Surface.Draw(0, 0, MySurface.ClientRect, MySurface, True);
DXDraw1.Flip;
DXDraw1.EndScene;
end;
|
|