From b95307b7a32b576d3c7dcb4d1e45947650adc80a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=86=A8=E6=80=81=E4=B9=A6=E7=94=9F?= Date: Wed, 23 Oct 2019 19:10:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A2=9D=E5=A4=96=E5=8F=82?= =?UTF-8?q?=E6=95=B0=EF=BC=8C=E4=BF=9D=E5=AD=98=E5=9B=BE=E7=89=87=E6=97=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6=E5=90=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- canvas2image.js | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/canvas2image.js b/canvas2image.js index 44b10c7..40a491f 100644 --- a/canvas2image.js +++ b/canvas2image.js @@ -43,8 +43,12 @@ var Canvas2Image = function () { return canvas.toDataURL(type); } - function saveFile (strData) { - document.location.href = strData; + function saveFile (strData, name) { + // document.location.href = strData; + var a = document.createElement('a'); + a.href = strData; + a.download = name; + a.click(); } function genImage(strData) { @@ -201,14 +205,16 @@ var Canvas2Image = function () { if ($support.canvas && $support.dataURL) { if (typeof canvas == "string") { canvas = document.getElementById(canvas); } if (type == undefined) { type = 'png'; } + var name = canvas.getAttribute('data-name'); + if (name == undefined) { name = "download." + type; } else { name += "." + type; } type = fixType(type); if (/bmp/.test(type)) { var data = getImageData(scaleCanvas(canvas, width, height)); var strData = genBitmapImage(data); - saveFile(makeURI(strData, downloadMime)); + saveFile(makeURI(strData, downloadMime), name); } else { var strData = getDataURL(canvas, type, width, height); - saveFile(strData.replace(type, downloadMime)); + saveFile(strData.replace(type, downloadMime), name); } } }; @@ -234,17 +240,17 @@ var Canvas2Image = function () { return { saveAsImage: saveAsImage, - saveAsPNG: function (canvas, width, height) { - return saveAsImage(canvas, width, height, 'png'); + saveAsPNG: function (canvas, width, height, name) { + return saveAsImage(canvas, width, height, 'png', name); }, - saveAsJPEG: function (canvas, width, height) { - return saveAsImage(canvas, width, height, 'jpeg'); + saveAsJPEG: function (canvas, width, height, name) { + return saveAsImage(canvas, width, height, 'jpeg', name); }, - saveAsGIF: function (canvas, width, height) { - return saveAsImage(canvas, width, height, 'gif'); + saveAsGIF: function (canvas, width, height, name) { + return saveAsImage(canvas, width, height, 'gif', name); }, - saveAsBMP: function (canvas, width, height) { - return saveAsImage(canvas, width, height, 'bmp'); + saveAsBMP: function (canvas, width, height, name) { + return saveAsImage(canvas, width, height, 'bmp', name); }, convertToImage: convertToImage,