Author Topic: Поиск и клик по картинке! ПОМОГИТЕ!  (Read 51058 times)

0 Members and 2 Guests are viewing this topic.

Oleg

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Всем здравствуйте! ;)
Помогите, пожалуйста, с написанием скрипта! Принцип работы такой:
Изначально есть четыре разных картинки. Нужно, чтобы скрипт каждые пять секунд анализировал один кусок веб - странички и, если находил одну из четырех картинок, нажимал по такой же только в другом куске странички.
При нажатии на предложную картинку страничка обновляется и, опять таки, через пять секунд появляется другая (одна из тех же четырех) картинка, по которой, такой же самой, нужно нажать в другой области странички. И так по кругу до бесконечности...
Можно ли такое организовать в Clickermann’е с помощью скрипта? Так-как в программированию я слаб, хотелось бы посмотреть на подобный скрипт с построчным объяснением кода. И тогда, к примеру, научиться самому писать ::)
Буду очень благодарен за помощь!

Извиняюсь, если не доходчиво изложил! :) Прикрепляю ещё картинку, может поможет...
« Last Edit: April 14, 2013, 01:38:11 AM by Oleg »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #1 on: April 14, 2013, 06:35:32 AM »
300,300, 400,400 - это зона поиска появляющейся картинки. Верхний правый и нижний левый углы зоны.
600,600, 800,800 - это зона 4х картинок
Тебе нужно создать 4 бмпшки и поместить их в папку со скриптом. Размер их должен быть меньше 50х50 пикс это ускорит поиск.
Скрипт работает следующим образом:
Ищется первая картинка, если найдено то ищется та же картинка но в другой зоне, далее клик и ожидание. Ждать 5 сек нет нужды, вполне достаточно пол секундной задержки. Иначе картинки появятся на экране а кликер будет неизвестно чего ждать 5 сек.
Если картинка картинка 1.bmp вообще не найдена значит идет альтернатива Else, а там те же условия с функциями но для картинки 2. Координаты все теже, и тд. После успешного нахождения картинки и клика скрипт начнется с начала.

Code: (clickermann) [Select]
WAITMS(500) // общая задержка в полсекунды
GETSCREEN // снимок экрана в буфер для анализа
IF_PICTURE_IN (300,300, 400,400, "картинка 1.bmp") // поиск появившейся картинки 1
   IF_PICTURE_IN (600,600, 800,800, "картинка 1.bmp") // если она найдена то ищем такую же в 4х вариантах
      LCLICK($_return1+2, $_return2+2) // кликаем по возвращенным координатам со смещением +2 пикс по XY
      WAIT(1) // после клика ждем 1 сек и продолжаем
   END_IF
Else
   GETSCREEN
   IF_PICTURE_IN (300,300, 400,400, "картинка 2.bmp")
      IF_PICTURE_IN (600,600, 800,800, "картинка 2.bmp")
         LCLICK($_return1+2, $_return2+2)
         WAIT(1)
      END_IF
   Else
      GETSCREEN
      IF_PICTURE_IN (300,300, 400,400, "картинка 3.bmp")
         IF_PICTURE_IN (600,600, 800,800, "картинка 3.bmp")
            LCLICK($_return1+2, $_return2+2)
            WAIT(1)
         END_IF
      Else
         GETSCREEN
         IF_PICTURE_IN (300,300, 400,400, "картинка 4.bmp")
            IF_PICTURE_IN (600,600, 800,800, "картинка 4.bmp")
               LCLICK($_return1+2, $_return2+2)
               WAIT(1)
            END_IF
         END_IF
      END_IF
   END_IF
END_IF

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #2 on: April 14, 2013, 06:44:23 AM »
И еще, когда делаешь картинку для поиска, её нужно проверить. находит ли её кликер на экране. Это делается отдельным скриптом для теста.

Находит картинку и перемещает в это место курсор а также записывает координаты в лог
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
   print("Найден в координатах X=", $_return1, ", Y=", $_return2)
   MOVE($_return1, $_return2)
Else
   HINTPOPUP("Не найдено")
END_IF
HALT

