Graphics.CopyFromScreen返回黑屏我有一个小应用程序,可以截取屏幕截图并将它们保存到其中的一个文件夹中。它在大多数情况下都运行良好,但在某些情况下,例如在军团要塞2中或在OpenGL模式下运行魔兽争霸3时,它只会返回一个完全黑色(或白色)的图像。有人能解决这个问题吗?我使用的是c#标准:位图bmp;图形gfx;bmp=newBitmap(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height,PixelFormat.Format32bppArgb);gfx=Graphics.FromImage(bmpScreenshot);gfx.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,Screen.PrimaryScreen.Bounds.Y,0,0,Screen.PrimaryScreen.Bounds.Size,CopyPixelOperation.SourceCopy);bmpScreenshot.Save("图像.jpg",ImageFormat.Jpeg);Windows屏幕截图功能不会从DirectX表面复制数据。您必须按照本文所述手动执行此操作。我了解这是因为您的显卡覆盖了这些类型的图形。这也是为什么您可能无法抓取显示视频的屏幕位的原因。控制面板->显示属性->设置->高级->疑难解答我认为有一个选项可以降低硬件加速,这样你就可以捕捉到它们。我知道我必须这样做才能从视频中截取屏幕截图,希望这对您的opengl有用。您假设屏幕位于PixelFormat.Format32bppArgb中,但情况可能并非总是如此,但我不知道这是否与其他答案相关。如果相关,您可以尝试Screen.PrimaryScreen.BitsPerPixel来获取屏幕的深度。我还没有尝试过,所以我不知道它是否会起作用。以上就是C#学习教程:Graphics.CopyFromScreen返回黑屏分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
