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.