(7)
(7)
分类: web开发
2014-08-09 17:22:50
完整的delphi代码,实现利用摄像头进行拍照的功能。需要tvideocap控件支持。
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;
上一篇:
下一篇: