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