45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:怎么样通过DELPHI实现摄像头拍照?

怎么样通过DELPHI实现摄像头拍照?

2016-09-04 11:04:00 来源:www.45fan.com 【

怎么样通过DELPHI实现摄像头拍照?

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控件

 

本文地址:http://www.45fan.com/a/question/72142.html
Tags: 实现 拍照 Delphi
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部