我正在尝试开发一个c#
Windows窗体应用程序,用于捕获部分屏幕并在Windows窗体图片框中显示它的镜像视频。
我面临的问题是,当我设置表单visibility=false
以捕获屏幕的一部分而不捕获表单本身,然后返回到表单visibility=true
时,我得到了这个在图片框中显示闪烁的镜像和非镜像图片。
我的问题是,我尝试通过捕获多个屏幕截图并将其显示在图片框中来镜像播放任何应用程序上的任何视频,即:youtube
,windows media player
或any other application
当视频正在播放并且应用程序在其前面运行时,用户会看到实时窗体后面播放的任何内容的镜像。
如何停止闪烁并将其视为像后视频一样的直播视频,但在播放视频时进行镜像。提前谢谢
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mirror
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
#region Form Design and Controls
private void btnFlip_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
Bitmap myBitmap = new Bitmap(this.Size.Width, this.Size.Height);
this.Visible = false;
using (Graphics g = Graphics.FromImage(myBitmap))
{
g.CopyFromScreen(0, 0, 0, 0, myBitmap.Size, CopyPixelOperation.SourceCopy);
}
if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
this.pictureBox1.Image = myBitmap;
pictureBox1.Image.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipY);
GC.Collect();
}
this.Visible = true;
}
#endregion
}
}