python - 如果 OS 应用缩放因子,ImageGrab/pyscreenshot 不会捕获全屏
问题描述
我一直在玩ImageGrab的乐趣,我注意到如果您在操作系统中设置了自定义缩放因子,如果您抓取全屏图像,则捕获的一部分将是黑色的。
例如,在我的笔记本电脑中,我的分辨率为 1920x1080,我在 Win10 中设置了 140% 的缩放。如果我抓取全屏,结果如下:
另一方面,当 OS 缩放默认为 t0 100% 时,这是正确的全屏:
我使用的代码非常基本,为了完整起见,我将展示它:
from PIL import ImageGrab as ig
from pynput.mouse import Button, Controller
from pynput.keyboard import Key
from pynput import keyboard
def onpress(k):
if k == keyboard.Key.esc:
# break if esc is pressed
return False
else:
img= ig.grab()
img.save('screenshot.png')
with keyboard.Listener( on_press= onpress) as listener:
listener.join()
我通过记录鼠标位置注意到,当屏幕设置为 140% 缩放时,边框大约为 0,0 - 1374,738。
解决方案
在Github 线程上找到了解决方案。这与我的笔记本电脑屏幕的 DPI 有关。
推荐阅读
- php - 如何更改输出数据数据格式
- handlebars.js - handlebars.js “each” 在另一个 “each” 中循环
- javascript - 如何在 vanilla javascript 中捕获文本消息
- java - Graph REST API [Mail] 如何下载带有附件的电子邮件 .eml
- python - 在函数中的全局列表上使用 append() 方法(Python)
- spring-boot - 如何使 WebFilter 在非 WebFlux/非反应式 Spring Boot 应用程序中工作?
- c# - FatFs 日期和时间到 DateTime
- python-3.x - 将给定列表转换为嵌套列表 - Python3.x
- azure - 有没有办法创建一个拉取请求,从 Azure Devops 中的 CD 管道的 RepoB 在 RepoA 中创建新分支
- python - GPU 上预训练的 Keras 模型能否用于仅 CPU 的 PC 上的预测?