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 相关文章推荐
DOM和XMLHttpRequest对象的属性和方法整理
Jan 04 Javascript
js的onload事件及初始化按钮事件示例代码
Sep 25 Javascript
jquery datatable后台封装数据示例代码
Aug 07 Javascript
使用jquery.qrcode生成彩色二维码实例
Aug 08 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
Oct 23 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
Oct 08 Javascript
socket.io学习教程之基本应用(二)
Apr 29 Javascript
AngularJS实现表单验证功能详解
Oct 12 Javascript
vuejs实现标签选项卡动态更改css样式的方法
May 31 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
Nov 26 Javascript
vue实现列表拖拽排序的功能
Nov 02 Javascript
使用Ajax实现无刷新上传文件
Apr 12 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实现复制移动文件的方法
2015/07/29 PHP
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
Python列表切片常用操作实例解析
2019/12/16 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
通过自学python能找到工作吗
2020/06/21 Python
jupyter 添加不同内核的操作
2021/02/06 Python
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
致200米运动员广播稿
2014/02/06 职场文书
无故旷工检讨书
2015/08/15 职场文书
《灰雀》教学反思
2016/02/19 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python