PyAutoGUI 이미지로 마우스 이동

프로그램이 항상 조금씩 다른 위치에서 실행되기 때문에 화면 상의 특정한 위치에 마우스를 위치시키기가 까다로울 수 있습니다.

이런 상황에서 화면 상의 특정 영역의 이미지 파일을 갖고 있으면 그 영역을 찾아서 클릭할 수 있습니다.

아래의 예제를 통해 계산기가 어디에 있든 항상 똑같은 버튼을 클릭하도록 해보겠습니다.

순서는 아래와 같습니다.


_images/9_2_calculator.png

우선 계산기의 특정 영역을 캡처해서 해당 폴더에 아래와 같이 ‘five.PNG’ 파일로 저장합니다.

_images/five.PNG

five.PNG



1. 이미지 영역 찾기

locateOnScreen()

import pyautogui

five_btn = pyautogui.locateOnScreen('five.PNG')
print(five_btn)
(1443, 652, 38, 47)

locateOnScreen() 에 그림(‘five.PNG’)를 설정해주면, 아래와 같이 화면 상에서 일치하는 영역을 찾아서 왼쪽 위의 위치와 영역의 가로, 세로 크기를 튜플의 형태((left, top, width, height))로 출력합니다.

해당 영역을 찾지 못하면 None 을 반환합니다.



2. 이미지 영역의 가운데 위치 얻기

center()

import pyautogui

five_btn = pyautogui.locateOnScreen('five.PNG')
center = pyautogui.center(five_btn)
print(center)

center() 함수를 사용하면, 해당 영역의 가운데 위치(클릭할 지점)를 튜플의 형태로 얻을 수 있습니다.

center를 출력하면 (1462, 675)가 출력됩니다.



3. 클릭하기

click()

import pyautogui

center = pyautogui.locateCenterOnScreen('five.PNG')
pyautogui.click(center)

이미지 영역을 찾고 가운데 지점을 찾는 더 쉬운 방법은 locateCenterOnScreen() 함수를 사용하는 것입니다.

아래와 같이 click(center) 를 통해 계산기의 5 버튼의 가운데 위치가 클릭됩니다.

_images/9_2_calculator_2.png

화면 상에서 계산기의 위치가 바뀌어도 항상 똑같은 위치를 클릭할 수 있습니다.

1920×1080 화면 기준으로, 클릭에 1~2초 정도가 걸리기 때문에 게임에 적용하기는 어려울 수 있지만 대부분의 어플리케이션에서 사용될 수 있습니다.



이전글/다음글