整理文档,搜刮出一个js实现canvas保存图片为png格式并下载到本地的方法,稍微整理精简一下做下分享。
1.canvas 保存图片
2.下载到本地
rush:js;">
function base64Img2Blob(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 = base64Img2Blob(content); //new Blob([content]);
var evt = document.createEvent("HTMLEvents");
evt.initEvent("click",false,false);//initEvent 不加后两个参数在FF下会报错
aLink.download = fileName;
aLink.href = URL.<a href="https://www.jb51.cc/tag/createObjectURL/" target="_blank" class="keywords">createObjectURL</a>(blob);
aLink.<a href="https://www.jb51.cc/tag/dis/" target="_blank" class="keywords">dis</a>patchEvent(evt);
}
downloadFile('ship.png',canvas.toDataURL("image/png"));