PrintScreen JavaScript

by Elvis de Freitas

JavaScript

function printScreen(){
  let canvas = document.createElement("canvas");

  navigator.mediaDevices.getDisplayMedia().then(stream =>  {
    // Grab frame from stream
    let track = stream.getVideoTracks()[0];
    let capture = new ImageCapture(track);
    capture.grabFrame().then(bitmap => 
    {
        // Stop sharing
        track.stop();

        // Draw the bitmap to canvas
        canvas.width = bitmap.width;
        canvas.height = bitmap.height;
        canvas.getContext('2d').drawImage(bitmap, 0, 0);

        // Grab blob from canvas
        canvas.toBlob(blob => {

          console.log('output blob:', blob);
          var blobUrl = URL.createObjectURL(blob);

          var link = document.createElement("a");
          link.href = blobUrl;
          link.download = "image.jpg";
          link.innerText = "Click here to download the file";
          document.body.appendChild(link);
          document.querySelector('a').click();
        });
    });
  })
  .catch(e => console.log(e));
}

printScreen();