SVG 이미지를 pg로 변환하여 다운로드하는 방법

D3.jsflowchart.js 등 SVG 출력 이미지를 저장하고 싶은 경우가 많다.
이럴 때 사용하는 자바스크립트입니다.Chrome의 디버그 도구인 console에서 입력하기만 하면 됩니다.

출력 처리


var svg = document.querySelector("svg");
var svgData = new XMLSerializer().serializeToString(svg);
var canvas = document.createElement("canvas");
canvas.width = svg.width.baseVal.value;
canvas.height = svg.height.baseVal.value;

var ctx = canvas.getContext("2d");
var image = new Image;
image.onload = function(){
    ctx.drawImage( image, 0, 0 );
    var a = document.createElement("a");
    a.href = canvas.toDataURL("image/png");
    a.setAttribute("download", "image.png");
    a.dispatchEvent(new MouseEvent("click"));
}
image.src = "data:image/svg+xml;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(svgData))); 

참고 자료

  • D3.js 등에서 출력된svg를 그림으로 표시하는 방법
  • 좋은 웹페이지 즐겨찾기