当我在Firefox中的canvas 2d上下文对象上调用drawImage()函数时,它会抛出IndexSizeError,说“索引或大小为负数或大于允许的数量”。根据我的阅读,当指定源图像的边界内未包含的源矩形时,应该会发生这种情况。但这没有意义,因为我正在做的电话是:
var canvas = document.getElementById(...)
var context = canvas.getContext('2d')
...
context.drawImage(this.image, this.data.x, this.data.y, this.data.w, this.data.h,
x - this.data.axRel * w * this.sx, y - this.data.ayRel * h * this.sy,
w * this.sx, h * this.sy)
并将这些参数评估为:
<<a canvas object>>, 2, 2, 512, 512, -3.385562666666668, -6.540000000000001, 10.24, 10.24
源边界为x=2, y=2, width=512, height=512
,源图像/画布的尺寸为516x678。我正在采摘的地区非常适合。
有时会抛出此异常 - 我必须关闭Firefox,重新打开它,导航到我的网页,然后重新加载页面以重现异常 - 但上面的参数和边界会立即打印出来之前和之后异常被抛出,数字正是我所期望的,每次都是相同的。