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 07 Javascript
js中reverse函数的用法详解
Dec 26 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
Jun 27 Javascript
jquery事件preventDefault()方法用法实例
Jan 16 Javascript
JavaScript中数据结构与算法(三):链表
Jun 19 Javascript
js实现的二级横向菜单条实例
Aug 22 Javascript
Bootstrap每天必学之简单入门
Nov 19 Javascript
Node.js操作redis实现添加查询功能
May 25 Javascript
利用Webpack实现小程序多项目管理的方法
Feb 25 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
js设置鼠标悬停改变背景色实现详解
Jun 26 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 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使用eAccelerator的API开发详解
2013/06/09 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
JavaScript通过RegExp实现客户端验证处理程序
2013/05/07 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
Python使用chardet判断字符编码
2015/05/09 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
python 串行执行和并行执行实例
2020/04/30 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
高中毕业生自我鉴定
2013/11/03 职场文书
欢迎词范文
2015/01/27 职场文书
归元寺导游词
2015/02/06 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
义诊活动通知
2015/04/24 职场文书
施工安全责任协议书
2016/03/23 职场文书
mysql脏页是什么
2021/07/26 MySQL
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android