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

61 lines
1.3 KiB
Plaintext

unit umain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ieview, ImageEnView, ImageEnIO, iexBitmaps, hyieutils, hyiedefs,
iesettings, iexLayers, iexRulers;
type
TForm1 = class(TForm)
Label1: TLabel;
ImageEnView1: TImageEnView;
Button1: TButton;
Button2: TButton;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
sourceFile: string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{$R WindowsTheme.res}
// Open...
procedure TForm1.Button1Click(Sender: TObject);
begin
sourceFile := ImageEnView1.IO.ExecuteOpenDialog('', ioJPEG);
ImageEnView1.IO.LoadFromFile(sourceFile);
end;
// Save...
// (not actually save, just apply a cut to source file)
procedure TForm1.Button2Click(Sender: TObject);
var
rc: TRect;
destFile: string;
begin
// request destination file
destFile := ImageEnView1.IO.ExecuteSaveDialog('', -1, ioJPEG);
if destFile <> '' then
begin
// get cut rectangle
with ImageEnView1 do
rc := Rect(SelX1, SelY1, SelX2, SelY2);
// apply lossless cut and save
JpegLosslessTransform(sourceFile, destFile, jtCut, false, jcCopyAll, rc);
end;
end;
end.