对于Size问题,我删除了一些svg内容。我希望将svg图像导出为png或任何图像格式以用于报告目的
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
function SaveasImage(){
var myCanvas = document.getElementById('myCanvas');
// get 2D context
var myCanvasContext = myCanvas.getContext('2d');
// Load up our image.
var source = new Image();
var img = document.getElementById('svg1');
source.src = img.svg;
myCanvasContext.drawImage(source,0,0,200,200);
$("#resultImage").attr("src",myCanvas.toDataURL("image/png"));
}
});
</script>
</head>
<body>
<h1>My first SVG</h1>
<canvas id="myCanvas" width="200" height="100"></canvas>
<svg version="1.1" id="svg1" style="font-family:"Lucida Grande",
"Lucida Sans Unicode", Arial, Helvetica, sans-serif;font-size:12px;" xmlns="http://www.w3.org/2000/svg" width="322" height="194"><text x="49" style="color:#606060;cursor:default;font-size:11px;fill:#606060;width:96px;text-overflow:clip;" text-anchor="end" transform="translate(0,0)" y="76" opacity="1">50</text><text x="49" style="color:#606060;cursor:default;font-size:11px;fill:#606060;width:96px;text-overflow:clip;" text-anchor="end" transform="translate(0,0)" y="13" opacity="1">100</text></g></svg>
<input type="button" onclick="SaveasImage()" value="exportasimage" />
</body>
</html>
答案 0 :(得分:1)
我们的方法存在一些问题。我删除了JQ&amp;简化了SVG本身。首先,您需要在设置源之前使用onload事件设置img发生的情况。完成后,src必须设置一个URI,通常这是一个链接,但我们可以使用
data:image/svg+xml;base64
所以这是一个版本,它会记录你的<svg>
为.png(在base64中)。
<html>
<head>
<script>
window.onload = function() {
var myCanvas = document.getElementById('myCanvas');
var myCanvasContext = myCanvas.getContext('2d');
var source = new Image();
var img = document.getElementById('svg1');
source.onload = function() {
myCanvasContext.drawImage(source,0,0,200,200);
document.getElementById('output').src = myCanvas.toDataURL("image/png");
console.log(myCanvas.toDataURL("image/png"));
}
source.src = 'data:image/svg+xml;base64,'+btoa(img.outerHTML);
}
</script>
</script>
</head>
<body>
<h1>My first SVG</h1>
<canvas id="myCanvas" width="200" height="100"></canvas>
<svg version="1.1" id="svg1" xmlns="http://www.w3.org/2000/svg" width="322" height="194">
<text x="49" text-anchor="end" transform="translate(0,0)" y="76" opacity="1">50</text>
<text x="49" text-anchor="end" transform="translate(0,0)" y="13" opacity="1">100</text>
</svg>
<img id="output" />
<input type="button" onclick="SaveasImage()" value="exportasimage" />
</body>
</html>