Javascript: Как загрузить изображение, получить его imageData и сохранить его в массиве?

Я пытаюсь загрузить изображение, извлечь из него значения пикселей и сохранить их в массиве для последующего использования. Причина этого заключается в том, что я кодирую raycaster(механизм "поддельного 3d"), где я хочу рисовать стены в виде столбцов на экране со значениями пикселей, взятыми из текстурного изображения, загруженного ранее.

Это код, который я сейчас использую:

var imgwidth;
var imgheight;

var wallSprite1 = new Image();
wallSprite1.src = "textures/bricks_tile.gif"
if(wallSprite1.complete) findHHandWW();
else wallSprite1.onload = findHHandWW;

function findHHandWW() {
imgwidth = this.width;
imgheight = this.height;
getImageData(this);
return true;
}

function getImageData(img) {
var tempcanvas = document.createElement('canvas');
tempcanvas.height = imgwidth;
tempcanvas.width = imgheight;
var tempcontext = tempcanvas.getContext("2d");
tempcontext.drawImage(img,0,0);
wallData = tempcontext.getImageData(0, 0, imgwidth, imgheight);
}

Тем не менее, это дает мне следующую ошибку: Невозможно получить данные изображения из холста, потому что холст был испорчен данными из разных источников. Uncaught Error: SECURITY_ERR: исключение DOM 18

Я читал об этом и не нашел никакого реального ответа на мою проблему. Я хочу запустить это локально, пока. Это вообще возможно? Я пытался использовать;

image.crossOrigin = ''; 

но это не сработало.

Я поступил об этом неправильно? Интересно, есть ли более простой способ выполнить то, что я хочу.

0 ответов

Другие вопросы по тегам