python-3.x 点击像素relitive到基于颜色的位置,没有设置X,Y值

fcg9iug3  于 2022-11-26  发布在  Python
关注(0)|答案(1)|浏览(128)

我有一个脚本,我已经能够找到一个图像。然后从该图像的中心将移动鼠标的位置到一个位置相对于该图像。
我现在要做的是让鼠标点击那个位置,只有当它匹配的RGB值。没有一个设置的X,Y值,因为目标图像和像素可以在屏幕上移动。
有没有一个简单的代码,可以检测到如果像素的鼠标是匹配的RGB值没有X,Y值?然后点击如果RGB值是正确的?
每一个教程只是告诉我如何找到X,Y的位置和颜色的一套位置。我是极端新的Python,从来没有写过脚本之前,所以请记住。谢谢你的任何帮助,你可以提供。

from pyautogui import*
import pyautogui
import time
import keyboard
import random
import win32api, win32con

time.sleep(2)
while 1:
    time.sleep(2)
    if pyautogui.locateOnScreen('boss monster.png', confidence=0.8) !=None:
        pyautogui.moveTo((pyautogui.locateCenterOnScreen('boss monster.png', grayscale=True, confidence=0.8)))
        pyautogui.moveRel(361, 209, duration= 0.5)

我想要下一个功能是只有当RGB值匹配时才点击鼠标位置。没有一个设置的X,Y位置,这就是我所坚持的

tyg4sfes

tyg4sfes1#

你可以使用pyautogui.position(),它将返回一个tuple,你将能够索引它并将它赋给变量,然后我们可以使用pyautogui.pixelMatchesColor来检查光标当前是否在所需的rgb颜色的像素上:

import pyautogui
import time 

while True:
    # Prevent a ton of output (you can delete this if you want, it was only needed for testing)
    time.sleep(1)
    # Get current location of your cursor
    cursor_location = pyautogui.position()

    # pyautogui.position() will return a tuple with x and y coordinates,
    # this specific tuple contains Point(x=1028, y=228) . To get those values
    # from the tuple you can just index it like this:

    # we get the first value [0] which is the x coordinate of the cursor and  [1] which is the y coordinate
    x, y = cursor_location[0], cursor_location[1]
    # if the rgb color matches the pixel your cursor is pointing at:
    if pyautogui.pixelMatchesColor(x, y, (0, 0, 0)): #instead of 0,0,0 put your rgb value
        print("black found")
        pyautogui.click()

相关问题