159 lines
4.0 KiB
Plaintext
159 lines
4.0 KiB
Plaintext
unit umain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ieview, imageenview, iewia, imageenio, ComCtrls, ExtCtrls,
|
|
Menus, hyieutils, iexBitmaps, hyiedefs, iesettings, iexLayers, iexRulers;
|
|
|
|
type
|
|
TMainForm = class(TForm)
|
|
ImageEnView1: TImageEnView;
|
|
Panel1: TPanel;
|
|
ProgressBar1: TProgressBar;
|
|
TreeView1: TTreeView;
|
|
MainMenu1: TMainMenu;
|
|
File1: TMenuItem;
|
|
Save1: TMenuItem;
|
|
N1: TMenuItem;
|
|
Print1: TMenuItem;
|
|
N2: TMenuItem;
|
|
Exit1: TMenuItem;
|
|
SelectCamera1: TMenuItem;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
Panel2: TPanel;
|
|
lblMake: TLabel;
|
|
Label4: TLabel;
|
|
lblModel: TLabel;
|
|
Label6: TLabel;
|
|
lblDate: TLabel;
|
|
Label8: TLabel;
|
|
lblSize: TLabel;
|
|
Label10: TLabel;
|
|
chkSaveToDisk: TCheckBox;
|
|
chkLoadImage: TCheckBox;
|
|
Label11: TLabel;
|
|
ImageEnView2: TImageEnView;
|
|
Button1: TButton;
|
|
Splitter1: TSplitter;
|
|
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
|
|
procedure FormActivate(Sender: TObject);
|
|
procedure ImageEnView1Progress(Sender: TObject; per: Integer);
|
|
procedure Exit1Click(Sender: TObject);
|
|
procedure Save1Click(Sender: TObject);
|
|
procedure Print1Click(Sender: TObject);
|
|
procedure SelectCamera1Click(Sender: TObject);
|
|
procedure Button1Click(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
procedure FillFileNames;
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsTheme.res}
|
|
|
|
uses
|
|
iexAcquire;
|
|
|
|
|
|
// fill tree view
|
|
procedure TMainForm.FillFileNames;
|
|
begin
|
|
TreeView1.Items.Clear;
|
|
ImageEnView1.IO.WIAParams.FillTreeView(TreeView1.Items, false);
|
|
TreeView1.FullExpand;
|
|
end;
|
|
|
|
// try to fill file names at startup
|
|
procedure TMainForm.FormActivate(Sender: TObject);
|
|
begin
|
|
FillFileNames;
|
|
end;
|
|
|
|
// Selected a file, load it
|
|
procedure TMainForm.TreeView1Change(Sender: TObject; Node: TTreeNode);
|
|
begin
|
|
// Get the image from the camera and save it without loading the jpeg. This means the image won't lose quality.
|
|
// Warning: here we assume your camera store images using JPEG file format!
|
|
if chkSaveToDisk.Checked then
|
|
begin
|
|
ImageEnView1.IO.WIAParams.TransferFormat := ietfJpeg;
|
|
ImageEnView1.IO.WiAParams.SaveTransferBufferAs := Node.Text + '.jpg';
|
|
end
|
|
else
|
|
ImageEnView1.IO.WiAParams.SaveTransferBufferAs := '';
|
|
|
|
ImageEnView1.IO.WiaParams.GetItemThumbnail( TIEWiaItem(Node.Data), ImageEnView2.IEBitmap );
|
|
ImageEnView2.Update;
|
|
|
|
|
|
if chkLoadImage.Checked then
|
|
begin
|
|
// Get Image
|
|
ImageEnView1.IO.WIAParams.ProcessingBitmap := ImageEnView1.IEBitmap;
|
|
ImageEnView1.IO.WIAParams.TransferFormat := ietfJpeg;
|
|
ImageEnView1.IO.WIAParams.Transfer( TIEWiaItem(Node.Data) , false);
|
|
ImageEnView1.Update;
|
|
|
|
// fill EXIF samples frame
|
|
with ImageEnView1.IO.Params do
|
|
begin
|
|
lblMake .Caption := EXIF_Make;
|
|
lblModel.Caption := EXIF_Model;
|
|
lblDate .Caption := EXIF_DateTime;
|
|
lblSize .Caption := IntToStr(EXIF_ExifImageWidth)+' x '+IntToStr(EXIF_ExifImageHeight);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
// update progress bar
|
|
procedure TMainForm.ImageEnView1Progress(Sender: TObject; per: Integer);
|
|
begin
|
|
ProgressBar1.Position:=per;
|
|
end;
|
|
|
|
// File | Close
|
|
procedure TMainForm.Exit1Click(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
// File | Save
|
|
procedure TMainForm.Save1Click(Sender: TObject);
|
|
begin
|
|
with ImageEnView1.IO do
|
|
ImageEnView1.IO.SaveToFile( ExecuteSaveDialog('','',false,0,'') );
|
|
end;
|
|
|
|
// File | Print
|
|
procedure TMainForm.Print1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.IO.DoPrintPreviewDialog(iedtDialog,'',false,'');
|
|
end;
|
|
|
|
// Select camera (WIA source)
|
|
procedure TMainForm.SelectCamera1Click(Sender: TObject);
|
|
begin
|
|
TreeView1.Items.Clear;
|
|
ImageEnView1.IO.SelectAcquireSource([ieaWIA]);
|
|
FillFileNames;
|
|
end;
|
|
|
|
// Delete selected image (item)
|
|
procedure TMainForm.Button1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.IO.WiaParams.DeleteItem( TIEWiaItem(TreeView1.Selected.Data) );
|
|
FillFileNames;
|
|
end;
|
|
|
|
end.
|