在Python中截取屏幕截图 - 跨平台

时间:2011-12-27 12:56:33

标签: python screenshot

我需要截取屏幕截图并通过帖子发送到网络服务。我认为对于帖子部分我将使用liburl。

这可以完全跨平台完成,而不需要最终用户安装额外的库/软件吗?

2 个答案:

答案 0 :(得分:10)

标准库中没有任何内容可以为您执行此操作。从理论上讲,你可以通过使用ctypes进行os依赖的系统调用来自己完成,但这对我来说似乎是很多不必要的工作。这是一个使用wxPython制作屏幕截图的工作脚本:

import wx

app = wx.App(False)

s = wx.ScreenDC()
w, h = s.Size.Get()
b = wx.EmptyBitmap(w, h)
m = wx.MemoryDCFromDC(s)
m.SelectObject(b)
m.Blit(0, 0, w, h, s, 0, 0)
m.SelectObject(wx.NullBitmap)
b.SaveFile("screenshot.png", wx.BITMAP_TYPE_PNG)

答案 1 :(得分:2)

您也可以使用PyQt5:

import sys
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtWidgets import QApplication

app = QApplication(sys.argv)
screen = QGuiApplication.primaryScreen()
desktopPixmap = screen.grabWindow(0)
desktopPixmap.save('screendump.png')