2011-06-29 73 views
3

我正在訪問Javascript上的圖像數據。現在我想通過Selenium API以最有效的方式將它傳遞給Python進程。Firefox,Selenium,toDataURL,Uint8ClampedArray和Python

使用canvas.toDataURL()方法可以輕鬆傳遞畫布數據,但缺點是圖像被編碼並解碼爲PNG,從而增加了處理過程的大量開銷。

我想知道如果我可以從Javascript通過Selenium將原始陣列數據到Python,使得

  • 無論是在本機格式傳遞數據(無符號整數數據)

  • 轉換原始像素數據以base64編碼,在某種toDataURL()方式或簡單地做你自己的處理在Javascript中(希望JIT'ed環)

看起來像canvasContext.getImageData(0,0,w,h).data對象類型是Uint8ClampedArray。將這些數據轉換成可以輕鬆通過Selenium到Python的格式的最佳方法是什麼?

Selenium 2.0 RC,可以使用任何Firefox版本。

回答

1

由於您通過getEval在Selenium和瀏覽器之間的通信是基於字符串的,我認爲base64編碼圖像數據沒有任何轉義。發送原始二進制數據可能是不可能的。

你或許可以設計自己的字符串編碼方案,但它可能與內置方法一樣有效。

+0

謝謝。我是這麼想的。自定義字符串編碼方案的唯一收益來自它可以處理原始圖像數據並跳過PNG編碼/解碼階段的事實。 –