1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
function saveAsPng(canvasOb, name) { if(name == null || name == "") { name = "img"; } var type = "image/png"; var imgData = canvasOb.toDataURL({format: type}); var base64Str = imgData.substr(22, imgData.length); var blob = base64ToBlob(base64Str, type); downloadByBlob(blob, name + "png"); }
function base64ToBlob(b64data, type) { var byteCharacters = atob(b64data); var byteArrays = []; for (var offset = 0; offset < byteCharacters.length; offset += 512) { var slice = byteCharacters.slice(offset, offset + 512); var byteNumbers = []; for (var i = 0; i < slice.length; i++) { byteNumbers.push(slice.charCodeAt(i)); } byteArrays.push(new Uint8Array(byteNumbers)); } var result = new Blob(byteArrays, {type: type}) result = Object.assign(result,{preview: URL.createObjectURL(result)}); return result; }
function downloadByBlob(blob, fileName) { var link = document.createElement("a"); link.download = fileName + ".png"; link.href = URL.createObjectURL(blob); link.click(); }
|