送40分 我现在有一个数码像机,是通过USB接口介入机子里的,我想通过delphi程序接受传入的图象,并且能自动保存,请问用什么方法能够实现,或者给我点相应函数就行,万分感谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 现在直接都有这样的程序 比如vidcap 在Form1上放置一个TPanel控件,设Name为“gCapVideoArea”,该控件用于显示视频。再放置两个TButton控件,一个Name为“Openvideo”,另一个Name为“Closevideo”。定义全局变量:var//定义捕获窗句柄ghCapWnd: THandle;//可以得到视频数据指针的结构变量,用于回调函数中VideoStr: LPVIDEOHDR;//用于设置设备属性的结构变量CapParms: TCaptureParms;在Name为“Openvideo”的TButton 的Click事件中写入以下代码:procedure TForm1.OpenvideoClick(Sender: TObject);begin//使用Tpanel控件来创建捕获窗口ghCapWnd := CapCreateCaptureWindow( PChar(‘KruwoSoft'), //捕获窗口的名字WS_CHILD or WS_VISIBLE,//窗口样式0, //X坐标0, //Y坐标gCapVideoArea.Width, //窗口宽gCapVideoArea.Height, //窗口高gCapVideoArea.Handle, //窗口句柄0); //一般为0{为了能够捕获视频帧,要启动一个捕获帧回调函数VideoStreamCallBack。捕获一个视频流或当前设备状态时分别使用以下函数://捕获一个视频流CapSetCallbackOnVideoStream;//得到一个设备错误CapSetCallbackOnError;//得到一个设备状态CapSetCallbackOnStatus}//定义一个帧捕获回调函数CapSetCallbackOnFrame (ghCapWnd,LongInt(@VideoStreamCallBack));//将一个捕获窗口与一个设备驱程相关联,第二个参数是个序号,当系统中装有多个显视驱动程序时,其值分别依次为0到总个数CapDriverConnect(ghCapWnd, 0);//设置设备属性的结构变量CapParms.dwRequestMicroSecPerFrame:=40000;CapParms.fLimitEnabled := FALSE;CapParms.fCaptureAudio := FALSE; // NO AudioCapParms.fMCIControl := FALSE;CapParms.fYield := TRUE;CapParms.vKeyAbort := VK_ESCAPE;CapParms.fAbortLeftMouse := FALSE;CapParms.fAbortRightMouse := FALSE;//使设置生效CapCaptureSetSetup(ghCapWnd,LongInt(@CapParms),sizeof(TCAPTUREPARMS));//设置预览时的比例CapPreviewScale(ghCapWnd, 1);//设置预览时的帧频率CapPreviewRate(ghCapWnd,66);//如果要捕获视频流,则要使用函数指定不生成文件。否则将会自动生成AVI文件CapCaptureSequenceNoFile(ghCapWnd);//指定是否使用叠加模式,使用为1,否则为0CapOverlay(ghCapWnd, 1);//打开预览CapPreview(ghCapWnd, 1);end;在Name为“Closevideo”的TButton 的Click事件中写入以下代码:procedure TForm1.ClosevideoClick(Sender: TObject);begin//停止捕获capCaptureAbort(ghCapWnd);//将捕获窗同驱动器断开capDriverDisconnect(ghCapWnd);end;定义捕获帧回调函数:function FrameCallBack(hWnd:HWND; lpVHdr:LongInt) :LongInt; stdcall;varDataPoint:^byte;DibLen,RectWidth,RectHeight:integer;begin//转换从回调函数中得到的指针VideoStr:=LPVIDEOHDR(lpVHdr);//得到返回的数据大小DibLen:=VideoStr^.dwBufferLength;GetMem(DataPoint,64000);//将帧数据COPY到一个内存中,注意DATAPOINT要先分配空间CopyMemory(DataPoint,VideoStr^.lpData,Diblen);//一些其他处理……end; 用搜索引擎找些关于Twain的Delphi组件,就是对Twain.dll的封装,Windows中的这个链接库提供了相关接口! 取一个字符串空格前面和后面的数据? 转贴*互联网实名·人大代表述职·官员财产申报* 怎么得到ActionList中的Standard Action的代码? DBGrid如何将鼠标选中的某行的全部字段分别显示在对应的Edit中? 麻烦帮我写一个Unit 新的学习乐园delphi_ok,欢迎大家加入,共同学习!! 产生了Exception EOleSysError错误。。。。。 我的客户程序跟sql2000server保持常连接还是连接取完数据后就断开? GOOGLE不能用了,我们还能用什么…… 急!求installshield for D5的PSW? 几个小问题,谁先答出谁先得分! 谁有电信工作的经验???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货