Oleg

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #3 on: April 14, 2013, 03:26:44 PM »
Здравствуйте, Oraven! :) Огромное Вам спасибо за ответ!
Решил пока не трогать первый скрипт, а начал с второго. Хотя с первым вроде разобрался, все достаточно просто ;)
Так вот, загвоздка в том, что второй скрипт находит на страничке только маленькие картинки (размером меньше 50х50), а большие почему-то не хочет...
Размеры больших картинок, как Вы и говорили, нужно уменьшить до 50х50, что в свою очередь и ускорит процесс поиска. Я так и сделал! Уменьшил картинку и сохранил её в расширении BMP с параметром 24 бит. Тут сразу и вопрос: что не так?
У меня в голове была мысль, что при уменьшении теряется качество изображения, вот поэтому скрипт и не находит картинку. Так дело в том, что и большие, стандартные изображения тоже не находит...   

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #4 on: April 14, 2013, 03:47:06 PM »
Уменьшать, как ты делаешь нельзя. Имелось ввиду - картинка не должна быть большая. Нужно вырезать фрагмент.
Программа при поиске сравнивает попиксельно.


Oleg

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #5 on: April 14, 2013, 05:15:47 PM »
Все равно не понял :-[
Картинка не должна быть по массе большая, или по размеру?
И как это попиксельно?
Т.е. нужно вырезать фрагмент картинки, отделить его от фона и сохранить? В данном случае от белого фона, или как?

Тугодум я конечно :o

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #6 on: April 14, 2013, 06:14:39 PM »
Вырежи кусочек типа такого...
Только на любом этапе не используй Jpeg и другие форматы с потерями. Начиная от скриншота и заканчивая подготовленной картинкой.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #7 on: April 14, 2013, 07:58:37 PM »
Уменьшать картинки О_о до такого еще надо додуматься...
Кликер сравнивает пикселы в картинке с пикселами на экране поэтому масштаб картинки должен быть 1:1 менять размер нельзя!
Например если ты сделал картинку 200х300 то в ней будет 60000 пикселов! Кликер ищет верхний левый пиксел картинки на экране и если находит начинает сравнивать всю картинку, все 60000 пикселов это долго. Но если в твоей картинке всего 4х4 то это всего 16 пикс и анализ пойдет куда быстрее. Ну естественно нужно подобрать для картинки узнаваемое место.
Как только картинка найдена возвращаются координаты её верхнего левого угла в переменные $_return1 и $_return2



Oleg

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #8 on: April 15, 2013, 05:54:25 PM »
Vint, Oraven, огромное Вам спасибо! Проблему с поиском картинки я решил :) Изначально совсем не так делал, а теперь наконец-то научился!
НО... Да, картинку находит. Вот только ту, что находиться в левой области странички, а в области тех четырех - НЕТ! Оказывается, я с самого начала ввел себя и Вас в заблуждение :-[ Моя вина, извините!
Так вот, область с четырьмя картинками - это всего лишь одна картинка, на которой размещено ещё четыре.

За которыми прячутся ссылки и только одна из них правильная. Т.е. из тех четырех правильной картинкой (ссылкой) будет та, что появилась в левой области станице.
Ппц! Наверное, вот поэтому скрипт и не находит картинку в правой области, не так ли?
Можно ли все таки обойти как-то это? Или это глухой вариант?
« Last Edit: April 15, 2013, 06:02:44 PM by Oleg »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #9 on: April 15, 2013, 06:32:30 PM »
Опять началась битва экстрасенсов! Может то а может это... Может картинка в левой области отличается от той что в правой? Тогда надо делать 2е пары этой картинки!

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #10 on: April 15, 2013, 09:12:52 PM »
могут и отличаться, но скорее всего ты напутал с областью.
(это Олегу)
« Last Edit: April 15, 2013, 09:26:20 PM by Vint »


Oleg

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #11 on: April 16, 2013, 10:03:54 PM »
Нет! Картинка в левой, и рисунок в правой области странички - идентичны!
Не думаю, что я напутал с зоной поиска. Делал в этой зоне поиск пикселя заданного цвета, все получилось. Значит и область в порядке.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #12 on: April 17, 2013, 08:25:35 AM »
Нет! Картинка в левой, и рисунок в правой области странички - идентичны!
Не думаю, что я напутал с зоной поиска. Делал в этой зоне поиск пикселя заданного цвета, все получилось. Значит и область в порядке.
Было бы всё правильно, то находило бы.
Выложи скриншот всего экрана в формате PNG или BMP, чего гадать...
Не относящееся к теме можешь замазать.


Oleg

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #13 on: April 17, 2013, 01:52:40 PM »
Вот скрин в оригрнале:

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Поиск и клик по картинке! ПОМОГИТЕ!
« Reply #14 on: April 17, 2013, 04:08:13 PM »
Картинки отличаются!
В местах отмеченных белым цвета чуть изменены. Глазом ты это не увидишь.
« Last Edit: April 17, 2013, 04:43:20 PM by Vint »