• 0
  • 0

原生js 保存图片到本地

2020-04-07 780 0 admin 所属分类:Javascript

在HTML中创建一个canvas存放绘制的图片

<canvas id="cavasimg" width="607" height="367"></canvas>

监听触发保存图片的按钮

function saveImg() {
    var canvas = $('canvas');
    if (canvas.length == 0) {
        return alert('请生成图片后再保存');
    }
    var type = 'png'; //你想要什么图片格式 就选什么吧
    var d = canvas[0];
    var imgdata = d.toDataURL(type);
    //2.0 将mime-type改为image/octet-stream,强制让浏览器下载
    var fixtype = function(type) {
        type = type.toLocaleLowerCase().replace(/jpg/i, 'jpeg');
        var r = type.match(/png|jpeg|bmp|gif/)[0];
        return 'image/' + r;
    };
    imgdata = imgdata.replace(fixtype(type), 'image/octet-stream');
    //3.0 将图片保存到本地
    var savaFile = function(data, filename) {
        var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
        save_link.href = data;
        save_link.download = filename;
        var event = document.createEvent('MouseEvents');
        event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        save_link.dispatchEvent(event);
    };
    var filename = '' + new Date().getSeconds() + '.' + type;
    //我想用当前秒是可以解决重名的问题了 不行你就换成毫秒
    savaFile(imgdata, filename);
}


返回顶部