Python Imaging Library无法抓取整个屏幕

我正在使用PIL来抓取屏幕截图,但它只捕获了屏幕的一部分.

Here is a screen shot of my desktop

And this is what the program captures

正如您所看到的,屏幕侧面和底部都有很大的空间.我试图通过调整捕获区域的大小来纠正这个问题,但这只会导致额外的区域被填充为黑色

我认为图书馆可以捕获的最大分辨率有限,但我真的找不到任何文件说明.

以下是我的代码

import ImageGrab
import os
import time


def screenGrab():
    box = (0, 0, 1920, 1080)
    im = ImageGrab.grab(box)
    im.save(os.getcwd() + '\\screenshot_' + str(int(time.time())) + '.png', 'PNG')


def main():
    screenGrab()

if __name__ == '__main__':
    main()

任何人都知道如何解决这个问题或知道为什么会发生这种情况?

最佳答案
我今天过早地遇到这个问题.该脚本仅捕获像素0,0 – 1536,864.我最近切换到Windows 8并注意到某些程序似乎以不正确的分辨率显示.经过一番搜索,我发现了一个问题.

>转到你的python目录(c:/ python27 /对我来说)
>右键单击python.exe并选择属性
>选择兼容性选项卡
>按“更改所有用户的设置”按钮
>选中“禁用高DPI设置时的显示缩放”框
> ImageGrab现在将捕获整个分辨率

如果我找到一个通用修复程序,我会更新,但我想我会在这里发帖,因为我搜索了一个小时左右,但找不到解决方案.

编辑:

通用修复

>右键单击桌面
>选择“屏幕分辨率”
>点击“将文字和其他项目变大或变小”
>选中“让我为所有显示选择一个缩放级别”
>选择“较小 – 100%”

这将导致更小但更清晰的文本和图标.

转载注明原文:Python Imaging Library无法抓取整个屏幕 - 代码日志