2015-10-02 3 views
3

Le code est:Python: Comment puis-je trouver une image à l'écran en utilisant: pyautogui lib?

import pyautogui 
startButton = pyautogui.locateOnScreen('start.png') 
print startButton 

Ou:

import pyautogui 
startButton = pyautogui.locateCenterOnScreen('start.png') 
print startButton 

La sortie est:

None 

Remarque: la syntaxe correcte semble être en place selon le documentation.

Note: J'ai essayé aussi avec le chemin complet de l'image. L'image est sur l'écran et elle n'est pas chevauchée par d'autres images. La bibliothèque de pil est également installée. Autres caractéristiques pyautogui de travail (y compris la capture d'écran)

S'il vous plaît laissez-moi savoir ce que je rate. Ou veuillez suggérer une autre bibliothèque Python pour la détection d'image.

+0

pourriez-vous s'il vous plaît accepter/upvote les réponses qui ont fonctionné pour vous? –

Répondre

2

Aucun signifie que PyAutoGui n'a pas pu trouver votre image sur l'écran, assurez-vous que la fenêtre est ouverte où start.png a été échantillonnée à partir et que les résolutions [de quand vous avez pris l'échantillon et la moniteur actuel] sont les mêmes.

-1

J'ai eu un problème très analogique. Pour moi, la solution était d'utiliser python 2.7 au lieu de 3.x. Il est probablement causé par une fonctionnalité moins flexible de python 3. Je préfère l'utiliser et pyautogui fonctionne de manière fantastique. Le module d'oreiller (ou communément appelé PIL) qui doit être installé lors de l'installation pyautogui, semble toutefois avoir moins de fonctionnalités de travail avec python 3.

+0

non, il n'est pas utile de rétrograder Python à 2.7 –

-1

est la syntaxe que j'utilise ici pour cela:

import pyautogui 
start = pyautogui.locateCenterOnScreen('start.png')#If the file is not a png file it will not work 
print(start) 
pyautogui.moveTo(start)#Moves the mouse to the coordinates of the image 

Si vous utilisez plusieurs moniteurs en même temps il scanne seulement le primaire un. Ce programme scanne les pixels de votre écran et la couleur correspond aux pixels de votre fichier PNG. Si la couleur de l'image (ombres de l'image, l'image change de couleur, etc.) change de quelque façon, elle répondra par "Aucun".

0

Comme je comprends le problème peut être résolu en tournant l'image en RVB. ce sera quelque chose comme ....


import pyautogui

from PIL import Image

im1=pyautogui.screenshoot()

im2=pyautogui.screenshoot("newone.png") image.open("newone.png").convert("RGB").save("newone.png")

Cordialement