【发布时间】:2022-04-30 15:33:55
【问题描述】:
我正在尝试设置画布上所有像素的颜色。我很确定我知道它是如何工作的:canvas.getContext("2d").getImageData.data 中的前 4 个值是指第一个像素的 r、g、b 和 a,第二个 4 是指第二个像素,依此类推。我想知道这段代码有什么问题:
function draw()
{
var cnvs = document.getElementById("CanvasFlynn"); //Assume it's 2x2 pixels
var cont = cnvs.getContext("2d");
var imdt = cont.getImageData(0,0,2,2);
var r = [ 255 , 0 , 0 , 255 ];
var g = [ 0 , 255 , 0 , 255 ];
var b = [ 0 , 0 , 255 , 255 ];
var a = [ 1 , 1 , 1 , 1 ];
var index = 0;
for ( var i = 0 ; i < imdt.data.length ; i++ )
{
index = 4*i;
imdt.data[index] = r[i];
imdt.data[index+1] = g[i];
imdt.data[index+2] = b[i];
imdt.data[index+3] = a[i];
}
}
如果有人能告诉我为什么这不会改变画布的像素颜色,那就太棒了(我实际上并没有使用 2x2 的卡瓦,这只是作为示例)。
【问题讨论】:
标签: javascript html canvas pixels