简介:本文提供一段完整的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;
//请首先下载tvideocap控件
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器