【问题标题】:Firefox, Selenium, toDataURL, Uint8ClampedArray and PythonFirefox、Selenium、toDataURL、Uint8ClampedArray 和 Python
【发布时间】:2011-09-24 18:45:49
【问题描述】:

我正在使用 Javascript 访问图像数据。现在我想以最有效的方式通过 Selenium API 将其传递给 Python 进程。

使用 canvas.toDataURL() 方法可以很容易地传递画布数据,但缺点是图像被编码和解码为 PNG,给该过程增加了大量开销。

我只是想知道我是否可以通过 Selenium 将原始数组数据从 Javascript 传递到 Python,这样

  • 以本机格式(无符号整数数据)传递数据

  • 将原始像素数据转换为 base64 编码,以某种 toDataURL() 方式或简单地在 Javascript 中自己进行处理(希望是 JIT 循环)

看起来像 canvasContext.getImageData(0, 0, w, h).data 对象类型是 Uint8ClampedArray。将这些数据转换为可以轻松通过 Selenium 传递给 Python 的某种格式的最佳方法是什么?

Selenium 2.0 RC,任何火狐版本都可以使用。

【问题讨论】:

    标签: javascript python firefox canvas selenium


    【解决方案1】:

    由于您在 Selenium 和浏览器之间通过 getEval 进行的通信是基于字符串的,因此我认为无法从 base64 编码图像数据中逃脱。发送原始二进制数据可能是不可能的。

    您或许可以设计自己的字符串编码方案,但它可能与内置方法一样有效。

    【讨论】:

    • 谢谢。我是这么想的。自定义字符串编码方案的唯一好处是它可以处理原始图像数据并跳过 PNG 编码/解码阶段。
    猜你喜欢
    • 2013-12-25
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 2013-09-14
    • 2016-03-10
    • 1970-01-01
    • 2022-08-14
    相关资源
    最近更新 更多