保存视频的当前帧 - Windows应用商店应用

时间:2013-08-08 11:54:35

标签: c# windows-store-apps render image-capture

我有一个场景,从库中选择视频,并在点击按钮时将帧保存为图像。就像我们可以捕获在wpf中播放的当前视频帧一样。

我在Windows Phone 8中完成了这项工作 -

        WriteableBitmap bmpCurrentScreenImage = new WriteableBitmap((int)media.ActualWidth, (int)media.ActualHeight);
        bmpCurrentScreenImage.Render(media, new MatrixTransform());
        bmpCurrentScreenImage.Invalidate();
        try
        {
            using (var stream = new MemoryStream())
            {
                bmpCurrentScreenImage.SaveJpeg(stream, bmpCurrentScreenImage.PixelWidth, bmpCurrentScreenImage.PixelHeight, 0, 100);
                stream.Seek(0, SeekOrigin.Begin);
                BitmapImage bi = new BitmapImage();
                bi.SetSource(stream);
                img.Source = bi;
            }
        }
        catch (Exception exp)
        { }

但在Windows商店应用程序中,WritableBitmap类没有像SaveJpeg()这样的函数,所以我使用了工具包中的WriteableBitmapRenderExtensions- WriteableBitmap w = await WriteableBitmapRenderExtensions.Render(myMedia); w.Invalidate(); thumb.Source = w; 但它不适用于媒体元素。

在goggling上我发现帖子最类似于我的This post,但无法理解我如何使用它,因为它是在C ++中我用c#创建我的应用程序。

1 个答案:

答案 0 :(得分:0)

您可以使用Emgu CV框架工作进行实时捕获,也可以使用视频文件。这是Emgu社区官方页面link解释此示例。