Я хотел бы отправить изображение HTML-холста в модуль NaCl в Google Chrome. На "йот стороне", я следующий код:postMessage ArrayBuffer для собственного клиентского модуля из JavaScript
var NaClModule = .... // NaCl module denoted by <embed> tag
var canvas = .... // canvas element
canvas.addEventListener('click', function() {
var imageData = this.getContext('2d').getImageData(0, 0, this.width, this.height);
NaClModule.postMessage(imageData.data);
});
imageData.data
имеет тип Uint8ClampedArray
на консоли JavaScript. Поэтому я предположил, что модуль NaCl см прошли данные в pp::VarArrayBuffer
Однако модуль NaCl фактически берут передаваемые данные как pp::VarDictionary
с индексом ключ = исходного массива и значение = значение исходного массива (подтверждено pp::Var::DebugString
).
Ожидается ли такое поведение? Если нет, что с моим кодом?
Или, есть ли другой способ передать изображение в модуль NaCl?