BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/VideoCapture/VideoCapture1_Deprecated/Unit1.pas

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.