AutoHotkey/AutoHotkey 초급

[Autohotkey 초급] 오토핫키에서 이미지서치하는 방법

JasonCloud 2023. 3. 9. 14:10
반응형

 

화면의 영역에서 이미지를 검색합니다.

ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile

 

매개변수 OutputVarX, OutputVarY 이미지가 화면에서 발견된 상단 왼쪽 픽셀의 X 및 Y 좌표를 저장할 출력 변수의 이름입니다. 일치하는 항목이 없는 경우 변수는 공백으로 만듭니다. CoordMode를 사용하여 해당 좌표가 활성 창에 상대적인 좌표인지 여부를 지정할 수 있습니다.

 

이러한 매개변수 중 하나 또는 모두를 비워 둘 수 있으며, 이 경우 ErrorLevel(아래 참조)을 사용하여 일치 여부를 확인할 수 있습니다.

 

X1, Y1 검색할 사각형의 상단 왼쪽 모서리의 X 및 Y 좌표입니다. 이는 식일 수도 있습니다. CoordMode를 사용하여 해당 좌표가 활성 창에 상대적인 좌표인지 여부를 지정할 수 있습니다.

 

X2, Y2 검색할 사각형의 하단 오른쪽 모서리의 X 및 Y 좌표입니다. 이는 식일 수도 있습니다. CoordMode를 사용하여 해당 좌표가 활성 창에 상대적인 좌표인지 여부를 지정할 수 있습니다.

 

ImageFile 이미지 파일의 이름입니다. 절대 경로가 지정되지 않은 경우 %A_WorkingDir%에 있다고 가정합니다. 모든 운영 체제에서 GIF, JPG, BMP, ICO, CUR 및 ANI 이미지를 지원합니다.(BMP 이미지는 16비트 이상이어야 합니다.) 기타 아이콘 소스로는 EXE, DLL, CPL, SCR 및 기타 아이콘 리소스를 포함하는 유형의 파일이 있습니다. Windows XP 이상에서는 PNG, TIF, Exif, WMF 및 EMF와 같은 추가 이미지 형식이 지원됩니다. XP 이전의 운영 체제는 Microsoft의 무료 GDI+ DLL을 AutoHotkey.exe 폴더에 복사하여 지원할 수 있습니다

 

옵션: 파일 이름 앞에 바로 나열할 수 있는 0개 이상의 다음 문자열도 있습니다. 다음 문자열 간에는 하나의 공백 또는 탭으로 구분합니다. 예를 들어: *2 *w100 *h-1 C:\Main Logo.bmp.

*IconN: 파일에서 첫 번째 아이콘 그룹 이외의 아이콘그룹을 사용하려면 *Icon 다음에 바로 그룹 번호를 지정하면 됩니다. 예를 들어, *Icon2는 두 번째 아이콘 그룹에서 기본 아이콘을 로드합니다.

*n (변형): 각 픽셀의 색상의 적색, 녹색 및 파란색 성분의 강도에 대해 허용되는 양 방향의 색조 변화의 허용 수를 나타내는 0에서 255 사이의 수를 n으로 지정합니다. 예를 들어, *2가 지정되고 픽셀의 색상이 0x444444인 경우, 픽셀의 색상이 0x424242에서 0x464646 중 어느 것이든 일치합니다. 이미지의 색상이 약간 다른 경우나 ImageFile이 GIF 또는 JPG와 같은 이미지를 정확하게 나타내지 않는 형식을 사용하는 경우 이 매개변수가 유용합니다. 색조 변화의 허용 수를 255로 지정하면 모든 색상이 일치합니다. 기본값은 0 색조입니다.

*TransN: 이 옵션은 이미지 내에서 화면의 모든 색상과 일치하는 색상을 지정하여 일치 항목을 쉽게 찾을 수 있도록 합니다. 이는 일부 투명 영역이 있는 PNG, GIF 및 TIF 파일을 찾을 때 가장 일반적으로 사용됩니다(그러나 아이콘의 경우에는 투명도가 자동으로 지원됩니다). GIF 파일의 경우 *TransWhite가 가장 작동 가능할 것입니다. PNG 및 TIF 파일의 경우 *TransBlack이 가장 적합합니다. 그렇지 않으면 N에 다른 색상 이름 또는 RGB 값을 지정합니다(색상 차트를 참조하거나 RGB 모드에서 PixelGetColor를 사용합니다).

 

예: *TransBlack, *TransFFFFAA, *Trans0xFFFFAA.

 

*wn 및 *hn: 이미지의 크기를 조절하는 데 사용할 너비와 높이입니다(이 너비와 높이는 멀티 아이콘 .ICO 파일에서 로드할 아이콘도 결정합니다). 이러한 옵션을 모두 생략하면 ICO, DLL 또는 EXE 파일에서 로드된 아이콘은 시스템의 기본 작은 아이콘 크기(보통 16×16)로 조정됩니다(실제/내부 크기를 지정하려면 *w0 *h0을 지정할 수 있습니다). 아이콘이 아닌 이미지는 실제 크기로 로드됩니다. 종횡비를 보존하면서 이미지를 축소 또는 확대하을 지정하면 이미지의 너비가 200픽셀이 되고 높이는 자동으로 설정됩니다.

 

