⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 framegrabber_.pas

📁 toi co the nghe nhac bang choung trinh nay phgan 2
💻 PAS
字号:
{(((((((((((((((((((((((((((((((((((((((O))))))))))))))))))))))))))))))))))))))}
{                                                                              }
{                         TActiveMovie frame grabber demo                      }
{                          Copyright (c) 2003 Datastead                        }
{                               All rights reserved.                           }
{                                                                              }
{                          contact: support@Datastead.com                      }
{                        support: http://www.Datastead.com                     }
{                                                                              }
{(((((((((((((((((((((((((((((((((((((((O))))))))))))))))))))))))))))))))))))))}

unit FrameGrabber_;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls, Menus, AMovie, Buttons;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    GroupBox2: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    StatusBar1: TStatusBar;
    ActiveMovie1: TActiveMovie;
    OpenDialog1: TOpenDialog;
    GroupBox1: TGroupBox;
    Button6: TButton;
    Button7: TButton;
    GroupBox3: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Edit4: TEdit;
    UpDown2: TUpDown;
    UpDown1: TUpDown;
    GroupBox4: TGroupBox;
    SpeedButton1: TSpeedButton;
    Button3: TButton;
    Edit2: TEdit;
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    Exit1: TMenuItem;
    GroupBox5: TGroupBox;
    Edit5: TEdit;
    Button4: TButton;
    Button5: TButton;
    Button8: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure ActiveMovie1FGrabberCaptureCompleted(Sender: TObject;
      Bitmap: TBitmap; DestType: TFrameCapture_Dest; FileName: String;
      Success: WordBool);
    procedure Edit5Change(Sender: TObject);
    procedure ActiveMovie1OpenStateChange(Sender: TObject; OldState,
      NewState: Integer);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
  private
     FFrameCount: integer;
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

//------------------------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
//------------------------------------------------------------------------------
begin
   FFrameCount:= 0;
   StatusBar1.Panels[0].Text:= ' storage path: ' + ActiveMovie1.StoragePath;
   if not ActiveMovie1.IsDirectX8Installed then begin
      ShowMessage ('DirectX8 is not installed on this platform. Please download it from www.microsoft.com');
   end;
   Edit5.Text := ActiveMovie1.StoragePath;
end;

//------------------------------------------------------------------------------
procedure TForm1.SpeedButton1Click(Sender: TObject);
//------------------------------------------------------------------------------
begin
   OpenDialog1.Filter := 'video clips';
   OpenDialog1.FileName := '*.mpg;*.mpeg;*.avi;*.wav;*.mp3;*.asf;*.wmv';
   if OpenDialog1.Execute then begin
      Edit1.Text := OpenDialog1.FileName;
      ActiveMovie1.FileName := Edit1.Text;
      ActiveMovie1.Open;
   end;
end;

//------------------------------------------------------------------------------
procedure TForm1.Button5Click(Sender: TObject);
//------------------------------------------------------------------------------
begin
   ActiveMovie1.FileName := Edit1.Text;
   ActiveMovie1.Open;
end;

//------------------------------------------------------------------------------
procedure TForm1.Button8Click(Sender: TObject);
//------------------------------------------------------------------------------
begin
   Edit1.Text := 'http://www.Datastead.com/amovie/demo.mpeg';
   ActiveMovie1.FileName := Edit1.Text;
   ActiveMovie1.Open;
end;

//------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
//------------------------------------------------------------------------------
begin
   ActiveMovie1.FGrabber_BurstCount := 0;
   ActiveMovie1.FGrabber_BurstMode := True;
   ActiveMovie1.FGrabber_BurstInterval := StrToIntDef (Edit4.Text, 1);
   ActiveMovie1.FGrabber_CaptureFrameTo (fcTBitmap);
   // the captured frames are returned by the OnFGrabberFrameCaptureCompleted event.
end;

//------------------------------------------------------------------------------
procedure TForm1.ActiveMovie1FGrabberCaptureCompleted(Sender: TObject;
  Bitmap: TBitmap; DestType: TFrameCapture_Dest; FileName: String;
  Success: WordBool);
//------------------------------------------------------------------------------
begin
   case DestType of
      fcBmpFile, fcJPEGFile: begin
         StatusBar1.Panels[1].Text := 'File ' + FileName + ' created';
      end;
      fcTBitmap: begin
         Image1.Width := Bitmap.Width;
         Image1.Height := Bitmap.Height;
         Image1.Picture.Assign (Bitmap);
         inc (FFrameCount);
         Edit2.Text := '  ' + inttostr (FFrameCount);
      end;
   end;
end;

//------------------------------------------------------------------------------
procedure TForm1.ActiveMovie1OpenStateChange(Sender: TObject; OldState,
  NewState: Integer);
//------------------------------------------------------------------------------
begin
   if NewState = nsOpen then begin
      Button1.Enabled := True;
      Button2.Enabled := True;
      Button3.Enabled := True;
      Button4.Enabled := True;
      Button6.Enabled := True;
      Button7.Enabled := True;
   end
   else begin
      Button1.Enabled := False;
      Button2.Enabled := False;
      Button3.Enabled := False;
      Button4.Enabled := False;
      Button6.Enabled := False;
      Button7.Enabled := False;
   end;
end;

//------------------------------------------------------------------------------
procedure TForm1.Button2Click(Sender: TObject);
//------------------------------------------------------------------------------
begin
   ActiveMovie1.FGrabber_BurstMode := False;
end;

//------------------------------------------------------------------------------
procedure TForm1.Button3Click(Sender: TObject);
//------------------------------------------------------------------------------
begin
   ActiveMovie1.Close;
end;

//------------------------------------------------------------------------------
procedure TForm1.Button4Click(Sender: TObject);
//------------------------------------------------------------------------------
// when FGrabber_Enabled is true, CaptureFrameToBitmap, CaptureFrameToImage,
// CaptureFrameToJPegFile and CaptureFrameToBmpFile uses the frame grabber
// synchronously (when the function returns, the capture is done, the
// OnFGrabberCaptureCompleted event is not used.
//------------------------------------------------------------------------------
begin
   ActiveMovie1.CaptureFrameToImage (Image1);
end;

//------------------------------------------------------------------------------
procedure TForm1.Button6Click(Sender: TObject);
//------------------------------------------------------------------------------
begin
   ActiveMovie1.FGrabber_BurstMode := True;
   ActiveMovie1.FGrabber_BurstCount := StrToIntDef (Edit3.Text, 1);
   ActiveMovie1.FGrabber_BurstInterval := StrToIntDef (Edit4.Text, 1);
   ActiveMovie1.FGrabber_CaptureFrameTo (fcJpegFile);
   // the captured file is returned by the OnFrameCaptureCompleted event.
end;

//------------------------------------------------------------------------------
procedure TForm1.Button7Click(Sender: TObject);
//------------------------------------------------------------------------------
begin
   ActiveMovie1.FGrabber_BurstMode := True;
   ActiveMovie1.FGrabber_BurstCount := StrToIntDef (Edit3.Text, 1);
   ActiveMovie1.FGrabber_BurstInterval := StrToIntDef (Edit4.Text, 1);
   ActiveMovie1.FGrabber_CaptureFrameTo (fcBmpFile);
   // the captured file is returned by the OnFrameCaptureCompleted event.
end;

//------------------------------------------------------------------------------
procedure TForm1.Exit1Click(Sender: TObject);
//------------------------------------------------------------------------------
begin
   Close;
end;

//------------------------------------------------------------------------------
procedure TForm1.Edit5Change(Sender: TObject);
//------------------------------------------------------------------------------
begin
   ActiveMovie1.StoragePath := Edit5.Text;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -