このエラーのもう 1 つの原因は、ソース イメージのサイズが大きすぎることです。それらは実際の画像の寸法を超えています。これが発生すると、IE でこのエラーが表示されますが、Chrome や Firefox では表示されません。
150x150 の画像があるとします。
var imageElement = ...;
次に、より大きなソース ディメンションを使用して描画しようとすると、次のようになります。
var sourceX = 0;
var sourceY = 0;
var sourceWidth = 200; // Too big!
var sourceHeight = 200; // Too big!
canvasContext.drawImage(imageElement,
sourceX, sourceY, sourceWidth, sourceHeight, // Too big! Will throw INDEX_SIZE_ERR
destX, destY, destWidth, destHeight);
これにより、IE で INDEX_SIZE_ERR がスローされます。(この記事の執筆時点で最新の IE は IE11 です。)
修正は、単にソース ディメンションを制約することです。
var sourceWidth = Math.min(200, imageElement.naturalWidth);
var sourceHeight = Math.min(200, imageElement.naturalHeight);
malloc4k の答えはこれをほのめかしましたが、彼は image.width がゼロだったからだと示唆しました。画像の幅がゼロであることがIEのエラーの原因であるとは限らないため、この新しい回答を追加しました。