255 lines
6.1 KiB
Plaintext
255 lines
6.1 KiB
Plaintext
unit Unit1;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ImageEnView, VideoCap, ExtCtrls, Buttons, ImageEnProc, Menus,
|
|
ImageEnIO, ComCtrls, IEOpenSaveDlg, hyiedefs, IEVect, ieview, hyieutils;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
GroupBox1: TGroupBox;
|
|
SpeedButton2: TSpeedButton;
|
|
CheckBox1: TCheckBox;
|
|
ImageEnProc1: TImageEnProc;
|
|
ImageEnProc2: TImageEnProc;
|
|
GroupBox2: TGroupBox;
|
|
ImageEnIO1: TImageEnIO;
|
|
ImageEnVideoView1: TImageEnVideoView;
|
|
Label5: TLabel;
|
|
Label6: TLabel;
|
|
SaveImageEnDialog1: TSaveImageEnDialog;
|
|
GroupBox3: TGroupBox;
|
|
SpeedButton6: TSpeedButton;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
Button8: TButton;
|
|
Edit1: TEdit;
|
|
Edit2: TEdit;
|
|
UpDown1: TUpDown;
|
|
ImageEnView1: TImageEnView;
|
|
GroupBox4: TGroupBox;
|
|
Button5: TButton;
|
|
Button6: TButton;
|
|
Button7: TButton;
|
|
GroupBox5: TGroupBox;
|
|
SpeedButton1: TSpeedButton;
|
|
Button1: TButton;
|
|
Button2: TButton;
|
|
Button11: TButton;
|
|
GroupBox6: TGroupBox;
|
|
SpeedButton5: TSpeedButton;
|
|
Label7: TLabel;
|
|
ComboBox1: TComboBox;
|
|
Label1: TLabel;
|
|
Label8: TLabel;
|
|
Label9: TLabel;
|
|
ComboBox2: TComboBox;
|
|
procedure SpeedButton2Click(Sender: TObject);
|
|
procedure CheckBox1Click(Sender: TObject);
|
|
procedure SpeedButton1Click(Sender: TObject);
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure Button5Click(Sender: TObject);
|
|
procedure Button6Click(Sender: TObject);
|
|
procedure Button7Click(Sender: TObject);
|
|
procedure SpeedButton5Click(Sender: TObject);
|
|
procedure Button11Click(Sender: TObject);
|
|
procedure FormActivate(Sender: TObject);
|
|
procedure SpeedButton6Click(Sender: TObject);
|
|
procedure Button8Click(Sender: TObject);
|
|
procedure ImageEnVideoView1Job(Sender: TObject; job: TIEJob;
|
|
per: Integer);
|
|
procedure ComboBox2Change(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
procedure ImageEnVideoView1VideoFrame(Sender: TObject; Bitmap: TIEDibBitmap);
|
|
procedure DisplayVideoSize;
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
uses giflzw, tiflzw;
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsTheme.res}
|
|
|
|
// Input ON
|
|
|
|
procedure TForm1.SpeedButton2Click(Sender: TObject);
|
|
begin
|
|
ImageEnVideoView1.ShowVideo := SpeedButton2.Down;
|
|
Button1.enabled := not SpeedButton2.Down;
|
|
Button2.enabled := not SpeedButton2.Down;
|
|
DisplayVideoSize;
|
|
end;
|
|
|
|
// overlay
|
|
|
|
procedure TForm1.CheckBox1Click(Sender: TObject);
|
|
begin
|
|
if checkbox1.checked then
|
|
ImageEnVideoView1.DisplayMode := dmOverlay
|
|
else
|
|
ImageEnVideoView1.DisplayMode := dmPreview;
|
|
end;
|
|
|
|
// freeze
|
|
|
|
procedure TForm1.SpeedButton1Click(Sender: TObject);
|
|
begin
|
|
ImageEnVideoView1.Frozen := SpeedButton1.Down;
|
|
end;
|
|
|
|
// Color adjust
|
|
|
|
procedure TForm1.Button1Click(Sender: TObject);
|
|
begin
|
|
ImageEnProc1.DoPreviews(ppeColorAdjustments);
|
|
end;
|
|
|
|
// Effects
|
|
|
|
procedure TForm1.Button2Click(Sender: TObject);
|
|
begin
|
|
ImageEnProc1.DoPreviews(ppeSpecialEffects);
|
|
end;
|
|
|
|
// Configure source
|
|
|
|
procedure TForm1.Button5Click(Sender: TObject);
|
|
begin
|
|
if not ImageEnVideoView1.DoConfigureSource then
|
|
MessageDlg('Configure Source dialog not available', mtInformation, [mbOK], 0)
|
|
else
|
|
DisplayVideoSize;
|
|
end;
|
|
|
|
// Configure Format
|
|
|
|
procedure TForm1.Button6Click(Sender: TObject);
|
|
begin
|
|
if not ImageEnVideoView1.DoConfigureFormat then
|
|
MessageDlg('Configure Format dialog not available', mtInformation, [mbOK], 0)
|
|
else
|
|
DisplayVideoSize;
|
|
end;
|
|
|
|
// Configure display
|
|
|
|
procedure TForm1.Button7Click(Sender: TObject);
|
|
begin
|
|
if not ImageEnVideoView1.DoConfigureDisplay then
|
|
MessageDlg('Configure Display dialog not available', mtInformation, [mbOK], 0)
|
|
else
|
|
DisplayVideoSize;
|
|
end;
|
|
|
|
// Frames to ImageEnView1 (Activate button)
|
|
|
|
procedure TForm1.SpeedButton5Click(Sender: TObject);
|
|
begin
|
|
if SpeedButton5.Down then
|
|
ImageEnVideoView1.OnVideoFrame := ImageEnVideoView1VideoFrame
|
|
else
|
|
ImageEnVideoView1.OnVideoFrame := nil;
|
|
end;
|
|
|
|
// Frames to ImageEnView1 - OnVideoFrame
|
|
|
|
procedure TForm1.ImageEnVideoView1VideoFrame(Sender: TObject; Bitmap: TIEDibBitmap);
|
|
begin
|
|
Bitmap.CopyToTBitmap(ImageEnView1.Bitmap);
|
|
ImageEnView1.Update;
|
|
case ComboBox1.ItemIndex of
|
|
1: ImageEnProc2.ConvertToBWOrdered;
|
|
2: ImageEnProc2.ConvertToBWThreshold(-1);
|
|
3: ImageEnProc2.ConvertToGray;
|
|
end;
|
|
ImageEnView1.Fit;
|
|
end;
|
|
|
|
// Save as...
|
|
|
|
procedure TForm1.Button11Click(Sender: TObject);
|
|
begin
|
|
if SaveImageEnDialog1.Execute then
|
|
ImageEnIO1.SaveToFile(SaveImageEnDialog1.filename);
|
|
end;
|
|
|
|
//
|
|
|
|
procedure TForm1.DisplayVideoSize;
|
|
var
|
|
r: TRect;
|
|
begin
|
|
r := ImageEnVideoView1.GetVideoSize;
|
|
Label6.caption := inttostr(r.right + 1) + 'x' + inttostr(r.bottom + 1);
|
|
end;
|
|
|
|
//
|
|
|
|
procedure TForm1.FormActivate(Sender: TObject);
|
|
var
|
|
q: integer;
|
|
begin
|
|
ComboBox1.ItemIndex := 0;
|
|
Edit1.Text := ImageEnVideoView1.RecFileName;
|
|
UpDown1.Position := ImageEnVideoView1.RecFrameRate;
|
|
for q := 0 to ImageEnVideoView1.VideoSourceList.Count - 1 do
|
|
ComboBox2.Items.Add(ImageEnVideoView1.VideoSourceList[q]);
|
|
ComboBox2.ItemIndex := 0;
|
|
end;
|
|
|
|
// record
|
|
|
|
procedure TForm1.SpeedButton6Click(Sender: TObject);
|
|
begin
|
|
if SpeedButton6.Down then
|
|
begin
|
|
ImageEnVideoView1.RecFileName := Edit1.Text;
|
|
ImageEnVideoView1.RecFrameRate := UpDown1.Position;
|
|
ImageEnVideoView1.RecAudio := true;
|
|
//ImageEnVideoView1.AudioBitsPerSample:=16;
|
|
//ImageEnVideoView1.AudioSamplesPerSec:=44100;
|
|
//ImageEnVideoView1.AudioChannels:=2;
|
|
//ImageEnVideoView1.AudioFormat:=$55;
|
|
ImageEnVideoView1.StartRecord;
|
|
end
|
|
else
|
|
ImageEnVideoView1.StopRecord;
|
|
end;
|
|
|
|
// Compression
|
|
|
|
procedure TForm1.Button8Click(Sender: TObject);
|
|
begin
|
|
ImageEnVideoView1.DoConfigureCompression;
|
|
end;
|
|
|
|
procedure TForm1.ImageEnVideoView1Job(Sender: TObject; job: TIEJob;
|
|
per: Integer);
|
|
begin
|
|
case job of
|
|
iejNOTHING: Label8.Caption := '';
|
|
iejVIDEOCAP_CONNECTING: Label8.Caption := 'Connecting...';
|
|
end;
|
|
Application.ProcessMessages;
|
|
end;
|
|
|
|
// Video input
|
|
|
|
procedure TForm1.ComboBox2Change(Sender: TObject);
|
|
begin
|
|
if ImageEnVideoView1.VideoSource <> ComboBox2.ItemIndex then
|
|
ImageEnVideoView1.VideoSource := ComboBox2.ItemIndex;
|
|
end;
|
|
|
|
end.
|