Phương thức putImageData() đặt dữ liệu hình ảnh lên canvas. Để tạo hoạt ảnh, chúng ta tạo một đối tượng ImageData có thể tái sử dụng bên ngoài vòng lặp chính:
var ct = c.getContext("2d", {alpha: false}); // context không có kênh alpha
var a = ct.createImageData(c.width, c.height);
var buffer = new Uint32Array(a.data.buffer);
function loop() {
noise(ct);
requestAnimationFrame(loop);
})();
function noise(ct) {
var l = buffer.length - 1;
while(l--) buffer[l] = Math.random() < 0.5 ? 0 : -1 >>> 0;
ct.putImageData(a, 0, 0);
}