Three.js r67 saving frames

Three.js r67 savinf frames locally as images example

by confile

HTML

<script src="//ajax.googleapis.com/ajax/libs/threejs/r67/three.min.js"></script>

CSS

html, body {
    padding:0px;
    margin:0px;
}
canvas {
    width: 100%;
    height: 100%
}

JavaScript

var camera, scene, renderer;
			var mesh;
			var strDownloadMime = "image/octet-stream";

			init();
			animate();

			function init() {

			    var saveLink = document.createElement('div');
			    saveLink.style.position = 'absolute';
			    saveLink.style.top = '10px';
			    saveLink.style.width = '100%';
			    saveLink.style.color = 'white !important';
			    saveLink.style.textAlign = 'center';
			    saveLink.innerHTML =
			        '<a href="#" id="saveLink">Save Frame</a>';
			    document.body.appendChild(saveLink);
			    document.getElementById("saveLink").addEventListener('click', saveAsImage);
			    renderer = new THREE.WebGLRenderer({
			        preserveDrawingBuffer: true
			    });
			    renderer.setSize(window.innerWidth, window.innerHeight);
			    document.body.appendChild(renderer.domElement);

			    //

			    camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 1, 1000);
			    camera.position.z = 400;

			    scene = new THREE.Scene();

			    var geometry = new THREE.BoxGeometry(200, 200, 200);



			    var material = new THREE.MeshBasicMaterial({
			        color: Math.random() * 0xffffff,
			        opacity: 0.9
			    });

			    mesh = new THREE.Mesh(geometry, material);
			    scene.add(mesh);

			    //

			    window.addEventListener('resize', onWindowResize, false);

			}

			function onWindowResize() {

			    camera.aspect = window.innerWidth / window.innerHeight;
			    camera.updateProjectionMatrix();

			    renderer.setSize(window.innerWidth, window.innerHeight);

			}

			function animate() {

			    requestAnimationFrame(animate);

			    mesh.rotation.x += 0.005;
			    mesh.rotation.y += 0.01;

			    renderer.render(scene, camera);

			}

			function saveAsImage() {
			    var imgData, imgNode;

			    try {
			        var strMime = "image/jpeg";
			        imgData = renderer.domElement.toDataURL(strMime);

			        saveFile(imgData.replace(strMime, strDownloadMime),"test.jpg");

			   ...