AutoHotkey (AHK) — мощный язык сценариев, который позволяет пользователям автоматизировать различные задачи в Windows. Одной из его полезных функций является функция PixelGetColor, которая позволяет пользователям извлекать информацию о цвете из определенных пикселей на экране. В этой статье мы рассмотрим несколько методов использования PixelGetColor в AHK, а также примеры кода для каждого метода.
Метод 1: получение цвета из определенного пикселя
Самое основное использование PixelGetColor — получение цвета из определенного пикселя на экране. Следующий фрагмент кода демонстрирует это:
CoordMode, Pixel, Screen
MouseGetPos, MouseX, MouseY
PixelGetColor, Color, %MouseX%, %MouseY%
MsgBox The color at (%MouseX%, %MouseY%) is %Color%.
В этом примере мы сначала устанавливаем режим координат «Экран», чтобы обеспечить точное извлечение пикселей. Затем мы используем функцию MouseGetPos, чтобы получить текущую позицию мыши. Наконец, PixelGetColor получает цвет по указанным координатам, и результат отображается в окне сообщения.
Метод 2: захват цвета из определенного окна
PixelGetColor также может получить цвет из определенного окна на экране. Вот пример:
WinGetPos, X, Y, Width, Height, Untitled - Notepad
PixelGetColor, Color, %X%+10, %Y%+10
MsgBox The color at (X: %X%+10, Y: %Y%+10) in the Notepad window is %Color%.
В этом фрагменте кода мы используем WinGetPos для получения положения и размеров целевого окна. Затем, добавив смещение, мы получаем цвет определенного пикселя в окне.
Метод 3: извлечение цвета из области экрана
С помощью PixelGetColor вы можете извлечь информацию о цвете из определенной области экрана. Вот пример:
CoordMode, Pixel, Screen
X1 := 100
Y1 := 100
X2 := 200
Y2 := 200
PixelGetColor, Color, %X1%, %Y1%, %X2%, %Y2%
MsgBox The average color in the region (%X1%, %Y1%) to (%X2%, %Y2%) is %Color%.
В этом фрагменте кода мы определяем координаты верхней левой и нижней правой области экрана. PixelGetColor извлекает информацию о цвете из указанного региона, а в окне сообщения отображается средний цвет.
Метод 4: мониторинг изменений цвета пикселей
PixelGetColor можно использовать для отслеживания изменений цвета пикселей. Вот пример:
CoordMode, Pixel, Screen
PreviousColor := 0
Loop
{
PixelGetColor, CurrentColor, 500, 500
if (CurrentColor != PreviousColor)
{
MsgBox Pixel color changed! New color: %CurrentColor%.
PreviousColor := CurrentColor
}
Sleep 1000
}
В этом фрагменте кода мы используем цикл для непрерывной проверки цвета определенного пикселя. Если цвет изменится, пользователь уведомится об этом в окне сообщения, а переменная previousColor обновится для будущих сравнений.
PixelGetColor – это универсальная функция AutoHotkey, которая позволяет пользователям извлекать информацию о цвете из определенных пикселей, окон или областей экрана. Изучая методы, описанные в этой статье, вы сможете включить извлечение цвета в свои сценарии AHK для различных задач автоматизации и обработки изображений.
Не забудьте ознакомиться с официальной документацией AutoHotkey для получения более подробной информации и дополнительных функций функции PixelGetColor.