Python 图像库无法抓取整个屏幕

标签 python image python-2.7 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()

有谁知道如何解决这个问题或知道为什么会这样?

最佳答案

有一个解决方法,无需修改操作系统设置。解决方案是使用以下方法使您的程序在 Windows 上具有 DPI 感知能力:

from ctypes import windll
user32 = windll.user32
user32.SetProcessDPIAware()

希望对你有帮助

关于Python 图像库无法抓取整个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24370228/

相关文章:

Python - 基于另一个列表的度假村列表

python - 模块未找到错误: No module named 'tkSimpleDialog' - Python Shell

python - 在caffe中使用HDF5数据训练模型时出错

image - 尽管 FB Debugger 显示正确,但在分享到 Facebook 时仍出现错误的 OG 图像

c# - 将图像从 C++ 进程发送到 C# 进程

python - 打开文件时出现问题

python - 两个线程可以同时使用同一个嵌入式 python 解释器吗?

python - 如何处理 __init__ 对 __setattr__ 的调用?

javascript - 使用 Raphael.js 库将文本和图像一起移动..??

python - 检查节点是否存在