c#
VB
c++
公共虚拟无效CaptureFrame ()
公共重写的子CaptureFrame ()
公共:
虚拟无效CaptureFrame ();
如果方法失败,它会抛出一个错误。有关更多信息,请参考错误代码。
使用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.Running
Application.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 + pixelSize和不3)* bmp.Height
结束函数
私人函数GetBitmapScanRowSize (按值传递bmpSize作为整数,按值传递步作为整数,按值传递宽度作为整数)作为整数
返回bmpSize /(步/宽度)
结束函数
公共子CaptureFrame_Helper (按值传递发送方作为对象,按值传递e作为EventArgs)
的结果集
_result =真正的
结束子
公共NotInheritable类LEAD_VARS
公共常量MediaDir作为字符串=“C: \ LEADTOOLS21 \媒体”
结束类
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。