이미지서치 여러개 - imijiseochi yeoleogae

오토핫키

by 아카이sun 2016. 1. 31.

오토핫키 이미지서치 마지막 시간.

이미지서치와 클릭기능을 조합할 수 없는가?

이미지가 여러개가 있다면 다중으로 인식해서 원하는 동작을 하지 못하는가?

가능합니다!!

이미지서치 여러개 - imijiseochi yeoleogae

이미지서치의 다중처리를 위해서는 loop문을 써야 하는데요

loop은 반복처리를 위한 명령어 입니다.

 

반응형

저작자표시 비영리 변경금지

'오토핫키' 카테고리의 다른 글

오토핫키 이미지서치 #2 Autohotkey ImageSearch #2  (0)2016.01.31
오토핫키 이미지서치 #1 Autohotkey ImageSearch #1  (6)2016.01.31
오토핫키의 기본기능(send, loop, sleep, click)  (0)2016.01.31
메세지박스  (0)2016.01.31
핫키의 개념  (0)2016.01.31

태그

autohotkey, image search, macro, 매크로, 오토핫키, 이미지서치

관련글

  • 오토핫키 이미지서치 #2 Autohotkey ImageSearch #2
  • 오토핫키 이미지서치 #1 Autohotkey ImageSearch #1
  • 오토핫키의 기본기능(send, loop, sleep, click)
  • 메세지박스

댓글6

    비밀글

    댓글

    낙서장

    오토핫키 다중 이미지서치 이미지서치 후 이미지서치

    이미지서치 여러개 - imijiseochi yeoleogae

    2013. 2. 24. 11:42

    ^1::
    loop{
    {
    ImageSearch, VX, VY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 1.bmp
    If errorlevel = 0
    {
    click,L,vx+35,vy+5,1
    sleep 500
    click 1178,309
    sleep 1000
    send {enter}
    sleep 500
    }

    ImageSearch, VX, VY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 2.bmp
    If errorlevel = 0
    {
    click,L,%vx%,%vy%,1
    sleep 1000
    }
    }

    }

    F2::Pause
    F3::Reload
    F4::Exitapp

    event(ByRef img_X,ByRef img_Y,img)
    {
    global ActiveID
    WinGetPos, winX, winY, winW, winH, %ActiveID%
    num=1
    img1=%img%
    startTime:=A_TickCount
    loop
    {
    if (A_TickCount-startTime>2000)
    {
    ;tooltip,MISS,%winx%,%winy%
    return 0
    }
    ImageSearch, oX, oY, winX, winY, winX+winW, winY+winH, *100 %A_ScriptDir%\JRimg\event\%img1%%num%.png
    If ( ErrorLevel = 0)
    {
    img_X:=oX
    img_Y:=oY
    ;sleep 800
    ;MsgBox,%img1%%img_X%/%img_Y%
    ;break
    return 1
    }
    else if ( ErrorLevel = 2)
    {
    num=1
    }
    ;tooltip,IMGNUM:%num%,%winx%,%winy%
    num++
    }
    }
    제나름대로 만든 이미지서치함수입니다.
    혹시나 도움 되실일 있을까봐 올려봅니다.
    잘만든 함수는 아니지만 그럭저럭 쓸만합니다.

    사용법은
    이미지저장을 a1.a2.a3.a4요런씩으로 이미지명에 숫자를붙힙니다.

    그리고.
    If (Event (x, y, "img")=1)
    {
    MsgBox,찾았다
    }

    오토핫키 강좌 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" 라는 이미지을 찾았다면 마우스왼쪽을 클릭합니다.

    이미지서치 여러개 - imijiseochi yeoleogae
    이미지서치(해상도전체).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좌표부터 좌표끝 부분까지 이미지탐색을 합니다.

    이미지서치 여러개 - imijiseochi yeoleogae

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

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

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

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

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

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

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

    이미지서치 여러개 - imijiseochi yeoleogae
    이미지서치(좌표지정).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에서 색깔코드를 볼 수 있습니다.