태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

오토핫키 강좌 9강 - 이미지서치(ImageSearch)

오토핫키 이미지서치는 컴퓨터 화면에서 이미지를 찾아주는 명령어입니다.

클릭을 원하는 부분을 캡쳐해서 이미지과 똑같은 부분을 클릭하게 만들 수 있습니다.



오토핫키 이미지서치를 이용하기 위해서는

컴퓨터 화면을 캡쳐할 수 있는 프로그램이 필요합니다.

캡쳐 프로그램 다운로드 https://gogildong.com/2


이미지서치(ImageSearch)란?

이미지파일을 인식해서 컴퓨터화면에서 이미지를 찾아주는 명령어입니다.


[문법]

ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, *TransN *N, ImageFile


[설명]

OutputVarX, OutputVarY : 이미지를 찾았을 때 좌표에 대입되는 변수입니다.

X1, Y1 : 이미지서치 범위의 시작 좌표입니다.

X2, Y2 : 이미지서치 범위의 끝 좌표입니다.

*TransN *N : *TransN는 이미지에서 제거할 색상입니다. N는 오차범위(0~255). 오차범위가 작을수록 이미지를 정확하게 찾을 수 있습니다. 이미지를 찾지 못한다면 오차범위를 올려야 합니다.

ImageFile : 이미지 파일 이름입니다.



※ 이미지서치

"고길동.png" 라는 이미지을 찾았다면 마우스왼쪽을 클릭합니다.


이미지서치(해상도전체).ahk


컴퓨터 해상도 1920X1080 일때

0,0좌표부터 1920,1080좌표까지 이미지탐색을 합니다.


[해석]

F1::     ; F1 누르면 시작합니다.

ImageSearch,vx,vy, 0,0, A_ScreenWidth, A_ScreenHeight, *60 고길동.png

if ErrorLevel=0     ; 이미지를 찾았다면

{

MouseClick, Left, %vx%,%vy%     ; 이미지를 마우스왼쪽 클릭을 합니다.

}

if ErrorLevel=1     ; 이미지를 찾지 못했을 경우

{

MsgBox,인식을 못한다 이미지바꿔라     ; 메시지박스를 출력합니다.

}

F2::Pause     ; F2 누르면 일시정지 & 재시작

F3::ExitApp     ; F3 누르면 오토핫키 종료



※ if ErrorLevel 대해서

찾았을 경우

if ErrorLevel=0


못찾았을 경우

if ErrorLevel=1


오류가 생긴 경우

if ErrorLevel=2



※ 컴퓨터 좌표 이해하기 (0,0, A_ScreenWidth, A_ScreenHeight)

0,0좌표부터 컴퓨터해상도까지 화면전체에서 이미지탐색을 합니다.


다른창을 열었을 때 창의 0,0좌표부터 좌표끝 부분까지 이미지탐색을 합니다.


활성 창의 화면전체를 스캔해서 이미지를 찾아내는데 화면에 동일한 이미지가 여러개 있을 때 내가 원하는 이미지를 찾지 못하고 다른 동일이미지를 찾아낼 수 있어서 이미지 찾는 범위를 만들어주면 해결됩니다.



※ 이미지서치 빠르게 잘 찾아낼 수 있게 만들기

예를 들어 로컬디스크를 클릭하게 만들어보겠습니다.

① "로" 글자를 캡쳐합니다.


② "로" 시작좌표와 끝좌표


③ 이미지를 찾으면 "로" 글자를 클릭합니다.

이미지를 못 찾으면 메세지박스가 출력됩니다.

이미지서치(좌표지정).ahk





※ 이미지서치 여러개와 키보드 누르게 만들기

이미지파일이 많을 때 폴더를 만들어서 경로를 지정해주면 편합니다.


게임시작 이미지를 찾으면 클릭이후 키보드가 작동될 수 있도록 하는 등, 다양하게 연구해서 만들어보세요.

예를 들면 if ErrorLevel=1를 이용해서 메세지박스말고 키 입력을 넣을 수도 있습니다.




※ 투명한 배경이거나 배경색 때문에 이미지서치가 잘 안될 때

예를 들어 배경을 제외하고 글자만 클릭되게 만들어 보겠습니다.

1. "로" 글자를 캡쳐합니다.


2. "로" 흰색배경을 그림판이나 포토샵으로 다른색깔로 바꿔줍니다.

저는 빨간색으로 바꿨습니다.

          


3. 빨간색을 제외하고 "로" 글자만 클릭하게 됩니다.


*Trans색깔은 색깔을 투명화시켜서 검색되지 않도록 합니다.

*TransWhite *FFFFFF *Trans0xFFFFFF 이미지파일에서 흰색를 제외하고 검색합니다.

*TransBlack *TransFFFF00 *Trans0xFFFF00 이미지파일에서 검정색를 제외하고 검색합니다.

*TransRed *TransFF0000 *Trans0xFF0000 이미지파일에서 빨간색을 제외하고 검색합니다.





※ 좌표와 색깔코드 보는 방법

오토핫키 실행하면 작업 표시줄에 H 아이콘 생깁니다.


H 오른쪽 마우스 클릭해서 Window Spy 들어갑니다.


Window는 X좌표, Y좌표

Color에서 색깔코드를 볼 수 있습니다.


댓글 (7)
  1. Favicon of https://nevercmecry.tistory.com 징쟝 2019.02.08 14:23 신고

    잘만드셨네요. 잘보고 갑니다.

  2. 김성현 2019.03.29 01:26

    배경색이 여러색이 있고 원하는 검색은 흰색 숫자 입니다
    흰색의 숫자만 어떻게 인식 시킬수 있을까요

  3. 규규 2019.08.22 18:22

    안녕하세요 이미지서치를 좌표로고정안하고
    움직이다가 지정 좌표안에서 원하는 이미지가나왔을때 그이미지를 선택하게는 어떻게 해야되나요?

  4. 대단 2021.01.02 17:24

    정말 잘 만드셨네요.
    저도 오토핫키로 게임 매크로 많이 만들어봤고 c++이나 java, python 같은 메이져 언어에 익숙치 않아서 오토핫키로 거의 모든 자동화를 만들어 쓰고 있는데요.
    그래서 나름 오토핫키에 대해서 많이 안다고 생각하고 강좌도 만들어볼까 생각했는데 님 블로그 보고 포기했습니다.
    정말 중요한 내용들 딱딱 집어내시고 캡쳐랑 편집도 정성들여서 하신 모습에 넉다운 ㅋㅋ
    틈틈히 들어와서 감사히 배우겠습니다 ^^

  5. 황정만 2021.04.05 21:08

    이미지 위치는 오토핫키 위치랑 동일하게 둬야 되나요???

    경로는 일반경로 D:\down 이런식으로 해야 하나요?????

    • 지나가다 2021.05.11 19:40

      그냥 파일명만 적으면 해당 스크립트 파일이 있는 기준으로 탐색하고 전체경로를 넣으면 해당 경로로 탐색

  6. 박우찬 2021.05.16 03:07

    잘보고있습니다 제가 녹스라는 앱뮬 4개를 켜서 게임을 돌리는데 그4개를 한번에 확인하는 방법이 있을까요?
    보니깐 하나씩 클릭을 해야 이미지서칭 한다던데...