当前位置: 首页 > 编程语言 > C#

C#Windows窗体从嵌入式WindowsMediaPlayer捕获图像分享

时间:2023-04-10 21:16:44 C#

C#Windows窗体从嵌入式WindowsMediaPlayer捕获图像dll和WMPLib.dll)来播放一些视频文件。现在我需要添加一个选项以在单击按钮时从视频中捕获图像。如果我将windowless选项设置为true,我可以捕获视频图像,但是当我将windowless选项设置为true时,我在某些计算机上看不到视频图像。如果没有无窗口选项,我只会得到一个黑屏,代码如下:System.Drawing.Imageret=null;try{位图bitmap=newBitmap(wmPlayer.Width-26,wmPlayer.Height-66);{图形g=图形.FromImage(位图);{图形gg=wmPlayer.CreateGraphics();{this.BringToFront();g.CopyFromScreen(wmPlayer.PointToScreen(newSystem.Drawing.Point()).X+13,wmPlayer.PointToScreen(newSystem.Drawing.Point()).Y,0,0,newSystem.Drawing.Size(wmPlayer.Width-26,wmPlayer.Height-66));}}使用(MemoryStreamms=newMemoryStream()){位图.Save(ms,System.Drawing.Imaging.ImageFormat.Png);ret=System.Drawing.Image.FromStream(ms);ret.Save(@"C:\WMP_capture.png");pictureBox1.Image=ret;}}位图.Dispose();}catch(异常){}如何在没有C#的无窗口选项的情况下从嵌入式WindowsMediaPlayer中播放的视频中捕获帧(快照)?或者是否有任何其他C#形式的视频播放器可以轻松实现并支持捕获功能。希望此代码适合您if(!string.IsNullOrEmpty(axWindowsMediaPlayer1.URL)){axWindowsMediaPlayer1.Ctlcontrols.pause();System.Drawing.Imageret=null;try{//在弹出saveFileDialog之前拍照!!位图bitmap=newBitmap(axWindowsMediaPlayer1.Width,axWindowsMediaPlayer1.Height);{图形g=Graphics.FromImage(位图);{图形gg=axWindowsMediaPlayer1.CreateGraphics();{//timerTakePicFromVideo.Start();这个.BringToFront();g.CopyFromScreen(axWindowsMediaPlayer1.PointToScreen(newSystem.Drawing.Point()).X,axWindowsMediaPlayer1.PointToScreen(newSystem.Drawing.Point()).Y,0,0,newSystem.Drawing.Size(axWindowsMediaPlayer1.Width),axWindowsMediaPlayer1.Height));}}//如果用户需要,之后保存位图文件.PNG);ret=System.Drawing.Image.FromStream(ms);ret.Save(saveFileDialog1.文件名);}}}}catch(Exceptionex){Debug.WriteLine(ex.Message);还有一个demo:http://www.codeproject.com/Articles/34663/DirectShow-Examples-for-Using-SampleGrabber-for-Gr以上是C#学习教程:C#Windows窗体抓取全部内容从嵌入式WindowsMediaPlayer共享图像。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关照——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: