javascript - Firefox、Selenium、toDataURL、Uint8ClampedArray 和 Python

标签 javascript python firefox canvas selenium

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

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

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

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

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

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

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

最佳答案

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

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

关于javascript - Firefox、Selenium、toDataURL、Uint8ClampedArray 和 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6514812/

相关文章:

python - Python 3.3 : invalid syntax error [closed]

python - 在 Python 中按给定列表对字典进行排序

python - 如何使用 gensim 在维基百科页面上训练 Word2Vec 模型?

javascript - 为什么 Firefox 和其他浏览器在计算哪个数字更大时表现相反?

javascript - JS 中是否有删除使用过的函数或变量的内存明智点?

javascript - 在使用 Javascript 进行鼠标悬停时,我有一个单独的 div 更改颜色但我需要在使用后重置该功能?

javascript - ReactJS - 如何获得整个渲染树

javascript - 将 "Vanilla"Javascript 库加载到 Node.js 中

css - :first-letter having difficulty in Firefox

firefox - 将火狐降级到8