Автокликер Clickermann :: Форум
Основной раздел => Предложения => Topic started by: tonu on May 15, 2020, 09:52:21 PM
-
Очень хотелось бы видеть что-то типа IF_PIXEL_INRANGE_IN(x,y,x_,y_, l,r), который делает все то же, что и IF_PIXEL_IN, но ищет пиксель с номером между двумя заданными l и r(к примеру, мне нужно найти белый цвет, но он может быть немного серым).
-
Ах, да, colormode делает все слишком неточным для меня, да и работает дольше
-
а кто вам сказал, что номера цветов в диапазоне, соответствуют выбранному вами диапазону цветов?
Прежде чем желать чего-то, хорошо-бы понимать последствия исполнения своих желаний, так-как они имеют неприятное свойство - иногда сбываться.
-
Ах, да, colormode делает все слишком неточным для меня, да и работает дольше
Форумчане, перед поднятием какой-то новой темы, воспользуйтесь встроенным поисковиком по сообщениям форума, погуглите если такой способ привычнее, но не надо придумывать дикую отсебятину и выдавать за откровение, то что давно уже придумано до вас и многократно обсуждалось людьми понимающими суть вопроса. ( в данном случае нумерация при цветообразовании у графического формата используемого программой Clickermann)
-
а кто вам сказал, что номера цветов в диапазоне, соответствуют выбранному вами диапазону цветов?
Прежде чем желать чего-то, хорошо-бы понимать последствия исполнения своих желаний, так-как они имеют неприятное свойство - иногда сбываться.
Первое предложение составил от силы пятилетний ребёнок, но отвечу на то, что я под ним понял: Между белым и бежевым разве огромный диапазон? Нет. И всё
-
что я под ним понял: Между белым и бежевым разве огромный диапазон? Нет. И всё
При восприятии байт RGBA как целое двойное слово (4 байта) мы получаем десятичное число, которое используется для кодирования цвета в кликере.
Поэтому цвета идут не подряд. Близкие цвета красного оттенка идут рядом, зелёного - разбросаны на *256 (умножить), а синего и вовсе *65536
Поэтому да, между белым и бежевым диапазон намного больше, чем между белым и голубым, точнее, светлым-цианом. Или между белым и розовым. Хотя по восприятию это не так.
-
Но функцию всё равно можно сделать. Я уже предлагал давно. Не важно как она будет называться
IF_PIXEL_DEVIATION(x, y, x2, y2, dR, dG, dB, color1, ...)
где
x, y - числовые координаты левого верхнего угла области поиска
x2, y2 - числовые координаты правого нижнего угла области поиска
color1, ... - цвета, поиск которых будет осуществляться
dR - допустимое отклонение КРАСНОЙ составляющей от значения в цвете color1. Диапазон 0-255
dG - допустимое отклонение ЗЕЛЁНОЙ составляющей от значения в цвете color1. Диапазон 0-255
dB - допустимое отклонение СИНЕЙ составляющей от значения в цвете color1. Диапазон 0-255
-
Для точечной проверки отдельных пикселей, можно и сейчас применять существующий функционал. Для поиска, конечно не годится, скорость низкая.
//эталонный цвет
$col = 14483455
// допуск по каналам
$dR = 0
$dG = 5
$dB = 35
//берём пиксель
GETSCREEN
$p = PXL(200,300)
IF((ABS(COLORR($col) - COLORR($p)) <= $dR) & (ABS(COLORG($col) - COLORG($p)) <= $dG) & (ABS(COLORB($col) - COLORB($p)) <= $dB))
print("Подходит")
ELSE
print("НЕ подходит")
END_IF
HALT