加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
uploadTest.html 1.46 KB
一键复制 编辑 原始数据 按行查看 历史
冥冥框框 提交于 2021-06-02 18:28 . html5
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>canvas实现下载</title>
</head>
<body>
<canvas id="myCanvas" width="200" height="100">
您的浏览器不支持 HTML5 canvas 标签。</canvas>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.moveTo(0, 0);
ctx.lineTo(200, 100);
ctx.stroke();
var image = c.toDataURL("image/png");
console.log(image) /* base64 */
// document.write('<img src="'+image+'" />');
/* base64转blob对象 */
function dataURItoBlob(code) {
var parts = code.split(';base64,');
var contentType = parts[0].split(':')[1];
var raw = window.atob(parts[1]);
var rawLength = raw.length;
var uInt8Array = new Uint8Array(rawLength);
for (var i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], { type: contentType });
}
function downloadFile(fileName, content) {
var aLink = document.createElement('a');
// var blob = new Blob([content]);
var blob = dataURItoBlob(content);
var evt = document.createEvent("MouseEvents");
evt.initEvent("click", false, false);//initEvent 不加后两个参数在FF下会报错
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.dispatchEvent(evt);
}
downloadFile('aaa.png', image);
</script>
</body>
</html>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化