diff --git a/src/lib/gif-decoder.js b/src/lib/gif-decoder.js index c6cc50eceba1b029a92ae35814fcb18e467f578b..91466eaa41b4fc7ac3a3176b991365e0c0493611 100644 --- a/src/lib/gif-decoder.js +++ b/src/lib/gif-decoder.js @@ -34,10 +34,6 @@ export default (arrayBuffer, {onFrame, onDone}) => { const dataUrl = canvas.toDataURL(); switch (disposal) { - case 0: - case 1: // Both are "keep previous frame" - previousData = ctx.getImageData(0, 0, canvas.width, canvas.height); - break; case 2: // "Return to background", blank out the current frame ctx.clearRect(x, y, width, height); imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); @@ -46,8 +42,7 @@ export default (arrayBuffer, {onFrame, onDone}) => { imageData = ctx.createImageData(canvas.width, canvas.height); imageData.data.set(previousData.data); break; - default: - // Not defined, treat like do-not-dispose + default: // 0 and 1, as well as 4+ modes = do-not-dispose, so cache frame previousData = ctx.getImageData(0, 0, canvas.width, canvas.height); break;