全图不来,部分来了
full image is not coming, partial come
我使用此代码获取图像格式的图表,但图表未满,只有一部分。
你能帮帮我吗,谢谢
function genrateImage(){
alert("genrateImage");
var svgs = document.getElementsByTagName("svg");
var totalHeight = svgs[0].getBoundingClientRect().height;
var totalWidth = svgs[0].getBoundingClientRect().width;
var c = document.createElement("canvas");
c.setAttribute("height",totalHeight);
c.setAttribute("width",totalWidth);
ctx = c.getContext("2d");
var marginX = 10, marginY = 10;
var image64 ;
for(i=0;i<svgs.length;i++){
var xml = new XMLSerializer().serializeToString(svgs[i]);
var svg64 = btoa(xml);
var b64Start = 'data:image/svg+xml;base64,';
image64 = b64Start + svg64;
var svgSize = svgs[i].getBoundingClientRect();
var img= document.createElement("img");
img.setAttribute("src", image64);
ctx.drawImage(img, marginX, marginY);
ctx.save();
marginX += svgSize.width + 20;
};
var imgsrc = c.toDataURL("image/png");
var a = document.createElement("a");
a.download = "Sample.png";
a.href = imgsrc;
a.click();
a.remove();
}
我使用 dom2image.js 它会给出正确的结果
我使用此代码获取图像格式的图表,但图表未满,只有一部分。 你能帮帮我吗,谢谢
function genrateImage(){
alert("genrateImage");
var svgs = document.getElementsByTagName("svg");
var totalHeight = svgs[0].getBoundingClientRect().height;
var totalWidth = svgs[0].getBoundingClientRect().width;
var c = document.createElement("canvas");
c.setAttribute("height",totalHeight);
c.setAttribute("width",totalWidth);
ctx = c.getContext("2d");
var marginX = 10, marginY = 10;
var image64 ;
for(i=0;i<svgs.length;i++){
var xml = new XMLSerializer().serializeToString(svgs[i]);
var svg64 = btoa(xml);
var b64Start = 'data:image/svg+xml;base64,';
image64 = b64Start + svg64;
var svgSize = svgs[i].getBoundingClientRect();
var img= document.createElement("img");
img.setAttribute("src", image64);
ctx.drawImage(img, marginX, marginY);
ctx.save();
marginX += svgSize.width + 20;
};
var imgsrc = c.toDataURL("image/png");
var a = document.createElement("a");
a.download = "Sample.png";
a.href = imgsrc;
a.click();
a.remove();
}
我使用 dom2image.js 它会给出正确的结果