【问题标题】:Direct screen pixel/framebuffer access [closed]直接屏幕像素/帧缓冲区访问[关闭]
【发布时间】:2009-12-19 21:11:21
【问题描述】:

我想尝试创建一个玩游戏的程序。 IE。 “一个机器人”。

我希望能够直接访问屏幕上的像素。 IE。让我的程序“看”一场比赛,然后“采取行动”(或者至少画出它会采取什么行动的图片)。

感谢 Windows 和 Linux 的建议,但我猜在 Linux 上应该更容易做到。

我猜这可以通过一些 X/Gnome 调用来完成?
我不怕 C,即使是复杂的样本也欢迎。

【问题讨论】:

    标签: video-capture


    【解决方案1】:

    SDL 是一个跨平台库,可让您直接访问帧缓冲区像素。您可以通过文档 wiki 上的 the pixel access example 了解如何访问屏幕上的像素。

    一般来说,机器人不会看到游戏图形,而是看到底层数据结构,除非您尝试做与计算机视觉相关的事情。

    【讨论】:

    • 这不是只适用于我创建的表面吗?我希望能够访问整个屏幕的像素、GUI 工具包等等。 SDL 是否有可能将其作为一个表面?
    • 不,我认为您不能在 SDL 中做到这一点。您将需要特定于平台的代码。在 Windows 上,您可以使用 GetDesktopWindow() 获取桌面窗口的句柄,然后将其复制到位图以供读取,但我不确定如何直接写入帧缓冲区。
    • 你不必接受它。我建议您在该问题上开始 bounty 并可能对其进行编辑并添加有关您想要做什么的更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2012-12-08
    • 2011-02-09
    • 2015-02-19
    • 2021-11-27
    • 1970-01-01
    相关资源
    最近更新 更多