当前位置:首页 > 技术问答集
firefox

怎样实现定时抓取摄像头的图片,我已经实现了抓取图片

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

已经实现了抓取摄像头的图像,并存为缩小的jpg图片,但是怎么实现一按下“捕捉图片”的按钮后就可以每隔10秒刷新捕捉的图像,在按下就可以停止呢?我没用过线程和定时器,所以麻烦各位说的清除些,我下面的代码用了sleep(5000),估计sleep把整个程序组塞了,造成了假死的现象  
   
  procedure   tform1.button3click(sender:   tobject);  
  var  
      jpg   :tjpegimage;  
      bmp   :tbitmap;  
      name:string;  
      nameid:string;  
      tmp:string;  
      begin  
      name:=combobox1.text;  
      nameid:=inttostr(combobox1.itemindex+1);  
  while(true)   do  
  begin  
  if   hwndc   <>   0   then   begin  
  sendmessage(hwndc,wm_cap_savedib,0,longint(pchar(nameid+.bmp)));  
    //   jpg.create;  
    jpg:=tjpegimage.create;  
      bmp:=tbitmap.create;  
      bmp.loadfromfile(nameid+.bmp);  
      bmp.canvas.brush.style   :=   bsclear;  
      bmp.canvas.font.color   :=   clred;  
      bmp.canvas.font.size   :=   20;  
      bmp.canvas.font.name:=宋体;  
      bmp.canvas.font.size:=9;  
      bmp.canvas.textout((bmp.width   div   2   -   30),(0),name);  
   
      bmp.canvas.textout(0,(bmp.height-10),datetimetostr(now));  
   
      image2.picture.bitmap.assign(bmp);  
      jpg.assign(bmp);  
      jpg.savetofile(nameid+a.jpg);  
      jpg.free;  
      bmp.free;  
      jpg:=   stretchimagepercent(nameid+a.jpg,50,100);  
      jpg.savetofile(nameid+.jpg);  
      jpg.free;  
  end;  
      sleep(5000);  
  end;  
  end;

· 网友精彩回答:

发表者:prettymurphy

 
  procedure   delay(msecs:integer);  
  var   firsttickcount   :   real;  
  begin  
      firsttickcount   :=   gettickcount;  
      repeat  
          application.processmessages;  
      until   ((gettickcount   -   firsttickcount)   >=   longint   (msecs));  
  end;  
   
  用这个延时看看。

发表者:hanppern

use   "dspack   directx   show   多媒体   dvd   抓图   控件包",everything   about   vedio   will   become   very   easy.

发表者:lianshaohua

用一个timer()来实现等待很简单的,把抓图的函数放到ontimer事件中,就可以了;

发表者:monklz

就是,设好timer的间隔时间,毫秒单位。  
  enable   :=   true启动  
  ontimer事件中写抓图函数。  
  试试就知道效果了。  
  enable   :=   false停止

发表者:fansnaf

^_^,是这样的吗?

.
© 2006-2008 All Rights Reserved