Я в основном работаю с программой по типу кликера и решил попробовать переписать код из кликера в АХК, но столкнулся с проблемой что не знаю какая команда упрощает цвета.
Искал на AHK wiki но без успешно, может кто-нибудь из вас знает решение моей проблеме.
Как сделать colormode?
Как сделать colormode?
- Attachments
-
- image.png (4.65 KiB) Viewed 633 times
Re: Как сделать colormode?
Зависит от ваших задач. У функций ImageSearch / PixelSearch есть параметр „вариативность“ (Varation) — возможно, это то, что вы ищете.
Судя по таблице, упрощение цвета достигается квантизацией. То есть, каждый канал цвета представлен числом от 0 до 255, и в режиме 0 представлены все значения, в режиме 4 значения идут с шагом 16 (то есть могут быть 0, 16, 32, ..., 255), в режиме 8 — только два значения (0, 255). Похожего результата можно добиться простыми битовыми операциями:
Code: Select all
quantizeColor( rgbInt, mode ) {
mode := Min(Max(Floor(mode), 0), 8)
r := (rgbInt & 0xFF0000) >> 16 ; Отделяем красный канал (0..255)
g := (rgbInt & 0x00FF00) >> 8 ; Отделяем зелёный канал (0..255)
b := (rgbInt & 0x0000FF) >> 0 ; Отделяем синий канал (0..255)
r := quantizeChannel(r) << 16 ; Квантуем каналы и возвращаем на прежние места
g := quantizeChannel(g) << 8
b := quantizeChannel(b) << 0
Return (r | g | b) ; объединяем каналы в одно значение цвета
}
quantizeChannel( channelValue, mode ) {
If (channelValue == 0xFF)
Return channelValue
Return ((channelValue >> mode) << mode) ; Убираем все биты, кроме старших M битов (M = mode)
}