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 相关文章推荐
15条JavaScript最佳实践小结
Aug 09 Javascript
JS Date函数整理方便使用
Oct 23 Javascript
jquery中event对象属性与方法小结
Dec 18 Javascript
Jquery的each里用return true或false代替break或continue
May 21 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
Sep 11 Javascript
JavaScript中Date对象的常用方法示例
Oct 24 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
Nov 24 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
Dec 24 Javascript
JavaScript 随机验证码的生成实例代码
Sep 22 Javascript
将JSON字符串转换成Map对象的方法
Nov 30 Javascript
js 判断数据类型的几种方法
Jan 13 Javascript
react配置antd按需加载的使用
Feb 11 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 缓冲的免费实现方法
2006/10/09 PHP
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
iOS10推送通知开发教程
2016/09/19 PHP
ecshop适应在PHP7的修改方法解决报错的实现
2016/11/01 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
用于table内容排序
2006/07/21 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
详解Vue生命周期的示例
2017/03/10 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python数据分析库pandas基本操作方法
2018/04/08 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
python 进程池pool使用详解
2020/10/15 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
期末总结的个人自我评价
2013/11/02 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
谢师宴学生致辞
2015/07/27 职场文书
学会感恩主题班会
2015/08/12 职场文书
深入详解JS函数的柯里化
2021/06/09 Javascript
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
Elasticsearch 基本查询和组合查询
2022/04/19 Python