在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
TDirectDrawSurface.Fill(); TDirectDrawSurface.FillRect(); TDirectDrawSurface.FillRectAlpha(); TDirectDrawSurface.FillRectAdd(); TDirectDrawSurface.FillRectSub(); 其中 Fill 在前面每个例子中都有用到; 另外注意: 这几个函数中的颜色格式有点乱: Fill 与 FillRect 使用的是非 Delphi 的颜色格式, 它们使用的红色应该是: $FF0000; FillRectAlpha、FillRectAdd、FillRectSub 可以使用 Delphi 的颜色, 红色可以是: $0000FF 或 clRed. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DXDraws, StdCtrls; type TForm1 = class(TForm) DXDraw1: TDXDraw; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure FormCreate(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} const ImgPath1 = 'C:\Temp\Test.jpg'; procedure TForm1.Button1Click(Sender: TObject); var MySurface: TDirectDrawSurface; begin MySurface := TDirectDrawSurface.Create(DXDraw1.DDraw); MySurface.LoadFromFile(ImgPath1); DXDraw1.Surface.Fill(0); DXDraw1.Surface.Draw(0, 0, MySurface); DXDraw1.Flip; FreeAndNil(MySurface); end; procedure TForm1.Button2Click(Sender: TObject); var MySurface: TDirectDrawSurface; r: TRect; begin MySurface := TDirectDrawSurface.Create(DXDraw1.DDraw); MySurface.LoadFromFile(ImgPath1); DXDraw1.Surface.Fill(0); DXDraw1.Surface.Draw(0, 0, MySurface); r := Bounds(10, 10, DXDraw1.Width - 20, DXDraw1.Height - 20); DXDraw1.Surface.FillRect(r, $FF0000); DXDraw1.Flip; FreeAndNil(MySurface); end; procedure TForm1.Button3Click(Sender: TObject); var MySurface: TDirectDrawSurface; r: TRect; begin MySurface := TDirectDrawSurface.Create(DXDraw1.DDraw); MySurface.LoadFromFile(ImgPath1); DXDraw1.Surface.Fill(0); DXDraw1.Surface.Draw(0, 0, MySurface); r := Bounds(10, 10, DXDraw1.Width - 20, DXDraw1.Height - 20); DXDraw1.Surface.FillRectAlpha(r, $0000FF, 128); DXDraw1.Flip; FreeAndNil(MySurface); end; procedure TForm1.Button4Click(Sender: TObject); var MySurface: TDirectDrawSurface; r: TRect; begin MySurface := TDirectDrawSurface.Create(DXDraw1.DDraw); MySurface.LoadFromFile(ImgPath1); DXDraw1.Surface.Fill(0); DXDraw1.Surface.Draw(0, 0, MySurface); r := Bounds(10, 10, DXDraw1.Width - 20, DXDraw1.Height - 20); DXDraw1.Surface.FillRectAdd(r, $0000FF, 255); DXDraw1.Flip; FreeAndNil(MySurface); end; procedure TForm1.Button5Click(Sender: TObject); var MySurface: TDirectDrawSurface; r: TRect; begin MySurface := TDirectDrawSurface.Create(DXDraw1.DDraw); MySurface.LoadFromFile(ImgPath1); DXDraw1.Surface.Fill(0); DXDraw1.Surface.Draw(0, 0, MySurface); r := Bounds(10, 10, DXDraw1.Width - 20, DXDraw1.Height - 20); DXDraw1.Surface.FillRectSub(r, $0000FF, 255); DXDraw1.Flip; FreeAndNil(MySurface); end; procedure TForm1.FormCreate(Sender: TObject); begin Button1.Caption := '原始图片'; Button2.Caption := 'FillRect'; Button3.Caption := 'FillRectAlpha'; Button4.Caption := 'FillRectAdd'; Button5.Caption := 'FillRectSub'; end; end. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论