1

画像を読み込んで、そこからピクセル値を取得し、後で使用できるように配列に保存しようとしています。この理由は、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);
}

ただし、これにより次のエラーが発生します。キャンバスがクロスオリジンデータによって汚染されているため、キャンバスから画像データを取得できません。キャッチされないエラー: SECURITY_ERR: DOM 例外 18

私はそれについて読みましたが、私の問題に対する本当の答えは見つかりませんでした。今のところ、これをローカルで実行したいと思います。それは可能ですか?使ってみました;

image.crossOrigin = ''; 

しかし、うまくいきませんでした。

私はこれについて間違った方法で行ったことがありますか?私が望むことを達成するためのより簡単な方法があるのだろうか。

4

0 に答える 0