WPF如何获取具有位图覆盖的图形上下文视频的位图图像保存到位图

时间:2019-01-20 17:08:17

标签: c# wpf video drawingcontext

在WPF中,我有一个自定义用户控件。我正在覆盖OnRender事件并使用mediaplayer绘制视频。然后我用Alpha透明度覆盖了一个位图。这一切都很好。视频播放并显示位图覆盖没有问题。但是我然后按一下按钮就需要拍摄当前视频帧的快照,其中包括位图叠加层,并将其保存到位图。视频播放或暂停时,用户可以随时单击按钮。

这是我的代码。这样可以。如何在按下按钮时获取当前视频帧的快照和位图覆盖。重叠事件发生在onrender事件内部后,如何直接从设备上下文中将二者合并?

   protected override void OnRender(DrawingContext drawingContext)
    {
      base.OnRender(drawingContext);
      if (_mediaPlayer != null && _mediaPlayer.Source != null && !string.IsNullOrEmpty(_mediaPlayer.Source.ToString()))
            drawingContext.DrawVideo(_mediaPlayer, new Rect(0, 0, this.ActualWidth, this.ActualHeight));

     if (_bitmapImageOverlay != null)
            drawingContext.DrawImage(_bitmapImageOverlay, new Rect(0, 0, this.ActualWidth, this.ActualHeight));


    }

0 个答案:

没有答案