AHK: ImageSearch без файла картинки

AHK: ImageSearch без файла картинки

Может кто-то подумает, что ерундой страдаю, но вот мне интересно, можно ли осуществить такой алгоритм.

Скрипт делает скрин, сохраняет в виде картинки, выполняет действия и ждет, когда эта картинки исчезнет.

Может как-то по другому можно реализовать, но и так работает. У меня вопрос в другом, можно ли избавиться от физического сохранения картинки? Ведь скрин сохраняется в памяти и можно ведь как-то использовать это при поиске?Или для этой цели ImageSearch не подходит?

2 Ответ от Malcev 2017-10-23 20:22:09
  • Malcev
  • Разработчик
  • Неактивен
Re: AHK: ImageSearch без файла картинки

ImageSearch не подходит.

3 Ответ от Vicoriyan 2017-10-23 20:44:21
  • Vicoriyan
  • Участник
  • Неактивен
  • Рейтинг : [ 1 | 2 ]
Re: AHK: ImageSearch без файла картинки

Malcev А как тогда реализовать? Каким способом?

4 Ответ от Malcev 2017-10-23 21:20:21 (изменено: Malcev, 2017-10-23 21:22:40)
  • Malcev
  • Разработчик
  • Неактивен
Re: AHK: ImageSearch без файла картинки

Мы же с вами эту тему вдоль и поперек обсудили.Если вы беретесь за довольно сложные коды с GDI+, то стоит почитать о том как он работает, а не просто спрашивать-копировать-вставлять.Кстати, протестировал - из всех найденных мною Gdip Imagesearch, этот пока самый быстрый:

5 Ответ от Vicoriyan 2017-10-23 22:23:26
  • Vicoriyan
  • Участник
  • Неактивен
  • Рейтинг : [ 1 | 2 ]
Re: AHK: ImageSearch без файла картинки

Malcev Все на английском и сложно понимать. Разбираюсь на примерах, на экспериментах и бывает на методах тыка.

6 Ответ от Malcev 2017-10-24 00:51:17 (изменено: Malcev, 2017-10-24 00:56:25)
  • Malcev
  • Разработчик
  • Неактивен
Re: AHK: ImageSearch без файла картинки

Нашел функции, быстрее чем подобная функция от Tic, более чем в полтора раза быстрее, чем ImageSearch.И в несколько раз быстрее, чем финальная функция автора - (https://github.com/MasterFocus/AutoHotk … mageSearch)Только для 32 бит.https://github.com/MasterFocus/AutoHotk … mageSearch

7 Ответ от KusochekDobra 2017-10-24 15:05:01
  • KusochekDobra
  • Разработчик
  • Неактивен
Re: AHK: ImageSearch без файла картинки

Кстати, поделка от Rseding91, упомянутого в примере выше, позволяет сделать каталог файлов заранее вписанных в код, который можно оформить как подключаемая через "#Include" библиотека и производить сканирование по дескрипторам вписанных таким образом файлов. Это может делать как стандартный способ:

Так и посредством "Gdip_ImageSearch()":

И передавать его в функцию вторым параметром.

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

8 Ответ от Malcev 2017-10-24 16:15:07
  • Malcev
  • Разработчик
  • Неактивен
Re: AHK: ImageSearch без файла картинки

О, а я пропустил это нововведение , что можно в ImageSearch искать HBITMAP.Vicoriyan, тогда можно:

9 Ответ от Vicoriyan 2018-04-14 21:49:01 (изменено: Vicoriyan, 2018-04-14 21:57:54)
  • Vicoriyan
  • Участник
  • Неактивен
  • Рейтинг : [ 1 | 2 ]
Re: AHK: ImageSearch без файла картинки

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

10 Ответ от KusochekDobra 2018-04-14 22:14:49
  • KusochekDobra
  • Разработчик
  • Неактивен
Re: AHK: ImageSearch без файла картинки

Передайте хендл на загруженный в память файл:

11 Ответ от Vicoriyan 2018-04-15 12:48:58
  • Vicoriyan
  • Участник
  • Неактивен
  • Рейтинг : [ 1 | 2 ]
Re: AHK: ImageSearch без файла картинки

KusochekDobra Спасибо, что ответили по моему вопросу. Но как мне вставить сами картинки зашифрованных в BASE64?

12 Ответ от KusochekDobra 2018-04-15 14:53:07
  • KusochekDobra
  • Разработчик
  • Неактивен
Re: AHK: ImageSearch без файла картинки

Самый простой способ - перейти по ссылке в седьмом посте и ознакомиться с материалом, или воспользуйтесь поиском. На форуме должны быть примеры.

13 Ответ от Vicoriyan 2018-04-15 15:37:23
  • Vicoriyan
  • Участник
  • Неактивен
  • Рейтинг : [ 1 | 2 ]
Re: AHK: ImageSearch без файла картинки

Пробовал, но не получается. Все делал по инструкции.

14 Ответ от KusochekDobra 2018-04-15 15:51:38
  • KusochekDobra
  • Разработчик
  • Неактивен
Re: AHK: ImageSearch без файла картинки

Я сейчас в огород, потом по делам. Если никто не поможет за это время, то отвечу самое позднее завтра, примерно в это же время.

15 Ответ от KusochekDobra 2018-04-16 03:27:37 (изменено: KusochekDobra, 2018-04-16 03:28:29)
  • KusochekDobra
  • Разработчик
  • Неактивен
Re: AHK: ImageSearch без файла картинки

Небольшая солянка из забугорных поделок, с которыми можно ознакомиться по ссылкам из секции "Credits":

Обработка выполняется над файлами и файлами в папках, перемещённых в окно сценария.Конвертирует файлы в base64 и генерирует для них код обёрнутый функциями для каждого файла, позволяющий загружать их в память и возвращая указатель.За это отвечает первый чекбокс. Второй, добавляет возможность восстанавливать файл к исходному состоянию, если передать вызову его функции имя и расширение файла, которые он получит в результате.Процесс обработки генерирует файл "*.ahk" в UTF-8, который можно запросто подключить через "#Include". Имя, которое получит результирующий файл зависит от имени первого файла, который был обработан и в первых строках будет содержать закомментированные шаблоны вызовов, перечисленных ниже функций, вида:

Vicoriyan, Вам достаточно покидать нужные картинки на ГУЙ этого скрипта, сохранить в файл и подключить его, или скопипастить из редактируемого поля, в котором его можно предварительно оценить и изменить. Переместите тогда этот текст куда-нибудь к Вашим функциям, я пример шаблона, в раскомментированном виде, куда-нибудь в секцию инициализации. Переменная "Converted_file_name_ext" будет содержать указатель на файл, загруженный в память. Его Вам и следует передать Gdip_CreateBitmapFromHBITMAP(HWND).

📎📎📎📎📎📎📎📎📎📎