如何利用JavaScript保存浏览器div内容为图片
方法一:使用html2canvas插件 首先,我们可以通过使用html2canvas插件来实现将div转换为canvas的功能。这个插件非常强大且易于使用。 首先,你需要从git或其他地方下载并引
方法一:使用html2canvas插件
首先,我们可以通过使用html2canvas插件来实现将div转换为canvas的功能。这个插件非常强大且易于使用。
首先,你需要从git或其他地方下载并引入html2canvas插件。
然后,在你的代码中加入以下核心代码:
html2canvas($("#content"), {
onrendered: function(canvas) {
(canvas);
}
});
以上代码会将div元素渲染为canvas,并将其添加到页面中。
方法二:将DOM转换成SVG再转换成Canvas
另一种方法是直接将DOM转换成SVG,然后再将SVG转换成Canvas。这里只提供一个思路,并给出示例代码。
首先,你需要在页面上添加一个简单的div:
lt;div id"content" style"width:150px;height:150px;border:1px lightblue solid"gt;
lt;spangt;Hello worldlt;/spangt;
lt;brgt;
lt;spangt;lt;h2gt;Are you hear me?!lt;/h2gt;lt;/spangt;
lt;/divgt;
然后,你需要添加一个保存按钮:
lt;button onclick"saveImage()"gt;Savelt;/buttongt;
接下来,在JavaScript代码中定义一个saveImage函数:
function saveImage() {
const content document.querySelector("#content");
const svg ("", "svg");
const foreignObject ("", "foreignObject");
("width", );
("height", );
("width", "100%");
("height", "100%");
((true));
(foreignObject);
const canvas ("canvas");
canvas.width ;
canvas.height ;
const ctx ("2d");
const data new XMLSerializer().serializeToString(svg);
const DOMURL window.URL || window.webkitURL || window;
const img new Image();
const svgBlob new Blob([data], {type: "image/svg xml;charsetutf-8"});
const url (svgBlob);
function() {
ctx.drawImage(img, 0, 0);
(url);
// 使用canvas2image插件保存为图片
(canvas);
};
url;
}
以上代码会将div转换成SVG,再将SVG转换成Canvas,并最终将Canvas保存为图片。
需要注意的是,这个示例只是提供了一种思路,实际使用时可能还需要根据具体情况进行适当的修改和调整。