坦率地说,我制作了两个画布,其中填充了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);
    }


打印结果:

javascript - 用fillRect()填充 Canvas 并获取每个像素的颜色将返回带有4个零的数组-LMLPHP

代码有什么问题? Fiddle here

最佳答案

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

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

关于javascript - 用fillRect()填充 Canvas 并获取每个像素的颜色将返回带有4个零的数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34969417/

10-13 09:38