python - PIL 的 ImageGrab 以错误的分辨率捕获

标签 python python-imaging-library pillow

我正在尝试使用此代码捕获全屏 (1920 x 1080)。 不过,保存的图像只有 1536 x 864。

解决方案:正如 Mark 在下面指出的那样,Windows 具有缩放功能,可以通过“控制面板”>“显示”进行更改(将其一直调低)。

from PIL import ImageGrab
import os
import time

def screenGrab():
    # snapshot of screen
    im = ImageGrab.grab()
    # saves in current work directory with name based on time of pic
    im.save(os.getcwd() + '\\full_snap__' + str(int(time.time()))
            + '.png', 'PNG')

def main():
    screenGrab()

if __name__ == '__main__':
    main()

最佳答案

如果您将显示设置设置为默认的“较小”(100%) 设置以外的任何设置,Windows 将告诉您的应用程序渲染到较小的区域,然后在将结果放在屏幕上时放大结果桌面。显然 PIL 有一个由此设置引起的错误,捕获被裁剪为较小的尺寸而不是整个桌面。解决方法是确保您的显示设置设置为 100%。

关于python - PIL 的 ImageGrab 以错误的分辨率捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25467288/

相关文章:

python - PIP 随机失败 'Could not find a version that satisfies the requirement' 相同要求.txt

python - 从 python 网站下载图像的一部分?

python - PIL 图像到 QPixmap 的转换问题

python - 为什么 Pillow 无法识别 JPEG 格式?

python - 如何在 Python 中移动文件?

python - Pandas 使用格式化为表格的表格创建 Excel

Python,如何使用文件中的行作为字典中的键,使用下一行作为值?

Python:获取和保存屏幕截图的最快方法

python - 为什么我可以用两种不同的方式导入 PIL(以及为什么这样做会出现问题)?

python - Pillow Image 对象和 numpy 数组之间的转换改变了维度