我想创建一个名为“保存图片”的输入按钮,它可以:
- 截取一个div的屏幕截图
- 要求用户将其“另存为”到计算机中
我已经找到了如何使用html2canvas创建一个div的截图,并在新标签页中打开它,它运行得很完美。
function printDiv2(div)
{
html2canvas((div), {
onrendered: function(canvas) {
var img = canvas.toDataURL();
window.open(img);
}
});
}
然而对于你来说,“Save as”部分是比较难的一部分...我发现一些有趣的话题,因为我在JS(和对象)编码方面还很新,我有点困惑...我想我将不得不使用FileSaver.js并创建一个新的blob http://eligrey.com/blog/post/saving-generated-files-on-the-client-side/
但我不知道如何在我的html2canvas中实现saveAs,如何正确地转换一个新的blob...
function printDiv2(div)
{
html2canvas((div), {
onrendered: function(canvas) {
var img = canvas.toDataURL();
window.open(img);
var blob = new Blob(img, {type: "image/jpeg"});
var filesaver = saveAs(blob, "my image.png");
}
});
}
我还尝试了一些事情,通过提取生成的base64 URL来处理它,但对我来说过于复杂以至于我无法理解每一个细节:
http://bl.ocks.org/nolanlawson/0eac306e4dac2114c752但是能否有人给我一些提示并帮我吗?
canvas.toBlob()
: https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCanvasElement/toBlob - Aral Roca