Python PIL-ImageGrab 捕获游戏像素时不准确

标签 python python-imaging-library

我正在 try catch 游戏的像素来编写机器人脚本。我有一个简单的功能:

def printPixel():
  while True:
    flags, hcursor, (x,y) = win32gui.GetCursorInfo()
    print x,y,':',ImageGrab.grab().getpixel((x,y))

这会打印当前的 x,y 坐标以及该像素的 RGB 值。这在我的桌面上按预期工作,悬停在各种图标等上,但相同的功能在游戏中不起作用。有什么想法吗?

编辑:当我将图像保存到文件并对保存的图像执行相同的操作时,它在游戏中完美运行。然而,它的速度要慢得多。我想对内存中的图像进行操作,而不是对文件进行操作。

最佳答案

出于性能原因,视频游戏通常直接处理图形系统,因此某些典型的 Windows API 可能不适用于它们。尝试按打印屏幕按钮截取屏幕截图。如果它捕获了您的屏幕,那么您可以在 python 中截取屏幕截图,并根据光标位置检查您捕获的图像。

要在 Windows 上截取屏幕截图,您可以查看问题 Fastest way to take a screenshot with python on windows 的答案它使用您正在使用的 win32gui 库。

关于Python PIL-ImageGrab 捕获游戏像素时不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13355355/

相关文章:

Windows 10045 上的 Python 套接字错误

python - OpenCV Python : cv2. VideoCapture 只能找到 3 个摄像头中的 2 个,Windows Camera 应用程序找到所有

python - Python 字典的处理成本有多高?

python - 如何扩展和填充黑白图像的第三个暗角

Python PIL 如何将 1 位深度图像转换为 RGBA?

python - 在没有模板的情况下访问构造函数中的重写字段

python - 如何使用连续列和分类列进行 tf.estimator

python-2.7 - 使用 Tkinter 和 PIL 显示 .png 图像

python - 如何在模板中显示 PIL Image 对象?

python - 如何用枕头调整图像大小?