Python中的屏幕截图

3 投票
2 回答
4185 浏览
提问于 2025-04-16 02:55

这不是一个关于HTML解析的问题。这是关于如何查看屏幕上像素的问题。

我想知道,怎么用Python来查看一个程序窗口里的所有像素。

根据建议,我把我的操作系统范围缩小到win32。如果有跨平台的解决方案,这里就是讨论的地方。

2 个回答

1

你可以试试这个。它需要 Python 3.x 或者 Python 2.x(在32位和64位的系统上都可以用)。

import numpy as np
import cv2
from PIL import ImageGrab as ig
import time

last_time = time.time()
while(True):
    screen = ig.grab(bbox=(50,50,800,640))
    print('Loop took {} seconds',format(time.time()-last_time))
    cv2.imshow("test", np.array(screen))
    last_time = time.time()
    if cv2.waitKey(25) & 0xFF == ord('q'):
        cv2.destroyAllWindows()
        break
3

那个回答中,我发现使用PyQt的方法最有前景:

import sys
from PyQt4.QtGui import QPixmap, QApplication
app = QApplication(sys.argv)
QPixmap.grabWindow(QApplication.desktop().winId()).save('test.png', 'png')

现在你只剩下一个“小”任务,就是搞明白那张图片里发生了什么。欢迎来到神奇的图像处理世界。在Python中,PIL可能会对你有所帮助。

撰写回答