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

📄 unit5.~pas

📁 威视V130采集卡开发包:包含了源代码、可执行文件和Demo
💻 ~PAS
字号:
unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit2, VFW, Unit1, IniFiles;

type
  TForm4 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
    a1,a2,a3,a4 : DWORD;
    a5 : POINTER;
    avisi : TAVICOMPRESSOPTIONS;
    procedure StarAVi(FileName:String);
    procedure EndAVI();
    procedure ChooseAVI();
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}
procedure TForm4.StarAVi(FileName:String);
Var info: TMV_IMAGEINFO;
    i   : UINT;
    bOpen : boolean;
    val :integer;
begin
    if Form1.bCompress = FALSE then begin
        MV_AVIFileInit(541215044, 25);
        MV_SetDeviceParameter( Form1.m_hDev[Form1.m_Current], SET_GARBIMAGEINFO, DWORD(@info) );	// 得到当前的图像的信息
        Form1.m_pImageInfo := AllocMem(sizeof( BITMAPINFO ) +(256 * sizeof( RGBQUAD )) );
        if Form1.m_pImageInfo = NIL Then
                Exit ;
        Form1.m_pImageInfo.bmiHeader.biSize          := sizeof( BITMAPINFOHEADER );
        Form1.m_pImageInfo.bmiHeader.biWidth         := info.Width;
        Form1.m_pImageInfo.bmiHeader.biHeight        := info.Heigth;
        Form1.m_pImageInfo.bmiHeader.biPlanes        := 1;
        Form1.m_pImageInfo.bmiHeader.biBitCount      := info.nColor;
        Form1.m_pImageInfo.bmiHeader.biCompression   := BI_RGB;
        Form1.m_pImageInfo.bmiHeader.biSizeImage     := info.Length;
        Form1.m_pImageInfo.bmiHeader.biXPelsPerMeter := 0;
        Form1.m_pImageInfo.bmiHeader.biYPelsPerMeter := 0;
        if info.nColor <=8    Then begin
                Form1.m_pImageInfo.bmiHeader.biClrUsed       := 256;
                Form1.m_pImageInfo.bmiHeader.biClrImportant  := 256;
                end
        else if info.nColor >8 Then begin
                Form1.m_pImageInfo.bmiHeader.biClrUsed       := 0;
                Form1.m_pImageInfo.bmiHeader.biClrImportant  := 0;
                end;
        if info.nColor = 8 Then begin
                for i := 0 to 255 do
                       Form1.m_pImageInfo.bmiColors[i].rgbBlue       := BYTE(i);
                       Form1.m_pImageInfo.bmiColors[i].rgbGreen      := BYTE(i);
                       Form1.m_pImageInfo.bmiColors[i].rgbRed        := BYTE(i);
                       Form1.m_pImageInfo.bmiColors[i].rgbReserved   := 0;
                end;
        if Form1.IsSave = FALSE THEN begin
                bOpen := MV_AVIFileOpen(0, pchar(FileName), Form1.m_pImageInfo, 1, true, @avisi);

                a1 :=  avisi.fccHandler;
                a2 :=  avisi.cbParms;
                a3 :=  avisi.dwQuality;
                a4 :=  avisi.dwBytesPerSecond;
                a5 :=  avisi.lpParms;
                Form1.IsSave := TRUE;
                end
        else if Form1.IsSave = TRUE  then begin
//                avisi.cbParms := a2;
                avisi.fccHandler := a1;
//                avisi.dwBytesPerSecond := a4;
//                avisi.dwQuality := a3;
//                avisi.lpParms := a5;
                bOpen := MV_AVIFileOpen(0, pchar(FileName), Form1.m_pImageInfo, 1, false, @avisi);
                end;

        if bOpen = TRUE then begin
                MV_SetDeviceParameter( Form1.m_hDev[Form1.m_Current], WORK_UPDOWN, 1 );
                MV_SetDeviceParameter( Form1.m_hDev[Form1.m_Current], DISP_FLIP, 1 );
                Form1.bCompress  :=TRUE;
                end
        else if bOpen = FALSE then begin
                MV_AVIFileFini();
                Form1.bCompress  :=FALSE;
                end;
        end;
end;

procedure TForm4.EndAVI();
begin
        if  Form1.bCompress = TRUE then begin
        MV_SetDeviceParameter( Form1.m_hDev[Form1.m_Current], WORK_UPDOWN, 0 );
        MV_SetDeviceParameter( Form1.m_hDev[Form1.m_Current], DISP_FLIP, 0 );
        Sleep(100);
        MV_AVIFileFini();
        Form1.bCompress  :=FALSE;
        end;
end;

procedure TForm4.ChooseAVI();
var
        info: TMV_IMAGEINFO;
        i   : UINT;
begin
        MV_AVIFileInit(541215044, 25);
        MV_SetDeviceParameter( Form1.m_hDev[Form1.m_Current], SET_GARBIMAGEINFO, DWORD(@info) );	// 得到当前的图像的信息
        Form1.m_pImageInfo := AllocMem(sizeof( BITMAPINFO ) +(256 * sizeof( RGBQUAD )) );
        if Form1.m_pImageInfo = NIL Then
                Exit ;
        Form1.m_pImageInfo.bmiHeader.biSize          := sizeof( BITMAPINFOHEADER );
        Form1.m_pImageInfo.bmiHeader.biWidth         := info.Width;
        Form1.m_pImageInfo.bmiHeader.biHeight        := info.Heigth;
        Form1.m_pImageInfo.bmiHeader.biPlanes        := 1;
        Form1.m_pImageInfo.bmiHeader.biBitCount      := info.nColor;
        Form1.m_pImageInfo.bmiHeader.biCompression   := BI_RGB;
        Form1.m_pImageInfo.bmiHeader.biSizeImage     := info.Length;
        Form1.m_pImageInfo.bmiHeader.biXPelsPerMeter := 0;
        Form1.m_pImageInfo.bmiHeader.biYPelsPerMeter := 0;
        if info.nColor <=8    Then begin
                Form1.m_pImageInfo.bmiHeader.biClrUsed       := 256;
                Form1.m_pImageInfo.bmiHeader.biClrImportant  := 256;
                end
        else if info.nColor >8 Then begin
                Form1.m_pImageInfo.bmiHeader.biClrUsed       := 0;
                Form1.m_pImageInfo.bmiHeader.biClrImportant  := 0;
                end;
        if info.nColor = 8 Then begin
                for i := 0 to 255 do
                       Form1.m_pImageInfo.bmiColors[i].rgbBlue       := BYTE(i);
                       Form1.m_pImageInfo.bmiColors[i].rgbGreen      := BYTE(i);
                       Form1.m_pImageInfo.bmiColors[i].rgbRed        := BYTE(i);
                       Form1.m_pImageInfo.bmiColors[i].rgbReserved   := 0;
                end;
        MV_AVIFileOpen(0, 'Capture.avi', Form1.m_pImageInfo, 1, true, @avisi);
        Form1.faceini := TIniFile.Create('c:\mvavi.ini');
        Form1.faceIni.WriteInteger('mvavi', 'fccHandler', avisi.fccHandler);
        Form1.faceIni.WriteBool('mvavi', 'IsSave', TRUE);
        MV_AVIFileFini();
end;
end.

⌨️ 快捷键说明

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