Search code examples
pythonpyautogui

How to use pyautogui for images


I was wondering if it was possible to do pyautogui.locateOnScreen() for a full folder this is what i mean a folder with 20 different images and finding them on the screen. Is it possible to do with pyautogui? or else how would you do it?

This is my code so far:

from pyautogui import locateAllOnScreen as find
import os
import numpy as np




def try_to_find(x):
    x = os.path.isfile(x)
    if x == None:
        Warning('No images were enterd')   
        
    else:
        folder = x
        value = find(folder)
        
        if value is not None:
            print(f"{x} was found!")
            
        else:
            if value is None:
                print(f"{x} was not found!")
                
        return(list(value))



myfolder = ("ImageQuery")
found = 0

with os.scandir(myfolder) as entries:
    for entry in entries:
        if entry.is_file():
            found+=1
            print(f'Items {found}: {entry.name}')
            try_to_find(entry.name)

            

i get this error if i run this code TypeError: expected an image filename, OpenCV numpy array, or PIL image


Solution

  • Try this out:

    import os
    import pyautogui as py
    
    
    image_list = []
    
    # Get list of all files in current directory
    directory = os.listdir()
    
    # Find files that end with .png or .jpg and add to image_list
    for file in directory:
        if file.endswith('.png') or file.endswith('.jpg'):
            image_list.append(file)
    
    # Loop through list to find all the images
    for image in image_list:
        print(image)
        print(py.locateOnScreen(image))
    

    This question is similar to another one, I posted the same answer in both places.