如何使用 python 从环境中获取显示
how to use python to get display from environment
我想快速检测光标位置和颜色(小于 0.1 秒)
我阅读了 this article 并想尝试他的最后一种方法 (Xlib)
但是,当我运行os.getenv("DISPLAY")
,它returnsNone
有谁知道如何解决这个问题或提供一种新方法来实现我的目标?
系统:MacBook Pro,macOS 10.15.4
Xlib 在 macOS 上通常不可用。您可以考虑使用诸如 pynput
or pyautogui
之类的库来实现您想要做的事情。
例如与pynput
from pynput.mouse import Controller
mouse = Controller()
print(mouse.position) # (x, y) coordinates tuple
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...")
我想快速检测光标位置和颜色(小于 0.1 秒)
我阅读了 this article 并想尝试他的最后一种方法 (Xlib)
但是,当我运行os.getenv("DISPLAY")
,它returnsNone
有谁知道如何解决这个问题或提供一种新方法来实现我的目标?
系统:MacBook Pro,macOS 10.15.4
Xlib 在 macOS 上通常不可用。您可以考虑使用诸如 pynput
or pyautogui
之类的库来实现您想要做的事情。
例如与pynput
from pynput.mouse import Controller
mouse = Controller()
print(mouse.position) # (x, y) coordinates tuple
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...")