JS - получить ImageData через ajax
Я использую веб-работника, который выполняет некоторую обработку изображений в непрерывном потоке изображений. В настоящее время мне нужно создать новое изображение, поместить его на холст, а затем отправить данные изображения веб-работнику:
window.img = new Image();
img.onload = imageOnLoad;
img.src = "image.png";
function imageOnLoad()
{
// canvas.display.context.drawImage(this, 0, 0);
imData = getDataFromImage(this);
asmWorker.postMessage({"data": imData});
}
function getDataFromImage( img ) {
// Get image data from specified canvas
canvas.display.context.drawImage(img,0,0)
var height = canvas.display.height;
var width = canvas.display.width;
var nBytes = height * width * 4;
var pixels = canvas.display.context.getImageData(0, 0, width, height);
var imData = { width: width, height: height, data: pixels.data.buffer };
return pixels;
}
Тем не менее, я хотел бы получить изображения от самого веб-работника; поэтому я не могу использовать холст и использовать Image
возражать, как я делаю сейчас. Какой хороший способ сделать это?
Единственный способ получить изображения по сети от веб-работника - выполнить запрос XMLHTTPRequest. Я попробовал предложения из этого ответа, но кажется, что они только позволяют мне создавать Uint8Array
или же Blob
объекты. Я получаю ошибки всякий раз, когда пытаюсь преобразовать их в Uint8ClampedArray
или же ImageData
объекты.
Как преобразовать изображение, полученное из AJAX, в ImageData
объект?