WEB开发网
开发学院软件开发Delphi DELPHI实现摄像头拍照 阅读

DELPHI实现摄像头拍照

 2006-02-04 13:54:55 来源:WEB开发网   
核心提示: PRocedure Tfrm1.Button2Click(Sender: TObject);Var jpeg: TJPEGImage; bmp: TBitmap; MyStm:TMemoryStream; strfilename,strcard:String;begin inherited; strfil
 

PRocedure Tfrm1.Button2Click(Sender: TObject);
Var
  jpeg: TJPEGImage;
  bmp: TBitmap;
  MyStm:TMemoryStream;
  strfilename,strcard:String;
begin
  inherited;
  strfilename:=extractfilepath(application.ExeName);
  with DBEdit12.DataSource.DataSet do
  begin
   
     if not  VideoCap1.SaveAsDIB then
     begin
      ShowMessage('拍摄照片失败');
      Abort;
     end;//

   bmp:= TBitmap.Create;
     try
      bmp.LoadFromFile(strfilename+ 'Capture.bmp' );
      MyStm:=TMemoryStream.Create;
      jpeg:= TJPEGImage.Create;
      try
       jpeg.Assign( bmp );
       jpeg.compress;
       jpeg.SaveTofile( strfilename+'Capture.jpg');
       strfilename:=strfilename+'Capture.jpg';
       jpeg.LoadFromFile(strfilename);
       jpeg.SaveToStream(MyStm);
       MyStm.Position:=0;
   OpenQry(query1,'select count(1) as cnt from tb_photo where card_no='''+strcard+'''');//先查找是否有此卡号
   OpenQry(pubqry,'select * from tb_photo where card_no='''+strcard+'''');//打开卡号数据表
   {OpenQry是自定义打开数据表的函数
   OpenQry(qry1:TQuery,ssql:String);
   begin
    with qry1 do
    beign
     if active then
     close;
     sql.clear;
     sql.add(ssql);
     try
      open
     catch
   on E: Exception do ErrorDialog(E.Message, E.HelpContext);
     end;//try
    end;
   end;  
   } 
       with  query1 do
       begin
       if pubqry.Fields[0].AsInteger >0 then  //先判断此卡号的图片是否存在,若存在,替换;否则,插入。
        Edit
       else
        Insert;

      FieldByName('card_no').AsString :=strcard;
        TBlobField(FieldByName('photo')).LoadFromStream(MyStm);
        Post; //统一提交
       end;//with
      finally
       MyStm.Free;
       jpeg.free;
      end;  //try
     finally
      bmp.free;
     end;//try
  end;//with
end;
//请首先下载TVideoCap控件

Tags:DELPHI 实现 摄像头

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接