イメージマップを高さマップに変換してキャンバスに表示しようとしています。しかし、私がこれをすると、私がテストしたすべての画像について、奇妙なことが現れます。ここでイメージマップを高さマップに変換しようとしています
は私のコードです:
window.onload = function()
{
\t var canvas = document.getElementById('game');
\t if(!canvas)
\t {
\t \t alert("Impossible de récupérer le canvas.");
\t \t return;
\t }
\t
\t var context = canvas.getContext('2d');
\t if(!context)
\t {
\t \t alert("Impossible de récupérer le contexte du canvas.");
\t \t return; \t \t
\t }
\t
\t var img = new Image();
\t img.src = "noise.png";
\t
\t var size = 250000;
\t var data = new Float32Array(size);
\t var pxlData = new Array(size);
\t for (var i = 0; i < size; i ++) {
data[i] = 0
}
\t
\t for (var i = 0; i < size; i++)
\t {
\t \t pxlData[i] = new Array(4);
\t \t pxlData[i][0] = 0;
\t \t pxlData[i][1] = 0;
\t \t pxlData[i][2] = 0;
\t }
\t
\t img.onload = function()
\t {
\t \t context.drawImage(img, 0, 0);
\t \t
\t \t var imgd = context.getImageData(0, 0, 500, 500);
\t
\t \t context.clearRect(0, 0, canvas.width, canvas.height);
\t \t
\t \t var pix = imgd.data;
\t \t var j=0;
\t \t var x=0;
\t \t var y=0;
\t \t var i=0;
\t \t
\t \t for (var i = 0, n = pix.length; i < n; i += (4)) {
\t \t \t var all = pix[i]+pix[i+1]+pix[i+2];
\t \t \t
\t \t \t pxlData[j][0] = pix[i];
\t \t \t pxlData[j][1] = pix[i+1];
\t \t \t pxlData[j][2] = pix[i+2];
\t \t \t pxlData[j][3] = pix[i+3];
\t \t \t
\t \t \t data[j++] = all/3;
\t \t } \t \t
\t \t
\t \t var alpha;
\t \t
\t \t for(y = 0; y < 500; y++)
\t \t {
\t \t \t for(x = 0; x < 500; x++)
\t \t \t {
\t \t \t \t if(data[x * y] <= 100){
\t \t \t \t \t context.fillStyle = "blue";
\t \t \t \t }else if(data[x * y] >= 100){
\t \t \t \t \t context.fillStyle = "green";
\t \t \t \t }
\t \t \t \t //context.fillStyle = 'rgba('+ data[x * y] +', '+ data[x * y] +', '+ data[x * y] +', 1)';
\t \t \t \t context.fillRect(x, y, 1, 1);
\t \t \t \t
\t \t \t \t // context.fillStyle = 'rgba('+ pxlData[x * y][0] +', '+ pxlData[x * y][1] +', '+ pxlData[x * y][2] +', '+ pxlData[x * y][3] +')';
\t \t \t \t // context.fillRect(x, y, 1, 1);
\t \t \t }
\t \t }
\t };
\t
}
<!DOCTYPE html>
\t <html>
\t \t <head>
\t \t \t <link rel="stylesheet" href="style.css" type="text/css">
\t \t \t <script type="text/javascript" src="game.js"></script>
\t \t \t <title>Génération de terrain</title>
\t \t </head>
\t \t <body>
\t \t \t <canvas id="game" width="500" height ="500">Votre navigateur ne supporte pas les canvas.</canvas>
\t \t </body>
\t </html>
私はそれを実行したとき、それは次のように見ている何が:
あなたはどのような効果を得ようとしていますか? – JonSG