在Python跨平台截图

2024-10-05 14:27:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要拍一张截图,然后通过post发送到一个网络服务。我想在post部分我将使用liburl。在

这是否可以完全跨平台完成,而不需要最终用户安装其他库/软件?在


Tags: 软件跨平台post网络服务liburl
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')

标准库中没有任何东西可以为您做到这一点。理论上讲,您可以自己用ctypes调用依赖于操作系统的系统,但这对我来说似乎有很多不必要的工作。下面是一个使用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)

相关问题 更多 >