在 Windows 上截取屏幕截图的最快方法是什么? PIL.ImageGrab
相当慢.. 拍摄同一个小窗口的 30 个屏幕截图需要 4-5 秒。截取整个桌面的屏幕截图甚至更慢。
原文由 Claudiu 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Windows 上截取屏幕截图的最快方法是什么? PIL.ImageGrab
相当慢.. 拍摄同一个小窗口的 30 个屏幕截图需要 4-5 秒。截取整个桌面的屏幕截图甚至更慢。
原文由 Claudiu 发布,翻译遵循 CC BY-SA 4.0 许可协议
刚刚发现了如何使用 gtk 来做到这一点。到目前为止似乎最快:
def image_grab_gtk(window):
left, top, right, bot = get_rect(window)
w = right - left
h = bot - top
s = gtk.gdk.Pixbuf(
gtk.gdk.COLORSPACE_RGB, False, 8, w, h)
s.get_from_drawable(
gtk.gdk.get_default_root_window(),
gtk.gdk.colormap_get_system(),
left, top, 0, 0, w, h )
final = Image.frombuffer(
"RGB",
(w, h),
s.get_pixels(),
"raw",
"RGB",
s.get_rowstride(), 1)
return final
在不转换为 PIL
图像的情况下,它在我的测试用例中比 PIL 快 8 倍。通过转换,它仍然快 2.7 倍。
原文由 Claudiu 发布,翻译遵循 CC BY-SA 2.5 许可协议
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答463 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
您可以直接使用 win32 API。
首先将焦点放在要截屏的应用程序上。 链接文字
Win32 API 可以帮助截图: