Firefox、Selenium、toDataURL、Uint8ClampedArray和Python
我正在用JavaScript处理图像数据,现在我想通过Selenium API把这些数据传给Python,尽量做到高效。
用canvas.toDataURL()方法传递画布数据很简单,但缺点是图像会被编码和解码成PNG格式,这样会增加处理的负担。
我在想,能不能直接把JavaScript中的原始数组数据通过Selenium传给Python,这样可以:
直接传递原生格式的数据(无符号整数数据)
把原始像素数据转换成base64编码,像toDataURL()那样,或者干脆在JavaScript中自己处理(希望能用JIT优化的循环)
看起来canvasContext.getImageData(0, 0, w, h).data的对象类型是Uint8ClampedArray。有什么好的方法可以把这些数据转换成可以通过Selenium轻松传递给Python的格式吗?
使用Selenium 2.0 RC,任何版本的Firefox都可以。
1 个回答
1
因为你在使用Selenium和浏览器之间的通信时,是通过字符串来进行的,所以我觉得你必须把图片数据转换成base64编码。直接发送原始的二进制数据可能是不行的。
你可以尝试自己设计一种字符串编码的方法,但效果可能和内置的方法差不多。