《DIY个照相机-Delphi实现摄像头拍照功能.docx》由会员分享,可在线阅读,更多相关《DIY个照相机-Delphi实现摄像头拍照功能.docx(4页珍藏版)》请在金锄头文库上搜索。
1、 DIY个照相机-Delphi实现摄像头拍照功能procedure Tfrm1.Button2Click(Sender: TObject);Varjpeg: TJPEGImage;bmp: TBitmap;MyStm:TMemoryStream;strfilename,strcard:String;begininherited;strfilename:=extractfilepath(Application.ExeName);with DBEdit12.DataSource.DataSet dobeginif not VideoCap1.SaveAsDIB thenbeginShowMessa
2、ge(”拍摄照片失败”);Abort;end;/ bmp:= TBitmap.Create; trybmp.LoadFromFile(strfilename+ ”Capture.bmp” );MyStm:=TMemoryStream.Create;jpeg:= TJPEGImage.Create;tryjpeg.Assign( bmp );press;jpeg.SaveTofile( strfilename+”Capture.jpg”);strfilename:=strfilename+”Capture.jpg”;jpeg.LoadFromFile(strfilename);jpeg.Save
3、ToStream(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);beginwith qry1 dobeignif active thenclose;sql.clea
4、r;sql.add(ssql);tryopencatchon E: Exception do ErrorDialog(E.Message, E.HelpContext);end;/tryend;end;with query1 dobeginif pubqry.Fields0.AsInteger 0 then /先推断此卡号的图片是否存在,若存在,替换;否则,插入。EditelseInsert; FieldByName(”card_no”).AsString :=strcard; TBlobField(FieldByName(”photo”).LoadFromStream(MyStm);Post; /统一提交end;/withfinallyMyStm.Free;jpeg.free;end; /tryfinallybmp.free;end;/tryend;/withend;