本文提供工程师分享的一段完整的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;
丝印233DS苹果无线蓝牙耳机专用触控芯片---VKD233DS
快速充电、无线充电将成今年主流
条形液晶屏:亮度的秘密与实用价值
关于15kHz超声波发生器及换能器的应用,你知道吗?
区块链分布式身份证核验服务平台联核云VIS介绍
工程师分享(一):照相机拍照功能实现源码
中国汽车售后维修市场规模逐年增长,2019年规模约为6770亿元
fpga为图形传感器提供接口让摄像头变聪明
超56万韩国5G用户重返4G:中国5G也面临着一个问题
带两个7段LED显示屏的PING的制作
苹果PowerbeatsPro耳机将于6月登陆国内 售价1888元
32英寸高压LIPS液晶电视电源参考设计方案介绍
中国联通运用AI技术,提出承载网络流量分析及告警故障智能派单算法
OPC UA Pub/Sub模式介绍,更适合工业4.0的连接方式
工业互联网是社会变革的毒药还是解药?
嵌入式Linux设计:硬件和驱动程序
基于TMS320F2812实现MPPT控制系统的设计
浅析传感器的定义及分类
荣耀Magic 6系列手机将搭载鸿燕卫星通信技术
Xilinx FPGA助力智能化人群监控系统