【发布时间】:2014-08-23 23:28:34
【问题描述】:
我正在尝试使用此代码进行全屏 (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()
【问题讨论】:
-
我无法在我的 1920x1200 显示器上重现您的问题,它抓住了整个问题。如果你打印
im.size,你会得到什么? -
(1536, 864)。我现在在一台 1920 x 1080 的笔记本电脑上,如果这会有所不同(这是原始分辨率)。
-
您的桌面是否可以配置为该分辨率?转到显示属性并验证它。
-
在 Windows 8.1 和 Mint 17 上绝对是 1920 x 1080。我确实注意到屏幕截图分辨率比我的原生分辨率小 20%。任何可能导致此问题的设置?
-
有趣的是,窗口标题栏中的文字漂亮而清晰,而其余的文字看起来像是调整了大小。我怀疑 Windows 对软件撒谎,声明大小为 1536x864 并通过 DWM 缩放输出。如果您在显示属性中打开了任何缩放选项,请尝试将其关闭,看看它是否有任何变化。
标签: python python-imaging-library pillow