NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Python 4부 - 파이썬 이미지 서치 매크로 만들기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 파이썬으로 매크로 만들기 마지막 시간이네요. 그동안, 보안이나 우회 관련 프로그램을 만드느라 정신이 없었습니다. 해외에서 프로그램도 공수해오고, 여러 커뮤니티도 들락날락하면서 테스트하고 검증하는데 한참이나 걸렸네요. 엔지엠 디자이너나 프레임워크를 사용하면 파이썬처럼 코딩 방식으로 매크로를 제작할 수 있습니다. 좋은점은~ 이미 검증된 성능과 기능을 쉽고 빠르게 사용할 수 있다는점과 제공되는 GUI를 사용함으로써 개발 시간을 단축할 수 있습니다. 앞으로는 엔지엠 프레임워크에 대한 내용으로 채워나가도록 하겠습니다.

     

    이전 글에서 파이썬으로 마우스와 키보드를 제어하는 방법에 대해 간단하게 알아봤습니다. 오늘은 모니터 화면에서 원하는 이미지를 찾아 클릭하는 방법에 대해 알아볼께요. 이미 한번 해봤던 내용이라 크게 어렵지는 않겠지만, 그래도 이전 내용들을 미리 학습해보는게 좋겠습니다. 파이썬 개발 환경을 갖춰야 이 내용도 따라할 수 있기 때문이죠^^; 최대한 복잡한 설명은 배제하고, 동작할 수 있는 요점만 설명하면서 진행하도록 하겠습니다.

    파이썬 매크로 만들기 - 1부2부3부 ]

     

    이미지 서치(엔지엠에서는 이미지 매치)와 마우스 클릭을 위한 패키지들을 설치 해줍니다. pyautogui는 파이썬 스크립트가 마우스와 키보드를 제어하여 다른 프로그램과 상호 작용할 수 있게 해줍니다. 장점은~ Windows, MacOS, Linux에서 작동한다는 점입니다. 리눅스는 GUI를 지원하는 버전에서만 되겠죠^^;

    pip install pyautogui

     

    이미지 서치에는 OpenCV가 필요합니다. 아래와 같이 패키지를 설치 해주세요.

    pip install opencv-python

     

    마지막으로~ 파이썬에서 이미지를 처리해주는 필로우를 설치하세요.

    pip install pillow

     

    파이썬은 스크립트 언어입니다. 보통 많이 알고 있는 자바스크립트와 같은 스크립트 언어들은 한줄씩 인터프리터가 해석하면서 실행됩니다. 그렇다보니 이미지를 바이트로 처리하는데 문제가 있습니다. 이런 문제를 해결해주는 패키지가 필로우입니다. 스크립트 언어들은 컴파일 언어에 비해 속도가 느릴수밖에 없습니다. 이제 찾을 이미지를 만들어야겠죠? 찾고자 하는 이미지를 source라고 명명하고, 소스 이미지를 찾을 전체 화면을 target이라고 부르겠습니다. 엔지엠 에디터를 실행한 후 아래와 같이 소스 이미지를 바탕화면에 저장합니다.

    ※ 파일명을 source.png 로 변경하세요.

    fqB4YOB.gif

     

     

    아래 코드를 복사하여 붙여넣기 하고 Ctrl+F5를 눌러서 실행해보세요.

    import pyautogui
    import time
    
    p_list = pyautogui.locateAllOnScreen("C:\\Users\\<사용자>\\Desktop\\source.png")
    p_list = list(p_list)
    print(p_list)

     

    좌표 값이 표시됩니다.

    PS C:\Users\ngmas\Desktop>  c:; cd 'c:\Users\ngmas\Desktop'; & 'C:\Users\ngmas\AppData\Local\Programs\Python\Python39\python.exe' 'c:\Users\ngmas\.vscode\extensions\ms-python.python-2020.12.424452561\pythonFiles\lib\python\debugpy\launcher' '57797' '--' 'c:\Users\ngmas\Desktop\image_search.py' 
    [Box(left=723, top=330, width=123, height=107)]
    PS C:\Users\ngmas\Desktop> 

     

    엔지엠 에디터에서도 이미지 매치를 해보면 동일한 결과를 확인할 수 있습니다.

    2l9kfqQ.png

     

     

    이제 찾은 이미지를 클릭하는 코드를 작성합니다.

    import pyautogui
    import time
    
    p_list = pyautogui.locateAllOnScreen("C:\\Users\\<사용자>\\Desktop\\source.png")
    p_list = list(p_list)
    p_center = pyautogui.center(p_list[0])
    pyautogui.click(p_center)

     

    Ctrl+F5를 눌러서 실행 해보세요.

    OZ0vw79.gif

     

     

    여러분들도 잘 동작하죠? 위와 같은 방식으로 이미지를 찾아서 클릭하는걸 반복하면 원하는 자동화를 공짜로 쉽게 얻을 수 있게될겁니다. 생각보다 그렇게 어렵지는 않거든요~ 매크로를 만드는게 어려운건 아닙니다. 처음부터 끝까지 많은 로직들의 이미지와 좌표를 확인하고 클릭하거나 키보드가 동작할 수 있도록 코딩하는게 상당한 노가다성 작업입니다. 기본적인 몇가지만 외워서 활용한다면 비싼돈주고 제작을 의뢰하지 않아도 됩니다. 아무튼~ 이렇게 해서 간단하게 파이썬으로 이미지 서치를 만들어봤습니다. 궁금한 사항은 커뮤니티의 질문과 답변 게시판에 남겨주세요^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.