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

DelphiX 圖像處理:TDIB.Blur 模糊效果 (多半徑/迭代參數)

     編輯:Delphi

架構說明

DelphiX 元件面板第二個為 TDXDIB,其唯一屬性 DIB: TDIB。配合 TDXDraw 顯示處理結果。TDIB.Blur(Radius, Iterations: Integer) 以方框濾波迭代實現模糊,Radius 為核半徑,Iterations 為疊代次數。

效果預覽

模糊效果示意圖

完整程式碼


unit Unit1;

interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, DIB, DXDraws, StdCtrls;

type
  TForm1 = class(TForm)
    DXDraw1: TDXDraw;
    DXDIB1: TDXDIB;
    Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  end;

var Form1: TForm1;

implementation
{$R *.dfm}

const ImgPath = 'C:\Temp\DelphiX.bmp';

procedure TForm1.Button1Click(Sender: TObject);
begin
  DXDraw1.Surface.LoadFromFile(ImgPath);
  DXDraw1.Flip;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  DXDIB1.DIB.LoadFromFile(ImgPath);
  DXDIB1.DIB.Blur(32, 1);  // 半徑 32, 1 次
  DXDraw1.Surface.LoadFromDIB(DXDIB1.DIB);
  DXDraw1.Flip;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  DXDIB1.DIB.LoadFromFile(ImgPath);
  DXDIB1.DIB.Blur(32, 6);  // 半徑 32, 6 次 (更強)
  DXDraw1.Surface.LoadFromDIB(DXDIB1.DIB);
  DXDraw1.Flip;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  DXDIB1.DIB.LoadFromFile(ImgPath);
  DXDIB1.DIB.Blur(4, 2);   // 半徑 4, 2 次 (輕微)
  DXDraw1.Surface.LoadFromDIB(DXDIB1.DIB);
  DXDraw1.Flip;
end;

end.

表單定義 (DFM 節錄)


object Form1: TForm1
  ClientHeight = 151; ClientWidth = 280
  object DXDraw1: TDXDraw
    Left = 8; Top = 8; Width = 265; Height = 105
    Options = [doAllowReboot, doWaitVBlank, doCenter, do3D, doDirectX7Mode, doHardware, doSelectDriver]
  end
  object Button1: TButton; Left = 8; Top = 119; Caption = 'Original'; end
  object Button2: TButton; Left = 76; Top = 119; Caption = 'Blur 32x1'; end
  object Button3: TButton; Left = 144; Top = 119; Caption = 'Blur 32x6'; end
  object Button4: TButton; Left = 213; Top = 119; Caption = 'Blur 4x2'; end
  object DXDIB1: TDXDIB; Left = 240; Top = 16; end
end
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved