首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

DelphiX 圖像處理:TDIB.Filter 內建濾鏡大全

     編輯:Delphi

效果預覽

多種濾鏡效果示意圖

功能說明

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.
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved