JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://rawgit.com/tsayen/dom-to-image/master/src/dom-to-image.js"></script>
<button id='mydownload'>Download DomToImage</button>
<div id="wrapper">
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADoklEQVRIic1UW2hcRRj+/plzzu7Za3ax1DS1uVgkRJ+8IGgx5s2XIoiJRVt9MRahIoLRQGEzKK1KkYJ4YVsIxtRCslQ0pWJ90CzksepTrdo2jVITrTZpsntyzp49Z34f0tjcmosP6g/DzMPMd/tnBvi/FwP0nwrYMDsDggBdzjU9ZVjiiWB2pjNx8MrvDBABvHS/+AeKNAOkBe6JxI2d2kgcZdUQvS52meCNEtCfL22tI4C/wegrpUn/k2TS3FnSIkeAZrWcYF0Rzdsv9TS9Z0jxmBuEz2Vfu3Rydv/WOrYiX9qGaLnmBHuyBy8dWxrVuhwQwMwgEvjJEEglTDlUyjX1xA5c/lUH1Y6QMZlMyHemu2+7jwDmBbgbbvLUq40P2THxQSRutLhO9cQ19p6OB9GHU3F5yqnoH6sIH8mosbF5J2sScDuk07K9KwjDCzJ0i8k3fvvj5+fTmU2bNx2xE/LxihP+UPIre2xh7ohnrcPOtP9xQo3uXndE7h1btoBZpbNWQUTip2d6mrpv2ZyyY+pCe2nGf1kINNfY0a+FIGt6yn/LAH+0JN41HLyAiFPT2CxN2qU1vRiLSdtz9dWQ9adxw3396qy9PREVH4Zaj8fV6P1Lz69KwO2Qw3eC2hQCAFCA6Mo1dLKQ++KWuAtE8ANd8LzwpInqV/aBy+NQIFLQqxAwncnvNe7de6Tq5urbNJndmvRFaDoHjbNhUP2u5s1fpkq5+jaQ8WTMpGfdIOxKqNG3B9s7REehEK7bQUndvksAx2IRIcGAU9GawTMEGmdgRBKd83XgpsVYHyl4K2EsbDIBQL5vcNvxwaEdAJA4e7EwOV1Jlhyn2fHC3YB+F8D3IGSI8IydkocNogdIwTvx2ecP5vsGt91UeD6fNwGgt3/g0NAXw6yUWvWGXVENt07tb3jUUfV3M0CnTg9zb//AoYVYAGDMLyYmJhgAGCj7s+WqUkq7ucbOaMra55SDAIAFgBhEBPgELscyRuCVvaMEfFtwylUGyguxFkVUW1tLAMDMAmBTKWUEQpoMYTBJyZCCIQkQYBKREKJGQ9QFIpJVShkENufO3sBa0QERsR9yqJQKFPA+5sYapXC8MBQSES918DfBPCsRrFQ6LXv7B86AOSJIC2Ysb9v1z0az0CCqpNJp6VVc66YOMpnM3OMI+HzFc0cA2ExChxB6xctMN2YCo+K5Iwj4/CKsf6OWaVNKCbS2ChSLG0NqbQWKRa2UWqT+L8H8novr0M9+AAAAAElFTkSuQmCC"/>
  <div> DUDE IS WORKING</div>
  <img...

CSS

#wrapper{
  background: red;
  color: blue;
}

JavaScript

document.getElementById('mydownload').onclick= function(){
  var wrapper = document.getElementById('wrapper');
  //dom to image
  domtoimage.toSvg(wrapper).then(function (svgDataUrl) {
  //download function    
  downloadPNGFromAnyImageSrc(svgDataUrl);
  });
}
function downloadPNGFromAnyImageSrc(src)
{
  //recreate the image with src recieved
  var img = new Image;
  //when image loaded (to know width and height)
  img.onload = function(){
    //drow image inside a canvas
    var canvas = convertImageToCanvas(img);
    //get image/png from convas
    var pngImage =  convertCanvasToImage(canvas);
    //download
    var anchor = document.createElement('A');
    anchor.setAttribute('href', pngImage.src);
    anchor.setAttribute('download', 'image.png');
    anchor.click();
  };
  img.src = src;


	// Converts image to canvas; returns new canvas element
  function convertImageToCanvas(image) {
        var canvas = document.createElement("canvas");
        canvas.width = image.width;
        canvas.height = image.height;
        canvas.getContext("2d").drawImage(image, 0, 0);
        return canvas;
    }
    
    
    // Converts canvas to an image
    function convertCanvasToImage(canvas) {
        var image = new Image();
        image.src = canvas.toDataURL("image/png");
        return image;
    }
}