使用fillRect()填充画布并获取每个像素的颜色将返回带有4个零的数组

时间:2016-01-23 22:02:33

标签: javascript canvas getimagedata

为了直截了当,我制作了两幅画布,里面装满了JSFiddle标志的一部分。问题在于,每当我想用getImageData().data得到每个像素的颜色时,它返回一个空数组,意味着像素是透明的,但事实并非如此。问题代码:

for (i = 0; i < h; i+=scale)
    for (j = 0; j < w; j+=scale) {
        rgba1 = sctx.getImageData(i,j,1,1).data;
        rgba2 = sctx2.getImageData(i,j,1,1).data;
        // logging
        log('x:'+i/5+' | y:'+j/scale+' | '+rgba1);
        log('x:'+i/scale+' | y:'+j/scale+' | '+rgba2,true);
    }

印刷结果:

result

代码的问题是什么? Fiddle here

1 个答案:

答案 0 :(得分:1)

仔细查看您的输出。 您的画布具有横向方向,坐标指示纵向模式。

for (i = 0; i < w; i+=scale)
    for (j = 0; j < h; j+=scale) {