我需要拍摄屏幕截图并通过Post方法发送到Web服务。我认为对于Post部分,我将使用liburl库。
这个目标能否完全跨平台,并且不需要最终用户安装其他库或软件?
这个目标能否完全跨平台,并且不需要最终用户安装其他库或软件?
标准库中没有任何可以为您完成此操作的内容。理论上,您可以通过使用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)
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')
screencapture
。 - kyle k