Python 为什么ImageGrab.grab无法捕获整个屏幕?
我试图使用PIL.ImageGrab.grab()捕获屏幕图像。 这是我的问题——当我使用下面的代码时,Python 为什么ImageGrab.grab无法捕获整个屏幕?,python,python-imaging-library,screenshot,Python,Python Imaging Library,Screenshot,我试图使用PIL.ImageGrab.grab()捕获屏幕图像。 这是我的问题——当我使用下面的代码时,img只是我屏幕的左上角 from PIL import ImageGrab img = ImageGrab.grab() 使用win32api.GetSystemMetrics()查找我的屏幕大小 > GetSystemMetrics(0) Out[6]: 1280 > GetSystemMetrics(1) Out[7]: 720 然后我使用了ImageGrab.grab
img
只是我屏幕的左上角
from PIL import ImageGrab
img = ImageGrab.grab()
使用win32api.GetSystemMetrics()
查找我的屏幕大小
> GetSystemMetrics(0)
Out[6]: 1280
> GetSystemMetrics(1)
Out[7]: 720
然后我使用了ImageGrab.grab((0,01280720))
,仍然得到了屏幕的左上角!不顾一切,我调用了ImageGrab.grab((0,0140090))
,输出的是同一个部分图像,右下区域有一个黑色边框
我不知道发生了什么事。似乎其他人只需调用ImageGrab.grab()
,就能捕捉到他们的屏幕
任何帮助都将不胜感激 当我试图学习本教程时,我在PIL上遇到了同样的问题 要解决这个问题, ->转到Python安装目录,右键单击Python.exe ->属性->兼容性选项卡->选中“禁用高DPI设置上的显示缩放” 对pythonw.exe重复相同的过程。希望你的问题解决。请让我知道。作为,
有一个解决方法,可以在不干扰操作系统设置的情况下解决此问题。解决方案是使用以下方法在Windows上使您的程序能够识别DPI:
顺便说一下,我正在WIN10上使用python3.5,上面的所有操作都在Dell XPS笔记本电脑上执行。非常感谢!!你真的帮了我的忙!顺便说一下,“禁用高DPI设置上的显示缩放”现在替换为“覆盖高DPI缩放行为”。
from ctypes import windll
user32 = windll.user32
user32.SetProcessDPIAware()