<canvas width="960" height="500"></canvas>
var canvas = document.querySelector("canvas"),
offscreen = document.createElement("canvas"),
context = canvas.getContext("2d"),
offscreenContext = offscreen.getContext("2d"),
width = offscreen.width = canvas.width,
height = offscreen.height = canvas.height,
context.msImageSmoothingEnabled = false;
context.mozImageSmoothingEnabled = false;
context.webkitImageSmoothingEnabled = false;
context.imageSmoothingEnabled = false;
var dx = Math.round(width / grain),
dy = Math.round(height / grain),
context.clearRect(0, 0, width, height);
offscreenContext.clearRect(0, 0, width, height);
offscreenContext.drawImage(img, 0, 0, width, height, 0, 0, dx, dy);
context.drawImage(offscreen, 0, 0, dx, dy, 0, 0, width, height);
if (grain === 64 || grain === 1) {