Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (5): [1] 2 3 4 5 »   

> Описание: Сранение цвета пикселя по приблизительному цвету. Поиск пикселей определенного цвета.
Kibor
Отправлено: 24 Августа, 2013 - 23:19:55
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Функция scanpixel сравнивает введенный цвет с цветом пикселя в веденных координатах ориентируясь на разбежности в цветах RGB.

Синтаксис:
scanpixel(КоординатаX, КоординатаY, цвет_в_int, Красный_меньше_на, Красный_больше_на, Зеленый_меньше_на, Зеленый_больше_на, Синий_меньше_на, Синий_больше_на, указатель_на _окно)

Возвращает 1 если введенный цвет уложился в диапазн. 0 - не уложился.

Подобрать оптимальные цвета и их количество с учетом разбежности цвета можно с помощью этого инструмента Подбор Цвета Кибор.

Так же возможно сравнивать цвет пикселя загруженного ранее изображения или полученного скриншота в двухмерный массив int
CODE:
int SCREEN[500][700];
//...............
int k=scanpixel(200, 125, 35436455, 15, 15, 15, 15, 15, 15, #SCREEN[0][0]);
messagebox (k);


Пояснение:
Каждый цвет состоит из трех основных цветов - Красный(R), Зеленый(G), Синий(B). (R, G, B). Каждый из этих трех цветов обозначается числом от 0 до 255. К примеру цвет (0, 0, 0) будет черный, а (255, 255, 255) белым. (255, 0, 0) красным, а (255, 50, 70) красным с примесью зеленого и синего.

Обозначение параметров:
Красный_меньше_на - тут указываем число НА которое красный компонент может быть меньше того что находится в поиске.
Красный_больше_на - тут указываем число НА которое красный компонент может быть больше того что находится в поиске.
Зеленый_меньше_на, Зеленый_больше_на, Синий_меньше_на, Синий_больше_на аналогично.

Указатель на окно может принимать -1. Координаты в этом случае экранные. Иначе координаты оконные относительно этого указателя...

..............................................................................................




findcolor - найдет все координаты всех пикселей указанного цвета.

Синтаксис:
findcolor(-1, #x[0],#y[0], стартx, стартy, финишx, финишy, color, w);

Первый параметр - количество максимальное искомых пикселей. Если -1 - искать все сколько найдет.
Второй и третий - указатель на массивы int приемники координат.
Четвертый - седьмой - Начало, конец зоны поиска.
Восьмой - цвет поиска
девятый - указатель на окно. Если -1 - по всему экрану.
Если есть указатель на окно - возвращаемые координаты оконные.

findcolor возвращает количество найденых пикселей
Или -1 если массив приемника меньше по X
-2 размер массива приемника меньше по Y

Так же findcolor может искать с разбежностью цвета.
Синтаксис:
findcolor(-1, #x[0],#y[0], стартx, стартy, финишx, финишy, color, Красный_меньше_на, Красный_больше_на, Зеленый_меньше_на, Зеленый_больше_на, Синий_меньше_на, Синий_больше_на, w);


Так же возможно искать цвет пикселя загруженного ранее изображения или полученного скриншота в двухмерный массив int

CODE:
int SCREEN[500][700];
//...............
int k=findcolor(-1, #x[0],#y[0], стартx, стартy, финишx, финишy, color, #SCREEN[0][0]);
messagebox (k);


CODE:
int SCREEN[500][700];
//...............
int k=findcolor(-1, #x[0],#y[0], стартx, стартy, финишx, финишy, color, Красный_меньше_на, Красный_больше_на, Зеленый_меньше_на, Зеленый_больше_на, Синий_меньше_на, Синий_больше_на, #SCREEN[0][0]);
messagebox (k);
 
 Top
Dantes3000
Отправлено: 14 Марта, 2017 - 23:40:20
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




if(scanpixel(619, 352, 0, 0, 0, 0, 0, 0, 0, -1)==1) goto h;

beep(1000, 200);
beep(1000, 200);
pause(100000);
h:beep(1000, 200);

я ж правильно написал? На рабочем столе черный фон, кибор показывает цвет 0. Не видит его.
(Добавление)
int r=1;

if(scanpixel(1, 1, 0, r, r, r, r, r, r, -1)==1) goto h;

beep(1000, 200);
beep(1000, 200);
pause(100000);
h:beep(1000, 200);

а вот так вот видит. Почему?

(Отредактировано автором: 14 Марта, 2017 - 23:45:23)

 
 Top
Kibor
Отправлено: 15 Марта, 2017 - 00:00:58
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




пофиксил
 
 Top
Dantes3000
Отправлено: 28 Мая, 2017 - 16:44:46
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




мне кажется или scanpixel иногда сбоит? Есть простенькая функция сканирования хп в варспе...иногда срабатывает просто так и я уверен, что ничего не перекрывает полоску хп.
 
 Top
Kibor
Отправлено: 28 Мая, 2017 - 22:04:59
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Ну если сомневаетесь про сбои, то напишите простой скрипт сканирования пикселя пустого блокнота. и тестируйте в течение долгого времени. и выведите сообщение при сбое
 
 Top
Dantes3000
Отправлено: 29 Мая, 2017 - 14:15:55
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




А из-за чего может выбивать скрипт, когда он проработал 5-7 часов?
 
 Top
Kibor
Отправлено: 29 Мая, 2017 - 14:19:52
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Я не знаю. если бы знал и это была бы ошибка кибора - устранил бы.
 
 Top
Dantes3000
Отправлено: 29 Мая, 2017 - 14:33:47
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




Может такое быть, что постепенно выделяется всё больше оперативной памяти и в один момент скрипт просто вырубается? И как с этим бороться
 
 Top
Kibor
Отправлено: 29 Мая, 2017 - 15:05:53
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Он не должен этого делать.
Посмотрите в диспетчере.

Или выделяется? Тогда надо найти место которое выделяет.
(Добавление)
CODE:
win w=window ("Безымянный — Блокнот", "Notepad", -1);
loop()
{
scanpixel(100, 100, 0, 10, 10, 10, 10, 10, 10, w);
scanpixel(100, 100, 0, 10, 10, 10, 10, 10, 10, -1)
}


не выделяет..
 
 Top
Dantes3000
Отправлено: 29 Мая, 2017 - 15:28:15
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




Извините, что ввёл в заблуждение...я не имел ввиду функцию scanpixel, а именно свой скрипт. Я не знаю из-за чего он может выбивать. Можете глянуть?
Скрытый текст:
Для просмотра Вам необходимо авторизоваться и оставить не менее 150 сообщений
 
 Top
Страниц (5): [1] 2 3 4 5 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


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




Powered by