首页 文章

在Python中截取DirectX游戏的截图[关闭]

提问于
浏览
2

我正在寻找一种在Python中截取DirectX游戏截图的方法 . 我已经尝试使用PIL和其他东西,但我最终只有黑色截图 . 我看到项目directpython11提供了一些Python绑定到一些DirectX的东西,但我没有找到任何与外部DirectX应用程序的截图相关的东西 .

我有点失落,任何帮助都会受到赞赏;) .

PS:我在Windows 7上使用Python 2.7.3 32位进行编码 .

谢谢

1 回答

  • 4

    这是一个相当复杂的话题 .

    实际上,以最简单的方式截取屏幕截图,包括抓取后备缓冲区并将其写入文件 . 你的Python DirectX绑定应该提供对纹理的支持,并从后面或前面的缓冲区填充数据;之后,图像写入由您决定 .

    不幸的是,进入后台缓冲区需要挂钩DirectX并在应用程序获得它之前拦截渲染上下文 . 虽然很简单,但这并没有很好的文档记录,需要一些不错的(C)代码来实现 . 您必须强制应用程序使用您控制的备用渲染上下文,然后自己拍摄屏幕截图 .

    据我所知,这种拦截的基础不能用纯Python完成 . 您可以使用显示编解码器(在将屏幕传送到合成器后抓取屏幕)找到一种方法,或者您可以使用现有的DirectX挂钩并实现最小的IPC来获取数据并将其提供给Python以进行处理和编写到一个文件 .

    编辑:如果您对此感兴趣,我可以添加更多详细信息和一些可能有用的代码链接 . 我只能在Python中使用它,但不要让它阻止你尝试 .

相关问题