Главная » 2016 » Сентябрь » 6 » Использование поиска пикселя с заданным цветом и относительное задание координат.
00:15
Использование поиска пикселя с заданным цветом и относительное задание координат.

Что оптимальней - пиксель с заданным цветом или картинка?

При создании ботов с помощью программ которые анализируют пиксели экрана встает актуальный вопрос - что лучше использовать для поиска и ориентира пиксель с заданным цветом или уникальную картинку?

Первое что напрашивается выяснить - какой вариант быстрей работает:

if_picture_in(0,0,$_xmax,$_ymax,"img.bmp")  // если на снимке есть картинка

if_pixel_in(0,0,$_xmax,$_ymax,26367)  // если на снимке есть пиксель с цветом 26367

скорость работы скриптов в принципе одинакова, поиск пикселя будет немного быстрее потому что сравнивается один пиксель, а в картинке их определенное количество со своими цветами и определенным порядком. Следовательно для увеличения скорости поиска картинки следует делать скрин небольшой уникальной части картинки.

И так становиться понятно, что поиск пикселя будет происходить быстрее, но нам надо найти на экране именно тот пиксель который принадлежит заданному виджету(кнопке, картинке, знаку и т. д.), а каковы шансы, что такой цвет больше не встретиться и не произойдет ошибки в процессе поиска? В соревновании уникальности победит картинка.

Знатоки и скептики могут возразить - установи зону поиска пикселя, где только этот виджет  имеет заданный цвет и проблема решена...

Действительно, если мы знаем , что нужная кнопка возникнет в координатах (120,270), код поиска:

if_pixel_in(100,100,150,280,26367)  // если на снимке есть пиксель с цветом 26367 в области от(100,100) до(150,280)

Казалось бы проблема решена? Решение хорошее,если вы работаете со статической страницей и ваш виджет всегда появляется в одном и том же месте и цвет его не меняется динамически... А эти простые способы - смещение кнопок и виджетов, динамическое изменение оттенков цвета методы борьбы с ботами, которые часто используют создатели сайтов.

Вывод: поиск уникальной картинки дольше, но надежней. Поиск пикселя с заданным цветом нужно использовать если он уникален (задаем зону поиска, где он уникален).

 

Теперь рассмотрим удобство использования скрипта.

Допустим вы создали скрипт и используете его сами, если вы поменяете браузер или компьютер, то очевидно , что вам необходимо будет  сделать новые скрины для картинок или переписать цвет и координаты поиска. А если скрипт будет использовать человек который не создавал его, а только им пользуется? Что легче сделать - скрин заданной картинки и пересохранить с старым названием или произвести анализ - какое новое значение цвета пикселя, найти место в коде и изменить это значение и конечно же определить новые координаты виджета и опять внести изменения в коде.

 

Вывод очевиден - поиск картинки в коде позволяет использовать скрипт сторонними пользователями и не требует изменений в коде программы.

 

Вернемся к вопросу удобства использования кода, а именно задание области поиска или координат.

Простой подход может помочь использовать код без изменений в большинстве случаев ( изменение браузера, компьютера ) - это задание координат посредством математических выражений  через начало координат (0,0) и конец ($_xmax,$_ymax). Пример: поиск от начала экрана до середины ,по вертикали и горизонтали (первая четверть)

if_pixel_in ( 0,0, INT($_xmax/2), INT($_ymax/2),26367 )  // если на снимке есть пиксель с цветом 26367

Так как соотношение сторон экранов в большинстве случаев близки, мы получим код более работоспособный при использовании относительных координат, чем при использовании явного задания(числового) координат.

Окончательный вывод - используй все возможности, а оптимальные варианты определит лишь практика использования скрипта. Показательный пример смешанного варианта использования поиска пикселей и картинок - Скрипт просмотра сайтов на Lickes Rock.

Категория: боты | Просмотров: 1164 | Добавил: kuzma | Рейтинг: 1.0/1
Всего комментариев: 0
avatar

Сайт создан для помощи тем, кто делает первые шаги в программировании.

- автор идеи Кузьма Кузин

Возможность бесплатного доступа ко всем материалам и скриптам.

-совместная работа с группой молодых программистов

Срипты для автоматического заработка на SEO сайтах.

- для всех пользователей всё по цене в 1 EUR