侵权投诉
当前位置:

OFweek电子工程网

正文

照相机拍照功能实现源码

导读: 本文提供工程师分享的一段完整的Delphi代码,实现利用摄像头进行拍照的功能。注意需要TVideoCap控件支持。

  本文提供工程师分享的一段完整的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;

声明: 本文由入驻OFweek公众平台的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

我来说两句

(共0条评论,0人参与)

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号