用Python(Windows)获取全屏图像
我试了很多方法,但每次想要自动截取整个窗口的屏幕时,得到的都是一片黑屏。
我尝试过使用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 的内容?如果试过了,请把你修改过的完整代码发上来,这样我们可以看看。