240 lines
5.4 KiB
Plaintext
240 lines
5.4 KiB
Plaintext
unit umain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ieview, imageenview,
|
|
imageenproc, StdCtrls, hyieutils, hyiedefs, iexBitmaps, iesettings, iexLayers, iexRulers;
|
|
|
|
type
|
|
TMainForm = class(TForm)
|
|
MainMenu1: TMainMenu;
|
|
ImageEnView1: TImageEnView;
|
|
File1: TMenuItem;
|
|
Open1: TMenuItem;
|
|
N1: TMenuItem;
|
|
Exit1: TMenuItem;
|
|
Layers1: TMenuItem;
|
|
Add1: TMenuItem;
|
|
Rotate1: TMenuItem;
|
|
MoveResize1: TMenuItem;
|
|
Save1: TMenuItem;
|
|
View1: TMenuItem;
|
|
Fit1: TMenuItem;
|
|
Actualsize1: TMenuItem;
|
|
Edit1: TMenuItem;
|
|
Finalizerotation1: TMenuItem;
|
|
N2: TMenuItem;
|
|
PreviewQu1: TMenuItem;
|
|
Standard1: TMenuItem;
|
|
HighDelayed1: TMenuItem;
|
|
High1: TMenuItem;
|
|
Label1: TLabel;
|
|
procedure Exit1Click(Sender: TObject);
|
|
procedure Open1Click(Sender: TObject);
|
|
procedure Add1Click(Sender: TObject);
|
|
procedure Rotate1Click(Sender: TObject);
|
|
procedure MoveResize1Click(Sender: TObject);
|
|
procedure Save1Click(Sender: TObject);
|
|
procedure Fit1Click(Sender: TObject);
|
|
procedure Actualsize1Click(Sender: TObject);
|
|
procedure Finalizerotation1Click(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure High1Click(Sender: TObject);
|
|
procedure HighDelayed1Click(Sender: TObject);
|
|
procedure Standard1Click(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsTheme.res}
|
|
|
|
// File | Exit
|
|
procedure TMainForm.Exit1Click(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
// File | Open
|
|
procedure TMainForm.Open1Click(Sender: TObject);
|
|
var
|
|
filename:string;
|
|
begin
|
|
|
|
// open dialog
|
|
filename := ImageEnView1.IO.ExecuteOpenDialog;
|
|
|
|
// load as multilayer file
|
|
if ExtractFileExt(filename)='.lyr' then
|
|
ImageEnView1.LayersLoadFromFile( filename )
|
|
|
|
// load as psd (with layers)
|
|
else
|
|
if ExtractFileExt(filename)='.psd' then
|
|
begin
|
|
ImageEnView1.IO.Params.PSD_LoadLayers:=true;
|
|
ImageEnView1.IO.LoadFromFile( filename );
|
|
end
|
|
|
|
// generic file
|
|
else
|
|
begin
|
|
ImageEnView1.IO.LoadFromFile( filename );
|
|
TIEImageLayer( ImageEnView1.CurrentLayer ).RestoreAspectRatio();
|
|
end;
|
|
end;
|
|
|
|
// File | Save
|
|
procedure TMainForm.Save1Click(Sender: TObject);
|
|
var
|
|
filename:string;
|
|
begin
|
|
// save dialog
|
|
filename:=ImageEnView1.IO.ExecuteSaveDialog;
|
|
|
|
// save as multilayer file
|
|
if ExtractFileExt(filename)='.lyr' then
|
|
ImageenView1.LayersSaveToFile( filename )
|
|
|
|
// save as psd multilayer
|
|
else
|
|
if ExtractFileExt(filename)='.psd' then
|
|
ImageEnView1.IO.SaveToFile( filename )
|
|
else
|
|
|
|
// merge layers and save as generic file
|
|
begin
|
|
ImageEnView1.LayersMergeAll;
|
|
ImageEnView1.IO.SaveToFile( filename );
|
|
end;
|
|
end;
|
|
|
|
// Layers | Add
|
|
procedure TMainForm.Add1Click(Sender: TObject);
|
|
begin
|
|
Add1.Checked := true;
|
|
|
|
// enable layers adding, resizing and moving
|
|
ImageEnView1.MouseInteract := [miCreateImageLayers, miResizeLayers, miMoveLayers];
|
|
end;
|
|
|
|
// Layers | Rotate
|
|
procedure TMainForm.Rotate1Click(Sender: TObject);
|
|
begin
|
|
Rotate1.Checked := true;
|
|
|
|
// enable layers resizing and moving
|
|
ImageEnView1.MouseInteract := [miRotateLayers, miMoveLayers];
|
|
end;
|
|
|
|
// Layers | MoveResize
|
|
procedure TMainForm.MoveResize1Click(Sender: TObject);
|
|
begin
|
|
MoveResize1.Checked:=true;
|
|
|
|
// enable layers rotate and moving
|
|
ImageEnView1.MouseInteract := [miResizeLayers, miMoveLayers];
|
|
end;
|
|
|
|
|
|
// View | Fit
|
|
procedure TMainForm.Fit1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Fit;
|
|
end;
|
|
|
|
// View | actual size
|
|
procedure TMainForm.Actualsize1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Zoom:=100;
|
|
end;
|
|
|
|
procedure TMainForm.Finalizerotation1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.LayersRotationAntialias := true;
|
|
ImageEnView1.LayersRotationFilter := ierBilinear;
|
|
ImageenView1.LayersFixRotations();
|
|
ImageenView1.Update();
|
|
end;
|
|
|
|
procedure TMainForm.FormShow(Sender: TObject);
|
|
begin
|
|
ImageEnView1.ClearAll();
|
|
|
|
// Default to layer addition
|
|
Add1Click(nil);
|
|
|
|
// Default to delayed high quality
|
|
HighDelayed1Click(nil);
|
|
|
|
ImageEnView1.Layers[0].Selectable := False;
|
|
end;
|
|
|
|
procedure TMainForm.Standard1Click(Sender: TObject);
|
|
begin
|
|
Standard1.Checked := True;
|
|
|
|
// FASTEST DISPLAY
|
|
|
|
// Zoom filter
|
|
ImageEnView1.ZoomFilter := rfNone;
|
|
ImageEnView1.DelayZoomFilter := False;
|
|
|
|
// Rotation anti-alias
|
|
ImageEnView1.LayersRotationFilter := ierBicubic;
|
|
ImageEnView1.LayersRotationAntialias := True;
|
|
ImageEnView1.LayersRotationUseFilterOnPreview := False;
|
|
|
|
// Fast drawing
|
|
ImageEnView1.LayersFastDrawing := iefFast;
|
|
end;
|
|
|
|
procedure TMainForm.HighDelayed1Click(Sender: TObject);
|
|
begin
|
|
HighDelayed1.Checked := True;
|
|
|
|
// DELAYED HIGH QUALITY
|
|
|
|
// Zoom filter
|
|
ImageEnView1.ZoomFilter := rfLanczos3;
|
|
ImageEnView1.DelayZoomFilter := True;
|
|
|
|
// Rotation anti-alias
|
|
ImageEnView1.LayersRotationFilter := ierBicubic;
|
|
ImageEnView1.LayersRotationAntialias := True;
|
|
ImageEnView1.LayersRotationUseFilterOnPreview := True;
|
|
|
|
// Fast drawing
|
|
ImageEnView1.LayersFastDrawing := iefDelayed;
|
|
|
|
end;
|
|
|
|
procedure TMainForm.High1Click(Sender: TObject);
|
|
begin
|
|
High1.Checked := True;
|
|
|
|
// HIGH QUALITY
|
|
|
|
// Zoom filter
|
|
ImageEnView1.ZoomFilter := rfLanczos3;
|
|
ImageEnView1.DelayZoomFilter := False;
|
|
|
|
// Rotation anti-alias
|
|
ImageEnView1.LayersRotationFilter := ierBicubic;
|
|
ImageEnView1.LayersRotationAntialias := True;
|
|
ImageEnView1.LayersRotationUseFilterOnPreview := True;
|
|
|
|
// Fast drawing
|
|
ImageEnView1.LayersFastDrawing := iefNormal;
|
|
end;
|
|
|
|
end.
|