¿Cómo subir una captura de pantalla usando html2canvas?

Utilizando html2canvas ¿Cómo puedo guardar una captura de pantalla en un objeto? He estado explorando las demostraciones y veo que la función para generar la captura de pantalla se genera de la siguiente manera:

$(window).ready(function() {
  ('body').html2canvas();       
});

Lo que he intentado hacer es

$(window).ready(function() {
  canvasRecord = $('body').html2canvas(); 
  dataURL = canvasRecord.toDataURL("image/png");
  dataURL = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
  upload(dataURL);

});

Y luego lo paso a miupload() función. El problema que tengo es que no puedo entender dónde se realiza la captura de pantalla enhtml2canvas() biblioteca o qué función lo devuelve. Intenté convertir el objeto de lienzo usandoest respuesta de SO (aunque no estoy seguro de que necesite hacer esto).

Acabo de preguntar unpregunt sobre cómo subir un archivo a imgur, y las respuestas allí (particularmente las de @ bebraw) me ayudan a entender lo que necesito hacer.

Losupload()a función @ es de la ayuda de la API de ejemplo de Imgur:

function upload(file) {
   // file is from a <input> tag or from Drag'n Drop
   // Is the file an image?
   if (!file || !file.type.match(/image.*/)) return;

   // It is!
   // Let's build a FormData object
   var fd = new FormData();
   fd.append("image", file); // Append the file
   fd.append("key", "mykey"); // Get your own key: http://api.imgur.com/

   // Create the XHR (Cross-Domain XHR FTW!!!)
   var xhr = new XMLHttpRequest();
   xhr.open("POST", "http://api.imgur.com/2/upload.json"); // Boooom!
   xhr.onload = function() {
      // Big win!
      // The URL of the image is:
      JSON.parse(xhr.responseText).upload.links.imgur_page;
   }

   // Ok, I don't handle the errors. An exercice for the reader.
   // And now, we send the formdata
   xhr.send(fd);
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta