오토핫키(AutoHotkey)는 윈도우 환경에서 자동화 스크립트를 작성할 수 있는 매우 유용한 도구입니다. 그 중에서도 PixelGetColor 함수는 화면의 특정 위치에 있는 픽셀의 색상을 가져오는 기능을 제공합니다. 이 함수는 이미지 인식, 색상 기반의 자동화 작업 등에 유용하게 활용될 수 있습니다. 이번 블로그 포스트에서는 PixelGetColor 함수의 기본 사용법과 다양한 활용 사례를 소개하겠습니다.
PixelGetColor 함수 기초
기본 사용법
PixelGetColor 함수는 특정 좌표의 색상을 가져와 변수에 저장합니다. 기본 구문은 다음과 같습니다.
PixelGetColor, OutputVar, X, Y [, Mode]
- OutputVar: 색상 값을 저장할 변수
- X, Y: 색상을 가져올 화면 좌표
- Mode (선택 사항): 색상 형식 (RGB 또는 BGR)
예제
다음은 좌표 (100, 200)의 색상을 가져와 변수 color에 저장하는 예제입니다:
PixelGetColor, color, 100, 200
MsgBox, 색상 값: %color%
이 스크립트를 실행하면, 좌표 (100, 200)의 색상 값이 메시지 박스로 표시됩니다.
색상 비교 및 조건부 작업
특정 색상 확인
특정 좌표의 색상이 원하는 색상과 일치하는지 확인할 수 있습니다. 예를 들어, 좌표 (150, 250)의 색상이 흰색(0xFFFFFF)인지 확인하는 스크립트는 다음과 같습니다.
PixelGetColor, color, 150, 250
if (color = 0xFFFFFF)
{
MsgBox, 색상이 흰색입니다.
}
else
{
MsgBox, 색상이 흰색이 아닙니다.
}
색상 기반의 자동화 작업
화면의 특정 위치에 원하는 색상이 나타날 때까지 기다린 후, 특정 작업을 수행하는 자동화 스크립트를 작성할 수 있습니다. 다음은 좌표 (300, 400)에 파란색(0x0000FF)이 나타날 때까지 기다린 후 클릭하는 예제입니다.
SetTimer, CheckColor, 100
CheckColor:
PixelGetColor, color, 300, 400
if (color = 0x0000FF)
{
Click, 300, 400
SetTimer, CheckColor, Off ; 타이머 중지
MsgBox, 파란색이 나타나 클릭했습니다.
}
return
고급 사용법
색상 허용 오차
화면 캡처 프로그램이나 디스플레이 설정에 따라 미세한 색상 차이가 발생할 수 있습니다. 이를 고려하여 허용 오차 범위를 설정할 수 있습니다. 다음은 허용 오차를 적용한 색상 비교 예제입니다.
PixelGetColor, color, 200, 300
TargetColor := 0xFF0000 ; 목표 색상 (빨간색)
Tolerance := 0x10 ; 허용 오차 (16진수)
if (Abs((color & 0xFF) - (TargetColor & 0xFF)) <= Tolerance
and Abs(((color >> 8) & 0xFF) - ((TargetColor >> 8) & 0xFF)) <= Tolerance
and Abs(((color >> 16) & 0xFF) - ((TargetColor >> 16) & 0xFF)) <= Tolerance)
{
MsgBox, 색상이 허용 오차 범위 내에 있습니다.
}
else
{
MsgBox, 색상이 허용 오차 범위 내에 있지 않습니다.
}
다중 색상 체크
여러 좌표의 색상을 확인하고, 모두 특정 조건을 만족하는지 검사할 수 있습니다. 다음은 여러 좌표의 색상을 확인하는 예제입니다.
Coords := [[100, 200], [150, 250], [200, 300]]
TargetColor := 0x00FF00 ; 목표 색상 (초록색)
MatchCount := 0
Loop, % Coords.MaxIndex()
{
Coord := Coords[A_Index]
PixelGetColor, color, %Coord.1%, %Coord.2%
if (color = TargetColor)
MatchCount++
}
if (MatchCount = Coords.MaxIndex())
{
MsgBox, 모든 좌표의 색상이 일치합니다.
}
else
{
MsgBox, 일부 좌표의 색상이 일치하지 않습니다.
}
오토핫키의 PixelGetColor 함수는 화면의 픽셀 색상을 확인하고, 이를 기반으로 다양한 자동화 작업을 수행할 수 있게 해줍니다. 이번 글에서는 PixelGetColor 함수의 기본 사용법부터 고급 활용 방법까지 다양한 예제를 통해 설명하였습니다. 이 함수를 활용하여 여러분의 자동화 스크립트를 더욱 강력하게 만들어 보세요!
'오토핫키 > 오토핫키 명령어' 카테고리의 다른 글
오토핫키 - Sleep (0) | 2024.06.28 |
---|---|
오토핫키 - Send (0) | 2024.06.27 |
오토핫키를 - MsgBox (0) | 2024.06.26 |
오토핫키 - 마우스 제어 (0) | 2024.06.24 |
들어가기 앞서 (0) | 2024.06.18 |