Firefox, Selenium, toDataURL, Uint8ClampedArray и Python - PullRequest
3 голосов
/ 29 июня 2011

Я получаю доступ к данным изображения на Javascript. Теперь я хотел бы передать это процессу Python через Selenium API наиболее эффективным способом.

Передача данных холста легко выполняется с помощью метода canvas.toDataURL (), но недостатком является то, что изображение кодируется и декодируется в PNG, что существенно увеличивает издержки процесса.

Мне просто интересно, смогу ли я передать необработанные данные массива из Javascript в Python через Selenium, чтобы

  • Либо передача данных в собственном формате (целочисленные данные без знака)

  • Преобразование необработанных данных пикселей в кодировку base64, в некотором роде, в метод toDataURL () или просто самостоятельную обработку в Javascript (надеюсь, цикл JIT)

Похоже, что тип объекта canvasContext.getImageData (0, 0, w, h) .data - Uint8ClampedArray. Как лучше всего преобразовать эти данные в какой-нибудь формат, который можно легко передать через Selenium в Python?

Selenium 2.0 RC, можно использовать любую версию Firefox.

1 Ответ

1 голос
/ 29 июня 2011

Поскольку ваше взаимодействие между Selenium и браузером через getEval основано на строках, я думаю, что нет выхода из base64, кодирующего данные изображения. отправка необработанных двоичных данных, вероятно, будет невозможна.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...