zoukankan      html  css  js  c++  java
  • 毕业论文—使用js将canvas保存为图片文件,并且自定义文件名

    该文章引用http://blog.csdn.net/qq547276542/article/details/51906741

    1、从canvas中直接提取图片元数据

    // 图片导出为 png 格式
    var type = 'png';
    var imgData = canvas.toDataURL(type);

    上面的代码得到的数据格式为:data:image/png;base64,.....

    2、将mime-type改为image/octet-stream,强制让浏览器直接download

    /**
     * 获取mimeType
     * @param  {String} type the old mime-type
     * @return the new mime-type
     */
    var _fixType = function(type) {
        type = type.toLowerCase().replace(/jpg/i, 'jpeg');
        var r = type.match(/png|jpeg|bmp|gif/)[0];
        return 'image/' + r;
    };
       
    // 加工image data,替换mime type
    imgData = imgData.replace(_fixType(type),'image/octet-stream');

    上面这个代码得到的数据格式为:data:image/octet-stream;base64,.....

    3、图片download到本地

    /**
     * 在本地进行文件保存
     * @param  {String} data     要保存到本地的图片数据
     * @param  {String} filename 文件名
     */
    var saveFile = 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'truefalse, window, 0, 0, 0, 0, 0, falsefalsefalsefalse, 0, null);
        save_link.dispatchEvent(event);
    };
       
    // 下载后的问题名
    var filename = 'baidufe_' + (new Date()).getTime() + '.' + type;
    // download
    saveFile(imgData,filename);
  • 相关阅读:
    checkbox的问题整理
    通过阅读ASP.NET MVC5 框架解密 路由的一点心得
    用JS实现避免重复加载相同js文件
    如何给一个网站设置子网站
    Linux环境下Python的安装过程
    linux下更新Python版本并修改默认版本
    【引用】如何读技术类书籍
    专业收藏_资格证书
    ASP.NET单元测试配置文件
    面试收集
  • 原文地址:https://www.cnblogs.com/GoTing/p/6206466.html
Copyright © 2011-2022 走看看