Javascript 无法获取画布中像素的颜色

Javascript 无法获取画布中像素的颜色,javascript,html,canvas,Javascript,Html,Canvas,画布分为两部分。左边是黑色的,右边是白色的。我使用下面的代码来查找特定行中的白色像素,但它不会将任何内容记录到控制台 这是我将画布左半部分变黑的代码 ctx.beginPath(); ctx.rect(0, 0, cw/2, ch); ctx.fillStyle = 'black'; ctx.fill(); 这是我用来获取像素数据的代码: var imgd = ctx.getImageData(0, 300, 600, 2); var pix = imgd.data; var white_co

画布分为两部分。左边是黑色的,右边是白色的。我使用下面的代码来查找特定行中的白色像素,但它不会将任何内容记录到控制台

这是我将画布左半部分变黑的代码

ctx.beginPath();
ctx.rect(0, 0, cw/2, ch);
ctx.fillStyle = 'black';
ctx.fill();
这是我用来获取像素数据的代码:

var imgd = ctx.getImageData(0, 300, 600, 2);
var pix = imgd.data;
var white_count = 0;
for (var i = 0, n = pix.length; i < n; i += 4) {
    var red = pix[i]; // red
    var green = pix[i+1]; // green
    var blue = pix[i+2]; // blue
    console.log(red);
    if(red == 255 && green == 255 && blue == 255) {
        white_count += 1;
    }
}
var-imgd=ctx.getImageData(0,300600,2);
var pix=imgd.data;
var white_计数=0;
对于(变量i=0,n=pix.length;i

至少有几个红色值应该是255,但它们都是0。为什么会这样?这是我的JSFIDLE:

我认为您在
getImageData
维度上做得不对

这是必须的

看看这把小提琴:

console.clear();
var c=document.getElementById('c');
var ctx=c.getContext('2d');
var sizeMod=4;//一个“sqare”是“sizeMod”*“sizeMod”。
c、 宽度=10*sizeMod;
c、 高度=10*sizeMod;
对于(var x=0;x

您可以在创建画布的地方添加代码,这样您就有了一个易于重现的问题示例,以便更容易重现和发现任何可能的问题(可能不是在检测中,而是在获取哪些像素)@Icepickle我在问题中附加了一个JSFIDLE并添加了一些额外的代码。也许我以错误的方式创建画布,但我无法让它在我自己的小提琴上工作。你能看一下吗?:)@NeenaVivek我已经更新了you fiddle来测量我在顶部插入的白色条纹。看一看:谢谢@Emil我以为画布会自动检测使用CSS设置的颜色,但我必须使用JavaScript设置颜色。:)