ピクセルカラーをイメージからサンプリングする必要がありますが、正しく取得できないようです。イメージをロードしてオフスクリーンのキャンバスに描画してから、ピクセルカラーをサンプリングしようとしますが、私は常に0値を取得します。オフスクリーンキャンバスに描画されたイメージピクセルの色をサンプリングする際の問題
マイコード:
// Create canvas and set context
var canvas = document.createElement('canvas');
canvas.width = 8;
canvas.width = 8;
var context = canvas.getContext('2d');
// Setup image
var image = new Image();
image.src = 'img.png';
image.onload = function(){
context.drawImage(image, 0, 0);
}
// Sample a random pixel from the canvas
var x = Math.floor(Math.random()*8);
var y = Math.floor(Math.random()*8);
var pixelInfo = context.getImageData(x,y,1,1);
var rgbaVal = pixelInfo.data;
alert('Image: '+image.src+'\n\nR: '+rgbaVal[0]+'\nG: '+rgbaVal[1]+'\nB: '+rgbaVal[2]+'\nA: '+rgbaVal[3]+'\n\nCoords: '+x+', '+y);
私はエラーを取得していないと私は、画面上のキャンバスに画像を描画しようとすると、画像が正しく描画します。私は問題を見つけることができません
しかし、私は.onloadを削除し、ちょうど画像描画しても(context.drawImage(イメージ、0、0);)キャンバスに私はまだ同じ結果を得ます。私は、実際にイメージをキャンバスに正しく描いていないと私に伝えます。 –
オンロードを削除しないで、代わりにオンロードのピクセルカラーを取得してください。 – TJHeuvel
さて、その作業は、コードlocalyを実行していない間だけです。回避策はありますか(起動時にブラウザの引数を設定する必要はありません)? –