123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- unit test1;
- interface
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, jpeg, ExtCtrls, FileCtrl, ComCtrls;
- type
- TForm1 = class(TForm)
- Image1: TImage;
- Panel1: TPanel;
- DirectoryListBox1: TDirectoryListBox;
- FileListBox1: TFileListBox;
- Panel3: TPanel;
- DriveComboBox1: TDriveComboBox;
- Scale: TComboBox;
- PixelFormat: TComboBox;
- ColorSpace: TComboBox;
- Performance: TComboBox;
- ProgressiveDisplay: TCheckBox;
- IncrementalDisplay: TCheckBox;
- procedure FileListBox1DblClick(Sender: TObject);
- procedure SetJPEGOptions(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure ProgressUpdate(Sender: TObject; Stage: TProgressStage;
- PercentDone: Byte; RedrawNow: Boolean; const R: TRect; const Msg: string);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.DFM}
- procedure TForm1.FileListBox1DblClick(Sender: TObject);
- begin
- try
- Image1.Picture.LoadFromFile(FileListbox1.Filename);
- except
- on EInvalidGraphic do
- Image1.Picture.Graphic := nil;
- end;
- SetJPEGOptions(self);
- end;
- procedure TForm1.SetJPEGOptions(Sender: TObject);
- var
- Temp: Boolean;
- begin
- Temp := Image1.Picture.Graphic is TJPEGImage;
- if Temp then
- with TJPEGImage(Image1.Picture.Graphic) do
- begin
- PixelFormat := TJPEGPixelFormat(Self.PixelFormat.ItemIndex);
- Scale := TJPEGScale(Self.Scale.ItemIndex);
- Grayscale := Boolean(Colorspace.ItemIndex);
- Performance := TJPEGPerformance(Self.Performance.ItemIndex);
- ProgressiveDisplay := Self.ProgressiveDisplay.Checked;
- end;
- Scale.Enabled := Temp;
- PixelFormat.Enabled := Temp;
- Colorspace.Enabled := Temp;
- Performance.Enabled := Temp;
- ProgressiveDisplay.Enabled := Temp
- and TJPEGImage(Image1.Picture.Graphic).ProgressiveEncoding;
- Image1.IncrementalDisplay := IncrementalDisplay.Checked;
- end;
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Scale.ItemIndex := 0;
- PixelFormat.ItemIndex := 0;
- Colorspace.ItemIndex := 0;
- Performance.ItemIndex := 0;
- FileListbox1.Mask := '*.jpg;*.bmp;*.wmf;*.emf;*.ico';
- Image1.OnProgress := ProgressUpdate;
- end;
- procedure TForm1.ProgressUpdate(Sender: TObject; Stage: TProgressStage;
- PercentDone: Byte; RedrawNow: Boolean; const R: TRect; const Msg: string);
- begin
- if Stage = psRunning then
- Caption := Format('%d%%',[PercentDone])
- else
- Caption := 'Form1';
- end;
- end.
|