
TDIB.Filter(Source: TDIB; FilterType: Integer) 套用預定義卷積核濾鏡。DelphiX 定義常數:EdgeFilter、StrongOutlineFilter、Enhance3DFilter、LinearFilter、GranularFilter、SharpFilter。範例提供七個按鈕分別測試各濾鏡。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DIB, StdCtrls;
type
TForm1 = class(TForm)
DXPaintBox1: TDXPaintBox;
Button1: TButton; // Load
Button2: TButton; // Edge
Button3: TButton; // StrongOutline
Button4: TButton; // Enhance3D
Button5: TButton; // Linear
Button6: TButton; // Granular
Button7: TButton; // Sharp
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
Dib: TDIB;
procedure TForm1.FormCreate(Sender: TObject);
begin
Dib := TDIB.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Dib.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
const
ImgPath = 'C:\Temp\DX.jpg';
begin
Dib.LoadFromFile(ImgPath);
DXPaintBox1.DIB.Assign(Dib);
DXPaintBox1.Width := Dib.Width;
DXPaintBox1.Height := Dib.Height;
DXPaintBox1.Repaint;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
DXPaintBox1.DIB.Filter(Dib, EdgeFilter);
DXPaintBox1.DIB.Assign(Dib); DXPaintBox1.Repaint;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
DXPaintBox1.DIB.Filter(Dib, StrongOutlineFilter);
DXPaintBox1.DIB.Assign(Dib); DXPaintBox1.Repaint;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
DXPaintBox1.DIB.Filter(Dib, Enhance3DFilter);
DXPaintBox1.DIB.Assign(Dib); DXPaintBox1.Repaint;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
DXPaintBox1.DIB.Filter(Dib, LinearFilter);
DXPaintBox1.DIB.Assign(Dib); DXPaintBox1.Repaint;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
DXPaintBox1.DIB.Filter(Dib, GranularFilter);
DXPaintBox1.DIB.Assign(Dib); DXPaintBox1.Repaint;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
DXPaintBox1.DIB.Filter(Dib, SharpFilter);
DXPaintBox1.DIB.Assign(Dib); DXPaintBox1.Repaint;
end;
end.