用Python(Windows)获取全屏图像

0 投票
1 回答
878 浏览
提问于 2025-04-16 22:37

我试了很多方法,但每次想要自动截取整个窗口的屏幕时,得到的都是一片黑屏。

我尝试过使用ImageGrab.grab(),还有自动按下Prt Scr键,但都没有成功。

虽然自动按下Prt Scr键让我可以手动把图片正确粘贴到画图软件里,但如果我用ImageGrab.grabclipboard()来加载它,结果又是黑屏。

使用hwnd=win32gui.GetActiveWindow()也得到了黑色的图片,虽然我不确定win32gui里是否还有其他方法能得到正确的结果(看起来文档不是很清楚)。

最后我尝试了自动按键和win32clipboard.GetClipboardData(win32clipboard.CF_BITMAP),这给了我一个整数结果,可能是黑色的,也可能不是。如果有人知道怎么把GetClipboardData转换成Python中的图片,那就太好了。

或者我也很希望能得到其他的建议。除了getClipboardData我搞不明白的,其他这些方法在窗口程序的截图上都能用。

谢谢。

1 个回答

0

你试过这个吗

im = ImageGrab.grabclipboard()

if isinstance(im, Image.Image):
... got an image ...
elif im:
   for filename in im:
       try:
           im = Image.open(filename)
       except IOError:
           pass # ignore this file
       else:
           ... got an image ...
else:
    ... clipboard empty ...

来自 http://effbot.org/imagingbook/imagegrab.htm 的内容?如果试过了,请把你修改过的完整代码发上来,这样我们可以看看。

撰写回答