js实现canvas保存图片为png格式并下载到本地的方法


Posted in Javascript onAugust 31, 2017

整理文档,搜刮出一个js实现canvas保存图片为png格式并下载到本地的方法,稍微整理精简一下做下分享。

1.canvas 保存图片

2.下载到本地

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.createObjectURL(blob);

     

        aLink.dispatchEvent(evt);

      }      

downloadFile('ship.png', canvas.toDataURL("image/png"));

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS建造者模式基本用法实例分析
Jun 30 Javascript
js实现Select头像选择实时预览代码
Aug 17 Javascript
JavaScript实现身份证验证代码
Feb 17 Javascript
微信公众号 客服接口的开发实例详解
Sep 28 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
Oct 31 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
Mar 12 Javascript
vue.js动画中的js钩子函数的实现
Jul 06 Javascript
Vue2.0 实现页面缓存和不缓存的方式
Nov 12 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
Dec 25 Javascript
小程序使用分包的示例代码
Mar 23 Javascript
Python版实现微信公众号扫码登陆
May 28 Javascript
js实现贪吃蛇游戏(简易版)
Sep 29 Javascript
js实现canvas图片与img图片的相互转换的示例
Aug 31 #Javascript
vue实现全选和反选功能
Aug 31 #Javascript
浅谈Vue 初始化性能优化
Aug 31 #Javascript
Vue keep-alive实践总结(推荐)
Aug 31 #Javascript
深入理解vue-router之keep-alive
Aug 31 #Javascript
vue-router 导航钩子的具体使用方法
Aug 31 #Javascript
浅谈express 中间件机制及实现原理
Aug 31 #Javascript
You might like
php递归列出所有文件和目录的代码
2008/09/10 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
分享一个超好用的php header下载函数
2014/01/31 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
JS取request值以及自动执行使用示例
2014/02/24 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
js中开关变量使用实例
2017/02/24 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
python字符串连接的N种方式总结
2014/09/17 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
python中的json总结
2018/10/11 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
Python assert语句的简单使用示例
2019/07/28 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
优秀通讯员事迹材料
2014/01/28 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
小学家长意见怎么写
2015/06/03 职场文书
收入证明范本
2015/06/12 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python
python使用shell脚本创建kafka连接器
2022/04/29 Python