Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: lojjjol on November 19, 2018, 04:20:13 PM

Title: Запись картинки в массив и последующее ее сравнение.
Post by: lojjjol on November 19, 2018, 04:20:13 PM
Можно ли сделать снимок участка экрана и записать его в массив, чтоб потом этот массив сравнивать с другими участками?
Сохранять кусочек скриншота на диск - не вариант. Именно нужно сделанный снимок запихивать в переменную/массив.

Реально ли вообще такое и как осуществить?
Заранее благодарен за ответ.
Title: Re: Запись картинки в массив и последующее ее сравнение.
Post by: Vint on November 19, 2018, 05:27:41 PM
В переменную нельзя. Только через сохранение изображения.

И не имеет смысла, т.к. функций поиска с массивом данных в переменной (картинкой) у нас нет.
Title: Re: Запись картинки в массив и последующее ее сравнение.
Post by: Oraven on November 19, 2018, 06:41:05 PM
Все куда проще.

Функцией SCREENSHOTFIX сохраняем снимок в файл с определенным именем, при повторных сохранениях файл будет переписываться.
Code: (clickermann) [Select]
GETSCREEN
SCREENSHOTFIX(100,100, 150,150, "Image1.bmp", 0)

Затем ищем картинку где нужно.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Image1.bmp", -1, 100) // Потом ищем его
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF
Title: Re: Запись картинки в массив и последующее ее сравнение.
Post by: Qwerry on November 19, 2018, 07:14:34 PM
Можно ли сделать снимок участка экрана и записать его в массив, чтоб потом этот массив сравнивать с другими участками?
Сохранять кусочек скриншота на диск - не вариант. Именно нужно сделанный снимок запихивать в переменную/массив.

Реально ли вообще такое и как осуществить?
Заранее благодарен за ответ.

Ну как вариант, можно записать в массив хешсумму и сравнивать ее с хешсуммами других участков экрана (но тут должны быть точные координаты). А что именно делать планируете?
Title: Re: Запись картинки в массив и последующее ее сравнение.
Post by: lojjjol on November 19, 2018, 07:40:12 PM
То, что я "умышленно отказываюсь понимать", во-первых, утверждение изначально ложное.
Во-вторых, прискорбно, что вы, опытный пользователь данного софта, не понимаете одной простой вещи:
Не все пользователи данного кликера обязаны со старту, в первые дни использования, осознать весь функционал и программные возможности рассматриваемой среды разработки.

Вариант с подсчетом контрольной суммы пикселей решает задачу намного проще, чем попытки запихивания целого изображения в массив, верно. До поднятия этой темы я не догадывался, что такая функция есть и как она работает.
Исходя из этого выплыло использование ограничивающего и конкретизирующего "Именно...".

Подсказка была как раз, но то как вы это донесли - так себе.
А так, спасибо, данный вопрос я для себя решил.

Итог:
Если в скрипте нужна функция сравнения участков изображения на разность (не совпадение) или, сказать точнее, детектирование изменения изображения на экране, на базовом уровне это можно осуществить с помощью контрольных сумм, например PXLXOR и PXLXСRС..

Думаю, такая формулировка ответа может быть полезна для остальных новых пользователей форума и софта в целом.

В переменную нельзя.
Почему нельзя?
 Можно хоть в переменную, хоть в массив, но  практический смысл сего действа автор темы умышленно отказывается понимать, ибо способа " чтоб потом этот массив сравнивать с другими участками" у него явно нет.
Title: Re: Запись картинки в массив и последующее ее сравнение.
Post by: lojjjol on November 19, 2018, 07:42:11 PM
Да, наверняка лучший из вариантов.
Спасибо)

Можно ли сделать снимок участка экрана и записать его в массив, чтоб потом этот массив сравнивать с другими участками?
Сохранять кусочек скриншота на диск - не вариант. Именно нужно сделанный снимок запихивать в переменную/массив.

Реально ли вообще такое и как осуществить?
Заранее благодарен за ответ.

Ну как вариант, можно записать в массив хешсумму и сравнивать ее с хешсуммами других участков экрана (но тут должны быть точные координаты). А что именно делать планируете?
Title: Re: Запись картинки в массив и последующее ее сравнение.
Post by: lojjjol on November 19, 2018, 07:45:47 PM
Спасибо, наверняка из за непонятной формулировки вопроса было трудно понять, для каких целей это нужно было. Лучшим из вариантов оказался вариант использования контрольных сумм. Но еще раз спасибо за внимание к теме )

Все куда проще.

Функцией SCREENSHOTFIX сохраняем снимок в файл с определенным именем, при повторных сохранениях файл будет переписываться.
Code: (clickermann) [Select]
GETSCREEN
SCREENSHOTFIX(100,100, 150,150, "Image1.bmp", 0)

Затем ищем картинку где нужно.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Image1.bmp", -1, 100) // Потом ищем его
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF
Title: Re: Запись картинки в массив и последующее ее сравнение.
Post by: lojjjol on November 19, 2018, 07:48:07 PM
Верно. Спасибо за ответ )
Удовлетворительный вариант решения проблемы - через контрольные суммы.

В переменные записываем контрольные суммы и их сравниваем.

В переменную нельзя. Только через сохранение изображения.

И не имеет смысла, т.к. функций поиска с массивом данных в переменной (картинкой) у нас нет.