Save vector to png

https://www.emanueleferonato.com

by DOK_UA

HTML

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <script type="text/javascript">
            function draw() {
                let downloadButton = document.getElementById("download");
                downloadButton.addEventListener("click", function(){
                    let dataURL = canvas.toDataURL("image/png");
                    let win = window.open();
                    win.document.write('<iframe src="' + dataURL  + '" frameborder="0" style="border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;" allowfullscreen></iframe>');
                });
                let reloadButton = document.getElementById("reload");
                reloadButton.addEventListener("click", function(){
                    window.location.reload()
                });
                let mountainData = {
                    width: 500,
                    height: 500,
                    widthVariation: 50,
                    heightVariation: 50,
                    centerVariation: 100
                }
                let canvas = document.createElement("canvas");
                canvas.width = mountainData.width;
                canvas.height = mountainData.height;
                canvas.style.zIndex = 8;
                canvas.style.position = "absolute";
                canvas.style.border = "1px solid";
                canvas.style.backgroundColor = "#57cee4"
                document.body.appendChild(canvas);
                let ctx = canvas.getContext("2d");
                ctx.fillStyle = 'rgba(0, 0, 200, 0.5)';
                let leftMountainBaseX = randomIntInRange(0, mountainData.widthVariation);
                let rightMountainBaseX = mountainData.width - randomIntInRange(0, mountainData.widthVariation);
                let mountainTopY = randomIntInRange(0, mountainData.heightVariation);
                let mountainTopX = (mountainData.width - mountainData.centerVariation) / 2 + randomIntInRange(0,...