CaptureFrame方法

总结
捕捉到一个框架中CaptureMode.ManualFrames模式捕获。
语法
c#
VB
c++
公共虚拟无效CaptureFrame ()
公共重写的CaptureFrame ()
公共:虚拟无效CaptureFrame ();
讲话

如果方法失败,它会抛出一个错误。有关更多信息,请参考错误代码

例子
c#
VB
使用Leadtools;使用Leadtools.MediaFoundation;使用LeadtoolsMediaFoundationExamples.Fixtures;公共bool_result =;公共CaptureCtrlForm _form =CaptureCtrlForm ();公共无效CaptureFrameExample (){/ /捕获控制参考CaptureCtrl CaptureCtrl = _form.CaptureCtrl;/ /输出文件字符串输出文件= Path.Combine (LEAD_VARS.MediaDir,“CaptureCtrl_CaptureFrameExample.bmp”);试一试{/ /设置视频捕捉设备,使用您的捕获设备名称如果(capturectrl.VideoDevices [“罗技”)= =)异常(“没有罗技视频设备可用”);capturectrl.VideoDevices [“罗技”]。选择=真正的;capturectrl。TargetFormat = TargetFormatType.MP4;/ /准备手册帧捕获capturectrl.ReadyCapture (CaptureMode.ManualFrames);/ /捕获开始前做些什么如果(capturectrl.IsModeAvailable (CaptureMode.ManualFrames)){}/ /将捕获模式设置为手动帧capturectrl.StartCapture (CaptureMode.ManualFrames);/ /捕获一个框架capturectrl.CaptureFrame ();/ /停止捕获capturectrl.StopCapture ();/ /检查捕获文件和设置的结果如果(File.Exists(输出文件){图像测试= Bitmap.FromFile(输出文件);_result =真正的;}}(COMException){_result =;}(异常){_result =;}/ /我们将在国家和循环泵消息对于这个示例。/ /但你应该不需要如果从Windows窗体应用程序运行。(capturectrl。状态= = CaptureState.Running)Application.DoEvents ();}私人PixelFormat FormatFromBitCount (intbitCount){开关(bitCount){情况下8:返回PixelFormat.Format8bppIndexed;情况下16:返回PixelFormat.Format16bppRgb555;情况下32:返回PixelFormat.Format32bppRgb;情况下48:返回PixelFormat.Format48bppRgb;情况下24:返回PixelFormat.Format24bppRgb;}异常(“未被承认的一点”);}私人intGetBitmapSize (bmp位图,intbitCount){intpixelSize = (int)Math.Log (()bitCount);返回(bmp。宽度* pixelSize + pixelSize & ~ 3) * bmp.Height;}私人intGetBitmapScanRowSize (intbmpSize,int步,int宽度){返回bmpSize /(步/宽度);}公共无效CaptureFrame_Helper (对象发送方的EventArgs e){/ /设置的结果_result =真正的;}静态LEAD_VARS{公共常量字符串MediaDir =@“C: \ LEADTOOLS21 \媒体”;}
进口Leadtools进口Leadtools.MediaFoundation进口LeadtoolsMediaFoundationExamples.Fixtures公共_result作为布尔=公共_form作为CaptureCtrlForm ()公共CaptureFrameExample ()”捕获控制参考昏暗的capturectrl作为CaptureCtrl = _form.CaptureCtrl“输出文件昏暗的输出文件作为字符串= Path.Combine (LEAD_VARS.MediaDir“CaptureCtrl_CaptureFrameExample.bmp”)试一试设置视频捕捉设备,使用您的捕获设备名称如果capturectrl.VideoDevices (“罗技”)没有什么然后异常(“没有罗技视频设备可用”)结束如果capturectrl.VideoDevices (“罗技”)。选择=真正的capturectrl。TargetFormat = TargetFormatType.MP4“准备手册帧捕获capturectrl.ReadyCapture (CaptureMode.ManualFrames)“捕获开始前做些什么如果capturectrl.IsModeAvailable (CaptureMode.ManualFrames)然后结束如果“将捕获模式设置为手动帧capturectrl.StartCapture (CaptureMode.ManualFrames)“捕获一个框架capturectrl.CaptureFrame ()“停止捕获capturectrl.StopCapture ()捕获文件和设置的检查结果如果File.Exists(输出文件)然后昏暗的测试作为形象= Bitmap.FromFile(输出文件)_result =真正的结束如果generatedExceptionName作为COMException_result =generatedExceptionName作为异常_result =结束试一试我们将在国家和循环泵消息对于这个示例。但你应该不需要如果从Windows窗体应用程序运行。capturectrl。状态= CaptureState.RunningApplication.DoEvents ()结束结束私人函数FormatFromBitCount (按值传递bitCount作为整数)作为PixelFormat选择情况下bitCount情况下8返回PixelFormat.Format8bppIndexed情况下16返回PixelFormat.Format16bppRgb555情况下32返回PixelFormat.Format32bppRgb情况下48返回PixelFormat.Format48bppRgb情况下24返回PixelFormat.Format24bppRgb结束选择异常(“未被承认的一点”)结束函数私人函数GetBitmapSize (按值传递骨形态发生蛋白作为位图,按值传递bitCount作为整数)作为整数昏暗的pixelSize作为整数=CInt(Math.Log (CDbl(bitCount)))返回(bmp。宽度* pixelSize + pixelSize3)* bmp.Height结束函数私人函数GetBitmapScanRowSize (按值传递bmpSize作为整数,按值传递作为整数,按值传递宽度作为整数)作为整数返回bmpSize /(步/宽度)结束函数公共CaptureFrame_Helper (按值传递发送方作为对象,按值传递e作为EventArgs)的结果集_result =真正的结束公共NotInheritableLEAD_VARS公共常量MediaDir作为字符串=“C: \ LEADTOOLS21 \媒体”结束
需求

目标平台

另请参阅

参考

CaptureCtrl类

CaptureCtrl成员

Leadtools.MediaFoundation作为sembly
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。