Javascript 未捕获的TypeError:未能对“CanvasRenderingContext2D”执行“getImageData”:提供的双精度值是非有限的

Javascript 未捕获的TypeError:未能对“CanvasRenderingContext2D”执行“getImageData”:提供的双精度值是非有限的,javascript,html,canvas,Javascript,Html,Canvas,我编写了一些代码从网站的画布上获取数据: var checkPoints = ["+0,+0","+10,+10","+10,+0","+0,+10","-10,-10","-10,+0","+0,-10","+20,+20","+20,+0","+0,+20","-20,-20","-20,+0","+0,-20","+30,+30","+30,+0","+0,+30","-30,-30","-30,+0","+0,-30","+40,+40","+40,+0","+0,+40","-40,-

我编写了一些代码从网站的画布上获取数据:

var checkPoints = ["+0,+0","+10,+10","+10,+0","+0,+10","-10,-10","-10,+0","+0,-10","+20,+20","+20,+0","+0,+20","-20,-20","-20,+0","+0,-20","+30,+30","+30,+0","+0,+30","-30,-30","-30,+0","+0,-30","+40,+40","+40,+0","+0,+40","-40,-40","-40,+0","+0,-40","+40,+40","+40,+0","+0,+40","-40,-40","-40,+0","+0,-40"];
var changePoints = ["600,0","-100,400","-100,300","600,580","-100,1000","1000,300","0,0","600,0","-100,400","-100,300","600,580","-100,1000","1000,300","0,0","600,0","-100,400","-100,300","600,580","-100,1000","1000,300","0,0","600,0","-100,400","-100,300","600,580","-100,1000","1000,300","0,0","600,0","-100,400","-100,300","600,580","-100,1000","1000,300","0,0"];
var checkRGB = [];
var oldCheckRGB = [];
for (i=0; i<checkPoints.length; i++) {
checkRGB.push("");
oldCheckRGB.push("");
}
var mousePos = myCanvas.relMouseCoords(e);
x = mousePos.x;
y = mousePos.y;
c = myCanvas.getContext("2d");
for (i=0; i<checkPoints.length; i++) {
    checkX = x+checkPoints[i].split(",")[0];
    checkY = y+checkPoints[i].split(",")[1];
    console.log("CheckX: "+checkX+", CheckY: "+checkY);
    checkRGB[i] = c.getImageData(x+checkX, y+checkY, ID("myCanvas").width, ID("myCanvas").height).data;
    if (checkRGB[i][0]-oldCheckRGB[i][0] > minimumColorChange || checkRGB[i][1]-oldCheckRGB[i][1] > minimumColorChange || checkRGB[i][2]-oldCheckRGB[i][2] > minimumColorChange) {
        xm = changePoints[i].split(",")[0];
        ym = changePoints[i].split(",")[1];
        console.log("XM set: "+xm+", YM set: "+ym);
    }
}
每次移动鼠标时都会调用此代码 我不断地发现错误: canvasTest.js:17未捕获类型错误:未能对“CanvasRenderingContext2D”执行“getImageData”:提供的双精度值是非有限的

我在stack overflow、google等网站上做了一些搜索,没有找到任何关于这个错误或如何修复它的结论


谢谢你的帮助

您正在尝试从字符串数组中添加一个值,而不进行任何强制转换:

 checkX = x+checkPoints[i].split(",")[0];
 checkY = y+checkPoints[i].split(",")[1];
也许你应该使用:

 checkX = x + parseFloat(checkPoints[i].split(",")[0]);
 checkY = y + parseFloat(checkPoints[i].split(",")[1]);

您正在尝试添加字符串数组中的值,而不进行任何强制转换:

 checkX = x+checkPoints[i].split(",")[0];
 checkY = y+checkPoints[i].split(",")[1];
也许你应该使用:

 checkX = x + parseFloat(checkPoints[i].split(",")[0]);
 checkY = y + parseFloat(checkPoints[i].split(",")[1]);

你必须告诉我删除我的第一条评论!我不善于阅读间接指针!你必须告诉我删除我的第一条评论!我不善于阅读间接指针!非常感谢你的帮助!很好!非常感谢你的帮助!很好!