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

时间:2012-11-13 03:52:48

标签: python python-imaging-library

我正在尝试捕捉游戏的像素以编写机器人脚本。我有一个简单的功能:

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

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

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

1 个答案:

答案 0 :(得分:1)

视频游戏通常出于性能原因直接处理图形系统,因此一些典型的Windows apis可能无法使用它们。按下打印屏幕按钮尝试拍摄屏幕截图。如果它捕获你的屏幕,你可以在python中截取屏幕截图并检查你捕获的图像,同时考虑光标位置。

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