Skip to content

Instantly share code, notes, and snippets.

@matejaputic
Created March 29, 2016 16:41
Show Gist options
  • Select an option

  • Save matejaputic/3e9eca6f80e2c5ae6c2e9a7ceae9d2c6 to your computer and use it in GitHub Desktop.

Select an option

Save matejaputic/3e9eca6f80e2c5ae6c2e9a7ceae9d2c6 to your computer and use it in GitHub Desktop.
<button type="button" class="btn btn-default" id="save">Save Image</button>
<script>
var a = document.createElement("a");
d3.select("#save").on("click", function() {
var canvas = document.querySelector("canvas"),
context = canvas.getContext("2d");
context.clearRect(0, 0, canvas.width, canvas.height);
var data = d3.select("svg")
.attr("version", 1.1)
.attr("xmlns", "http://www.w3.org/2000/svg")
.node().parentNode.innerHTML;
var DOMURL = window.URL || window.webkitURL || window;
var image = new Image;
var svg = new Blob([data], {type: 'image/svg+xml;charset=utf-8'});
var url = DOMURL.createObjectURL(svg);
image.onload = function() {
context.drawImage(image, 0, 0);
DOMURL.revokeObjectURL(url);
var canvasdata = canvas.toDataURL("image/png");
var pngimg = '<img src="'+canvasdata+'">';
d3.select("#pngdataurl").data(pngimg);
a.download = "sample.png";
a.href = canvasdata;
a.click();
};
image.src = url;
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment