【问题标题】:how to use python to get display from environment如何使用python从环境中获取显示
【发布时间】:2020-04-16 11:03:14
【问题描述】:

我想快速检测光标位置和颜色(不到 0.1 秒)

我阅读了this article 并想尝试他的最后一种方法(Xlib)

但是,当我运行 os.getenv("DISPLAY") 时,它会返回 None

有谁知道如何解决这个问题或为我提供实现目标的新方法?

系统:MacBook Pro,macOS 10.15.4

【问题讨论】:

    标签: python python-3.x python-os


    【解决方案1】:

    Xlib 通常在 macOS 上不可用。您可以考虑使用诸如pynputpyautogui 之类的库来实现您想要做的事情。

    例如pynput

    from pynput.mouse import Controller
    
    mouse = Controller()
    print(mouse.position)  # (x, y) coordinates tuple 
    

    【讨论】:

    • 感谢您的回答!我的主要目标实际上是在屏幕的某个位置获得颜色。 MacBook 拥有高分辨率屏幕,这意味着截屏需要很长时间(0.3 秒)。所以我正在寻找一种更好的方法来做到这一点。
    • 这一次可以大大改善,如stackoverflow.com/a/13024603/1812262此处解释的那样@
    【解决方案2】:

    Pyautogui 是用于 GUI 操作的好库,它具有 position(),我使用 screenshot(),然后获取给定像素的颜色,这是我尝试过的,你可以通过下面的代码检查它,

    在使用代码之前,使用安装包

    python -m pip install pyautogui
    

    代码:

    import pyautogui
    
    try:
        while True:
            x, y = pyautogui.position()
            pixelColor = pyautogui.screenshot().getpixel((x, y))
            screenShot = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
            screenShot += ' RGB: (' + str(pixelColor[0]).rjust(3)
            screenShot += ', ' + str(pixelColor[1]).rjust(3)
            screenShot += ', ' + str(pixelColor[2]).rjust(3) + ')'
            print(screenShot)
    
    except KeyboardInterrupt:
        print("\nDone...")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 2014-06-04
      • 2011-06-16
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      相关资源
      最近更新 更多