105 lines
2.5 KiB
Plaintext
105 lines
2.5 KiB
Plaintext
unit umain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
Grids, ieview, ImageEnView, FileCtrl, StdCtrls, ImageEnIO, ComCtrls,
|
|
ExtCtrls, hyieutils, iexBitmaps, hyiedefs, iesettings, iexLayers,
|
|
iexRulers;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
StringGrid1: TStringGrid;
|
|
Panel2: TPanel;
|
|
ImageEnView1: TImageEnView;
|
|
ProgressBar1: TProgressBar;
|
|
DriveComboBox1: TDriveComboBox;
|
|
DirectoryListBox1: TDirectoryListBox;
|
|
FileListBox1: TFileListBox;
|
|
btnSaveChanges: TButton;
|
|
btnClearIPTC: TButton;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FileListBox1Change(Sender: TObject);
|
|
procedure ImageEnView1Progress(Sender: TObject; per: Integer);
|
|
procedure btnSaveChangesClick(Sender: TObject);
|
|
procedure btnClearIPTCClick(Sender: TObject);
|
|
procedure ImageEnView1FinishWork(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsTheme.res}
|
|
|
|
uses
|
|
iexMetaHelpers;
|
|
|
|
// Initialize properties grid
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
StringGrid1.NewGridForIPTC;
|
|
end;
|
|
|
|
// Load a file
|
|
procedure TForm1.FileListBox1Change(Sender: TObject);
|
|
begin
|
|
if IsKnownFormat(FileListBox1.FileName) then
|
|
begin
|
|
// we need only a thumbnail (fast load)
|
|
ImageEnView1.io.Params.Width := ImageEnView1.Width;
|
|
ImageEnView1.io.Params.Height := ImageEnView1.Height;
|
|
ImageEnView1.io.Params.JPEG_Scale := ioJPEG_AUTOCALC;
|
|
ImageEnView1.io.LoadFromFile(FileListBox1.FileName);
|
|
|
|
// read IPTC
|
|
StringGrid1.ReadGridFromIPTC(ImageEnView1.io.Params);
|
|
end;
|
|
end;
|
|
|
|
// Show progress
|
|
procedure TForm1.ImageEnView1Progress(Sender: TObject; per: Integer);
|
|
begin
|
|
ProgressBar1.Position := per;
|
|
end;
|
|
|
|
// Reset progress
|
|
procedure TForm1.ImageEnView1FinishWork(Sender: TObject);
|
|
begin
|
|
ProgressBar1.Position := 0;
|
|
end;
|
|
|
|
// Save changes
|
|
procedure TForm1.btnSaveChangesClick(Sender: TObject);
|
|
var
|
|
bIPTCChanged: Boolean;
|
|
begin
|
|
bIPTCChanged := StringGrid1.WriteGridToIPTC( ImageEnView1.IO.Params );
|
|
|
|
if bIPTCChanged then
|
|
case ImageEnView1.io.Params.FileType of
|
|
ioJPEG:
|
|
// inject iptc in jpeg
|
|
ImageEnView1.io.InjectJpegIPTC(FileListBox1.FileName);
|
|
ioTIFF:
|
|
// save iptc in TIFF
|
|
ImageEnView1.io.SaveToFile(FileListBox1.FileName);
|
|
end;
|
|
end;
|
|
|
|
// Clear grid
|
|
procedure TForm1.btnClearIPTCClick(Sender: TObject);
|
|
begin
|
|
ImageEnView1.io.Params.IPTC_Info.Clear;
|
|
StringGrid1.ClearGridFields;
|
|
end;
|
|
|
|
end.
|