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 相关文章推荐
地震发生中逃生十大法则
May 12 Javascript
javascript json 新手入门文档
Dec 03 Javascript
精通JavaScript 纠正 cleanWhitespace函数
Mar 11 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
Jul 10 Javascript
CheckBoxList多选样式jquery、C#获取选择项
Sep 06 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 Javascript
jQuery拖动元素并对元素进行重新排序
Dec 30 Javascript
JavaScript简单实现鼠标移动切换图片的方法
Feb 23 Javascript
jQuery siblings()用法实例详解
Apr 26 Javascript
jQuery animate easing使用方法图文详解
Jun 17 Javascript
Canvas放置反弹效果随机图形(实例)
Aug 17 Javascript
记录vue项目中遇到的一点小问题
May 14 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连接access数据库
2008/03/27 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
js 字符串操作函数
2009/07/25 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
兼容FF和IE的动态table示例自写
2013/10/21 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
js控制input输入字符解析
2013/12/27 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
详解webpack分包及异步加载套路
2017/06/29 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
Python Mysql自动备份脚本
2008/07/14 Python
python实现自动重启本程序的方法
2015/07/09 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
Python函数参数操作详解
2018/08/03 Python
python地震数据可视化详解
2019/06/18 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
2015年七一建党节活动总结
2015/03/20 职场文书
公司人事管理制度
2015/08/05 职场文书
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
Golang 入门 之url 包
2022/05/04 Golang