首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >directshow :在wpf窗口上显示图形结果

directshow :在wpf窗口上显示图形结果
EN

Stack Overflow用户
提问于 2011-11-12 23:12:39
回答 2查看 4.4K关注 0票数 3

我是一个初学者directshow程序员,我试图使WPF应用程序,包含(实况)从某些网络摄像机

然后我就可以从这个"live feed“上拍一张照片

我定义了一个GraphBuilder,如下所示:

代码语言:javascript
运行
复制
static void BuildGraph(IGraphBuilder pGraph)
{
    //graph builder
    int hr = 0;
    ICaptureGraphBuilder2 pBuilder = (ICaptureGraphBuilder2)new CaptureGraphBuilder2();
    hr = pBuilder.SetFiltergraph(pGraph);

    Guid clsid_VidCapSource = new Guid("{860BB310-5D01-11D0-BD3B-00A0C911CE86}");

    //add myCam
    IBaseFilter mycam = CreateFillterByName("QuickCam Communicate Deluxe", clsid_VidCapSource);
    hr = pGraph.AddFilter(mycam, "QuickCam Communicate Deluxe");


    //add color space converter
    IBaseFilter pColorSpaceConverter3 = (IBaseFilter)new Colour();
    hr = pGraph.AddFilter(pColorSpaceConverter3, "Color Space Converter");


    //connect myCam, pColorSpaceConverter
    hr = pGraph.ConnectDirect(GetPin(mycam, "Capture"), GetPin(pColorSpaceConverter3, "Input"), null);

}

在此之后,我构建了一个图表:

代码语言:javascript
运行
复制
private void Button_Click(object sender, RoutedEventArgs e)
{
    IGraphBuilder graph = (IGraphBuilder)new FilterGraph();
    BuildGraph(graph);
    IMediaControl mediaControl = (IMediaControl)graph;
    mediaControl.Run();
}

如何将此图形的输出呈现到我的WPF窗口

注:在构建图形后,摄像头led指示摄像头正在捕获。

提前感谢

EN

Stack Overflow用户

回答已采纳

发布于 2011-12-12 00:04:43

基本上,您需要在视频设备筛选器之后添加一个SampleGrabber筛选器,以获得视频帧并将视频“渲染”到空的渲染器筛选器。

SampleGrabber将更新包含当前帧的缓冲区。此缓冲区用于创建InteropBitmap并将图像带入WPF世界。然后,您可以从InteropBitmap创建一个ImageBrush,并将其用作任何UIElementBackground

请参阅以下项目:http://wpfcap.codeplex.com/,它的功能与我简要描述的完全相同。

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8105310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档