BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/ImageEditing/AutoEnhance/umain.pas

219 lines
5.5 KiB
Plaintext

unit umain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ieview, imageenview, ExtCtrls, ComCtrls, hyieutils, imageenproc,
iexBitmaps, hyiedefs, iesettings, iexLayers, iexRulers;
type
TMainForm = class(TForm)
Panel1: TPanel;
ImageEnView1: TImageEnView;
Panel2: TPanel;
Label1: TLabel;
TrackBar1: TTrackBar;
Panel3: TPanel;
Button9: TButton;
Button1: TButton;
Button2: TButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
GroupBox2: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button3: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
TabSheet2: TTabSheet;
GroupBox5: TGroupBox;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Button8: TButton;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
CheckBox1: TCheckBox;
TabSheet3: TTabSheet;
GroupBox3: TGroupBox;
Button4: TButton;
Button5: TButton;
Button6: TButton;
TabSheet4: TTabSheet;
GroupBox4: TGroupBox;
Label6: TLabel;
Label7: TLabel;
Button7: TButton;
Edit5: TEdit;
Edit6: TEdit;
ProgressBar1: TProgressBar;
TabSheet5: TTabSheet;
Label12: TLabel;
Edit11: TEdit;
Button11: TButton;
TabSheet6: TTabSheet;
Button10: TButton;
Label13: TLabel;
Edit12: TEdit;
Label14: TLabel;
Edit13: TEdit;
TabSheet7: TTabSheet;
GroupBox1: TGroupBox;
Label15: TLabel;
Edit14: TEdit;
Button12: TButton;
Label16: TLabel;
Edit15: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ImageEnView1Progress(Sender: TObject; per: Integer);
procedure Button3Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
private
{ Private declarations }
Filename: string;
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.DFM}
{$R WindowsTheme.res}
procedure TMainForm.FormShow(Sender: TObject);
begin
ProgressBar1.Position := 0;
ImageEnView1.Proc.UndoLimit:=10;
end;
// Undo
procedure TMainForm.Button9Click(Sender: TObject);
begin
ImageEnView1.Proc.Undo;
ImageEnView1.Proc.ClearUndo;
end;
// Open...
procedure TMainForm.Button1Click(Sender: TObject);
begin
with ImageEnView1.IO do
begin
FileName:=ExecuteOpenDialog('', '', false, 0, '');
LoadFromFileAuto(FileName);
end;
ImageEnView1.Fit;
TrackBar1.Position := Round( ImageEnView1.Zoom );
end;
// Reload
procedure TMainForm.Button2Click(Sender: TObject);
begin
with ImageEnView1.IO do
LoadFromFileAuto( FileName );
ImageEnView1.Fit;
end;
// Zoom
procedure TMainForm.TrackBar1Change(Sender: TObject);
begin
ImageEnView1.Zoom := TrackBar1.Position;
Label1.Caption:='Zoom ('+inttostr(Round(ImageEnView1.Zoom))+'%)';
end;
// Progress
procedure TMainForm.ImageEnView1Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
ProgressBar1.Visible := per < 100;
end;
// Automatic Image Enhancement-1
procedure TMainForm.Button3Click(Sender: TObject);
begin
ImageEnView1.Proc.AutoImageEnhance1( strtointdef(Edit1.Text,0),
strtointdef(Edit2.Text,0),
strtointdef(Edit3.Text,0),
strtointdef(Edit4.Text,0)
);
end;
// Gray World
procedure TMainForm.Button4Click(Sender: TObject);
begin
ImageEnView1.Proc.WhiteBalance_GrayWorld;
end;
// Auto White
procedure TMainForm.Button5Click(Sender: TObject);
begin
ImageEnView1.Proc.WhiteBalance_AutoWhite;
end;
// Gain Offset
procedure TMainForm.Button6Click(Sender: TObject);
begin
ImageEnView1.Proc.AdjustGainOffset;
end;
// Auto sharpen
procedure TMainForm.Button7Click(Sender: TObject);
begin
ImageEnView1.Proc.AutoSharp( strtointdef(Edit5.Text,0),
strtointdef(Edit6.Text,0)/1000
);
end;
// Automatic Image Enhancement-1
procedure TMainForm.Button8Click(Sender: TObject);
begin
ImageEnView1.Proc.AutoImageEnhance2( strtointdef(edit7.Text,0),
strtointdef(edit8.Text,0),
iestrtofloatdef(edit9.Text,0),
strtointdef(edit10.Text,0),
checkbox1.Checked);
end;
// Contrast
procedure TMainForm.Button11Click(Sender: TObject);
begin
ImageEnView1.Proc.Contrast2( strtointdef(edit11.Text,0)/100 );
end;
// adjust histogram of Luma and saturation
procedure TMainForm.Button10Click(Sender: TObject);
begin
ImageEnView1.Proc.AdjustLumSatHistogram( strtointdef(edit12.Text,0)/100,
strtointdef(edit13.Text,0)/100 );
end;
procedure TMainForm.Button12Click(Sender: TObject);
begin
ImageEnView1.Proc.AutoImageEnhance3( iestrtofloatdef(edit14.Text,0.35),
strtointdef(edit15.Text, 80) );
end;
end.