Должен быть технически автоматизирован, но это далеко не так просто.
Ваш вопрос можно разделить на две части: автономная обработка и автоматизация загрузки.
Автономная обработка
Предполагая, что ваш код обработки изображений полностью в JavaScript-коде браузера (вместо, скажем, модульной программы-узла, вызывающей собственные библиотеки), можно выполнять всю обработку в браузере.
Файл "загружен" может быть прочитан , обработан и загружен без отправки чего-либо на сервер. Обработка может даже происходить в фоновом потоке , поддерживающем отзывчивость пользовательского интерфейса, например, хорошую индикатор выполнения.
Сам код может быть размещен в Интернете с помощью Service Worker или статический html + javascript. Оба могут быть открыты и выполнены в автономном режиме, после посещения или развертывания. (Обратите внимание, что Chrome строго ограничивает статический html, в том числе жесткие ограничения для веб-работников. Google предпочитает держать вещи в сети.)
Автоматизация загрузки
AsКак уже упоминалось выше, файл, выбранный путем ввода файла или помещенный в браузер, может быть прочитан с помощью JavaScript на странице, но я по-прежнему буду называть его действием «загрузки» в традиции.
Chrome имеет некоторые расширения автоматизации,прежде всего Kantu , но они не могут обрабатывать загрузку файлов из-за ограничения безопасности в Chrome .
Так что, если вы хотите автоматизировать выбор файла, вам нужно использоватьвстроенный инструмент автоматизации вне браузера, такой как Kantu XModules , AutoHotkey или SikuliX . Коммерческое решение существует, но с аналогичными ограничениями, учитывая ваши необычные требования, связанные с отсутствием автономного браузера.
AutoHotkey будет сфокусирован на симуляции клавиатуры (откройте браузер, подождите 5 секунд, нажмите вкладку 10 раз, нажмитевведите, подождите 2 секунды, введите имя файла, нажмите клавишу ввода и т. д.) и можно скомпилировать в развертываемый exe-файл.
Sikulix более мощный, но его также сложнеераспространять;только среда выполнения Java больше, чем браузер.
Kantu + XModules - это нечто среднее между ними. Пользователям нужно будет установить расширение для браузера, и его родное расширение, но после того, как все сделано, все происходит в браузере (более или менее).
Все три методавключает в себя симуляцию ввода имени файла, потому что, насколько я знаю, не существует более простого способа его автоматизации в запущенном пользователем (без заголовка) Chrome.
Имя файла изображения может быть передано в качестве параметрав командную строку для AutoHotkey и Sikulix, или сохраняются в файле и читаются сценарием в случае Канту.
Во всех трех случаях автоматизация моделирует пользователя, и реальный пользователь не должен касатьсякомпьютер во время выполнения сценария, или автоматизация сломается.
Как насчет командной строки?
В качестве альтернативы, если ваша цель - автоматизация без развертываниябраузер, вы можете рассмотреть возможность создания программы для командной строки node.js и упаковать ее как exe.
Дистрибутив будет тяжелее, чем скомпилированный AutoHotkey, но естьНамного меньше движущихся частей, и, следовательно, гораздо более надежно:
- Независимо от версии Chrome или наличия модулей XModules.
- Вся обработка происходит в своем собственном процессе, вместо того, чтобы угнать пользователяChrome.
- Может выполняться без заголовка, что очень важно для автоматизации.
- Гибкие параметры командной строки.
Но мне нравится автоматизация браузера, так просто
Подумайте еще раз.
По моему опыту, многие вещи отключат автоматизацию браузера / графического интерфейса:
- Необычное разрешение экрана, масштабирование браузера, масштабирование ОС или последний запоминаемый размер Chrome, который искажает вашу страницу до неузнаваемости.
- Расширения браузера, которые изменяют элементы страницы, такие как блокировщики рекламы.
- IME и другие программы, которые перехватывают ввод с клавиатуры с помощью горячих клавиш.
- Всплывающие программы, такие как антивирус, обновление Windows или вставка компакт-диска.
- Случайные блокировки, спящие режимы, выходы из системы,клавиши, оставленные на клавиатуре, или прерывание питания.
- Или простое обновление Chrome, которое ломает любую из 100 вещей, от которых вы зависите.
Итак, вот ваши причины, почему компьютеравтоматизацию лучше выполнять без головы.
Мой код будет безопасным?
Если вы беспокоитесь о безопасности своего скрипта, не беспокойтесь. В тот момент, когда вы хотите, чтобы обработка происходила на стороне клиента, кот исчезает.
Технически, ваш код защищен авторским правом. Но удачи в обеспечении этого. Если вы хотите, чтобы ваш код не извлекался, не расшифровывался, не отображался безоблачно или что-то еще (кашляло), вам нужно держать его в режиме онлайн, без обработки на стороне клиента.