Author Topic: Сравнение bmp с getscreen  (Read 2288 times)

0 Members and 1 Guest are viewing this topic.

Fugger

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Сравнение bmp с getscreen
« on: September 04, 2017, 04:39:40 PM »
Привет, это снова я ;D. Поступил такой вопрос как "как сделать чтобы getscreen и bmp сравнивались", то бишь подключить bmp, сделать скриншот и сравнить их. Но это совершенный примитив моей идеи. Полную идею, если вы хотите прям очень помочь, я опишу в споилере ниже.
[spoiler]Допустим есть сайт, где тебе нужно ставить пиксели, один за другим, разных цветов. Мне нужно чтобы скрипт считывал с изображения все пиксели одинакового цвета, или можно(а вернее нужно) разного, и кликал все эти пиксели на экране.Вот так вот. Если что не понятно, говорите.[/spoiler]
« Last Edit: September 04, 2017, 04:42:37 PM by Fugger »

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Сравнение bmp с getscreen
« Reply #1 on: September 04, 2017, 04:53:39 PM »
Пять раз перечитал. Что значит-
..."как сделать чтобы getscreen и bmp сравнивались"...
? ? ?
Это как сравнивать скорость и автомобиль.
Потом захотел прям очень помочь, и совсем завис. Я наверное слишком стар для понимания слов
нужно ставить пиксели

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Сравнение bmp с getscreen
« Reply #2 on: September 04, 2017, 05:14:43 PM »
Справка, раздел "Анализ экрана".
Нужные тебе функции IF_PICTURE_IN ищет маленькую картинку из BMP на экране.
IF_PIXEL_IN ищет заданные цвета пикселов.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Сравнение bmp с getscreen
« Reply #3 on: September 04, 2017, 05:39:04 PM »
Как я понял, он хочет рисовать в онлайн рисовалке, но рисовать не умеет. Поэтому будет срисовывать с bmp.
Ещё варианты?


Fugger

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Сравнение bmp с getscreen
« Reply #4 on: September 04, 2017, 07:35:07 PM »
Эх, я думал что всё понятно. Видимо это как на 2 языках, а я этого даже не заметил. Да, это онлайн рисовалка. Нет, мне не поиск изображения на экране нужен, а чтобы пиксели из bmp нажимались на экране

tmp~1

  • Освоившийся
  • **
  • Posts: 31
    • View Profile
Re: Сравнение bmp с getscreen
« Reply #5 on: September 04, 2017, 08:03:29 PM »
Как я понимаю задачу (с подсветкой)... :) Так правильно?

Есть к примеру файл "Эталон.bmp".
1. Нужно чтобы Clickermann нашел в этом файле все пиксели нужного цвета и создал список координат. С этим всё. Далее работаем с окном браузера.
2. В окне браузера делаем GETSCREEN.
3. Берем пару координат (x,y) из списка.
4. В буфере анализа определяем цвет пикселя находящегося в этих координатах.
5. Если цвет проверяемого пикселя в буфере анализа, отличается от нужного цвета, то делаем клик в этот пиксель на экране.
//--------------------------------
Повторяем для каждой пары координат (с пункта 3), пока не будет проверен весь список.
Примечание: Нужных цветов может быть несколько.

Fugger

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Сравнение bmp с getscreen
« Reply #6 on: September 04, 2017, 09:40:27 PM »
Я конечно не рассчитывал на такое(в очень хорошем смысле), ты правильно понял.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Сравнение bmp с getscreen
« Reply #7 on: September 04, 2017, 10:06:18 PM »
Простейший скрипт. Исходная картинка находится справа, зона рисования слева. Ищем в зоне (100,100, 300,300) цвет 255 и затем кликаем на 300 пикселов правее. Можно завернуть это все в подпрограмму и посылать её значение цвета по списку через цикл.
Code: (clickermann) [Select]
GETSCREEN
SCANPXL($ARR_SCAN, 100,100, 300,300, 255)
FOR($i=0,$i<ARRSIZE($ARR_SCAN),2)
      LCLICK($ARR_SCAN[$i]+300, $ARR_SCAN[$i+1]) // Клик со смещением по X +300
      WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

HALT

Fugger

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Сравнение bmp с getscreen
« Reply #8 on: September 04, 2017, 11:07:41 PM »
Да, подойти может, но ведь это придётся каждый раз размещать ровно и картинку и рабочее поле, да и капчи там всякие, будут поле двигать..
UPD
Хотя я использую как прототип, может оставлю на всё время, если проблем не будет
UPDUPD
Есть проблемы
« Last Edit: September 05, 2017, 12:14:00 AM by Fugger »