AVI可以通过AVI函数库来实现用1、用AVIFileINI初始化AVI库函数。
2、打开AVI文件。 AVIFileOpen
3、读取AVI文件信息。 AVIFileInfo
4、将AVI变成视频流。AVIFileGetStream
5、通过AVIStreamRead函数读取指定帧数据。
6、组织图片,显示。
7、用AVIFileClose。关闭AVI文件。
8、AVIFileExit结束AVI操作。

解决方案 »

  1.   

    我 试了 ,在DELPHI 里 没有AVIFILEINOF 这个结构呀
      

  2.   

    在VC中有个VFW.h头文件你只要把该文件转换为DElphi就行
      

  3.   

    function LoadThumb(filename:shortstring):TBitmap; procedure BGR2RGB(var bmp:TBitmap); 
    var 
     x,y:integer; t:char; data:pchar; 
    begin 
     for y:=bmp.Height-1 downto 0 do 
     begin 
      data:=bmp.ScanLine[y]; 
      for x:=0 to bmp.Width-1 do 
      begin 
        t:=data[x*3]; 
        data[x*3]:=data[x*3+2]; 
        data[x*3+2]:=t; 
      end; 
      end; 
    end; var 
      fstream:Tfilestream; mstream:Tmemorystream; 
      j,i:word;data:pchar; buf:array [0..3] of byte; 
      filesize:DWORD; fjpg:Tjpegimage;bmp:Tbitmap; 
      begin 
        result:=nil; 
         fstream:=Tfilestream.create(filename,fmOpenRead); 
        //建立文件流,读JPEG文件 
         fstream.Seek(20,soFromBeginning); //FF ED段在文件的第20个字节 处 
          fstream.Read(buf,sizeof(buf)); 
        if PWORD(@buf[0])^=$EDFF then 
         begin 
          j:=buf[2]*256+buf[3]; //FF ED的大小,高位在前,低位在后 
          if j<1024 then //FF ED段的大小若为1024个字节则文件不包含缩览图,退出程序 
           begin 
            fstream.free; 
            exit; 
          end;   mstream:=TMemorystream.Create;//建立内存流   mstream.CopyFrom(fstream,j); //把FF ED段拷贝到mstream   data:=mstream.Memory;   for i:=300 to 700 do //找缩览图的开始标志FF D8   if PWORD(@data[i])^=$D8FF then break;   if i<700 then   begin   fjpg:=Tjpegimage.Create; //建立TJPEGimage 解出缩览图   bmp:=TBitmap.Create;   mstream.Position:=i;   fjpg.LoadFromStream(mstream);//fjpg读取mstream   bmp.Assign(fjpg); //JPEG转BMP   if PWORD(@data[i+57])^=$2e34 then //PhotoShop 4.0的缩览图   BGR2RGB(bmp); //BMP的像素格式BGR 而不是RGB,要把BGR转化为RGB   result:=bmp; //函数返回BMP   mstream.Free;   fjpg.Free; //释放Object   end;end;   fstream.free;   end;