Pyautogui 在 MacBook 上点击错误的位置

Pyautogui Clicks in Wrong Position on MacBook

我正在尝试制作一个程序来点击屏幕上的一种颜色。但是,它点击了完全错误的位置。我将区域设置为与我的屏幕完全相同的分辨率。我什至尝试保存屏幕截图,它看起来完全符合预期。

我在 MacBook 上,有人在 windows PC 上试过 运行,它成功了。所以我认为我的 MacBook 可能存在缩放问题。

代码如下:

import pyautogui
import time
from itertools import product

color = (163, 194, 229)

time.sleep(5)

s = pyautogui.screenshot(region=(0, 0, 2560, 1600))
print(s.width, s.height)
for x, y in product(range(s.width), range(s.height)):
    if s.getpixel((x, y))[:-1] == color:
        print(x,y)
        pyautogui.click(x, y)
        break

(我排除了 getpixel 元组中的最后一个元素,因为我的 MacBook 出于某种原因需要第四个元素)

像素与屏幕坐标不同。如果你有一个 Retina display(2015 年之后的许多 Apple 屏幕都有),那么每个屏幕坐标包含 4 个像素。

要获得正确的位置,请将像素坐标除以 2。