ErrorLevel은 지정된 영역에서 이미지를 찾은 경우 0, 찾지 못한 경우 1 또는 파일 열기 실패 또는 잘못된 형식의 옵션과 같은 문제로 명령어가 검색을 수행하지 못한 경우 2로 설정됩니다.

 

설명 ImageSearch는 텍스트가 없거나 쉽게 검색할 수 없는 화면의 그래픽 객체를 감지하는 데 사용됩니다. 예를 들어, 그림 버튼, 아이콘, 웹 페이지 링크 또는 게임 객체의 위치를 발견하는 데 사용할 수 있습니다. 한 번 발견되면 Click를 통해 해당 객체를 클릭할 수 있습니다.

 

가끔 유용한 전략은 전체 이미지가 다르지만 내부 일부가 항상 동일한 경우 전체 이미지 대신 작은 클리핑을 검색하는 것입니다. 이렇게 하면 신뢰성이 향상될 수 있습니다. 클리핑을 추출하는 한 가지 방법은 다음과 같습니다.

이미지가 활성 창에서 표시될 때 Alt+PrtSc를 누릅니다. 이렇게하면 클립보드에 스크린샷이 저장됩니다. Paint와 같은 이미지 처리 프로그램을 엽니다. 클립보드 내용(스크린샷)을 붙여 넣습니다. 이미지 내에서 변하지 않는 고유한 영역을 선택합니다. 해당 영역을 새 이미지 문서로 복사하여 붙여넣습니다. 이미지 검색에 사용할 작은 파일로 저장합니다. 화면에 있는 이미지가 ImageFile 매개변수를 통해 로드한 이미지와 같은 크기이어야 합니다.

 

검색할 영역은 보이는 상태여야 합니다. 즉, 다른 창 뒤에 숨겨진 창의 영역을 검색할 수는 없습니다. 반면, 마우스 커서 아래에 부분적으로 있는 이미지는 일반적으로 감지됩니다. 이에 대한 예외는 대부분 게임 커서이며, 대부분의 경우 그 아래에 있는 이미지를 가리킵니다.

검색은 지정된 영역의 맨 위 행에서 시작하고 아래로 이동하므로, 여러 일치 항목이 있는 경우 맨 위에 있는 항목이 검색됩니다.

투명한 색상을 포함하는 아이콘은 해당 색상이 화면에서 모든 색상과 일치하도록 자동으로 지원됩니다. 따라서 아이콘 뒤에 있는 것의 색상은 중요하지 않습니다.

ImageSearch는 8비트 색상(256색상) 또는 더 높은 색상 스크린을 지원합니다.

검색 동작은 디스플레이 어댑터의 색 깊이에 따라 달라질 수 있으며(특히 GIF 및 JPG 파일의 경우), 스크립트가 여러 색 깊이에서 실행되는 경우 각 깊이 설정에서 테스트하는 것이 가장 좋습니다. 색조 변화 옵션(*n)을 사용하여 다중 색 깊이에서 일관된 동작을 돕는 것이 좋습니다.

 

화면의 이미지가 투명하면 ImageSearch는 일치하지 않을 수 있습니다. 이 경우 색조 변화 옵션(*n)을 시도하거나 WinSet, Transparent, Off를 사용하여 창을 일시적으로 불투명하게 만드는 것이 좋습니다.

 

다음 예제에서는 이미지를 검색하고 해당 위치를 클릭합니다.

#SingleInstance force

; Image file to search for imageFile = searchImage.png

; Click delay in milliseconds clickDelay = 100

; Search for the image and click on it ImageSearch, xPos, yPos, 0, 0, A_ScreenWidth, A_ScreenHeight, %imageFile% 
if (ErrorLevel = 0) 
{ 
	MouseMove, xPos, yPos Sleep, %clickDelay% Click 
} 
else 
{ 
	MsgBox, The image was not found. 
}

이 예제에서는 이미지 파일의 이름을 변수 imageFile에 저장하고, 클릭 지연 시간을 변수 clickDelay에 저장합니다. ImageSearch 명령어를 사용하여 이미지를 검색하고 해당 위치를 클릭합니다. 만약 이미지가 발견되지 않으면 MsgBox 명령어를 사용하여 메시지를 표시합니다.

 

이러한 예제를 기반으로 자신의 스크립트를 작성할 수 있습니다. ImageSearch 명령어의 다양한 옵션을 사용하여 검색을 조정할 수 있으며, 필요에 따라 클릭 지연 시간을 조정하거나 클릭 대신 다른 작업을 수행할 수 있습니다.

 

자료 출처 : https://www.autohotkey.com/docs/v1/lib/ImageSearch.htm

반응형

 

반응형