【问题标题】:Python cross platform compatible multi screen screenshotPython跨平台兼容多屏截图
【发布时间】:2016-11-17 11:22:31
【问题描述】:

使用的 Python 解释器:2.7(在 OSX 10.11 上遇到 python3.5 py2app 问题

我正在使用 python 和 pygame 开发一个有趣的屏幕截图应用程序,但我被困在 1 个屏幕限制,因为 pygame 似乎并不隐式支持多个屏幕。

我的问题是,现在我使用 pyautogui screenshot 功能来捕获整个屏幕,并在 pygame 全屏窗口中打开它,我可以在其中修改图像等。

我想知道是否有办法以跨平台兼容的方式一次截取多个显示器。现在我还没有弄清楚如何使 pyautogui 截图除默认显示之外的任何其他显示

【问题讨论】:

    标签: python-2.7 pygame screenshot


    【解决方案1】:

    您可能希望查看pyscreenshot 库,它是一个纯粹的python 库,应该是跨平台的,但也存在多显示器问题。

    另一种方法是调用您正在使用的特定操作系统的子进程,这意味着通过命令调用其本机截图功能,这是来自stackoverflow post的IOS示例,概述了我的意思:

    from subprocess import call
    call(["/usr/sbin/screencapture", "screen1.png", "screen2.png"])
    

    @马克·塞切尔

    查看网站,它已经在 pyautogui 的 roadmap 上,以便更简单地处理多个屏幕,因此希望他们能解决这个问题。

    还有一篇很长的帖子here 概述了这个问题,因为它目前支持 pyautogui 的多显示器支持。所以不幸的是,如果你的显示器校准不是完全并排的,因为它偏移了 x 和 y值可能为负数。

    最近还有另一个...一如既往..另一个python库专门用于python中的多监视器屏幕截图,称为desktopmagic。它可用here,但它不承诺跨平台,实际上只声明“在 Windows 上截屏”。因此,对于您的目的,它可能不适合。

    无论如何,希望这对您有所帮助,或者至少为您提供更多选择。希望你的项目成功。

    【讨论】:

    • 为 3 个平台制作 3 个单独的应用程序会比尝试跨平台实现快得多吗?
    • 我不确定它是否会更快,因为您需要维护 3 个独立的代码库,它可以工作并且您可以完全控制。问题是它是否值得投入那么多时间,或者是否已经在每个操作系统上使用 shell 命令本机提供了实用程序,并且在可能的情况下使用这些实用程序以及它在没有本机屏幕截图命令的操作系统上的位置然后可能编写你自己的跨度>
    猜你喜欢
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多