jQuery 生成svg矢量二维码


Posted in Javascript onAugust 09, 2016

jQuery 生成矢量svg二维码,并提供PNG,和SVG的页面下载,减轻服务端的压力。

代码如下所示:

<html> 
<head> 
<title>jQuery 生成svg矢量二维码</title> 
</head> 
<body> 
<script type='text/javascript' src='http://cdn.staticfile.org/jquery/2.1.1/jquery.min.js'></script>
<script type="text/javascript" src="http://cdn.staticfile.org/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>
<script type='text/javascript' src='raphael.js'></script>
<script type='text/javascript' src='qrcodesvg.js'></script>
<p>二维码信息:201211070014</p> 
<div id="qrcodeTable"></div> 
<p>二维码信息:gerrard</p> 
<div id="qrcodeCanvas"></div> 
<p>二维码信息:test</p> 
<div id="svg-wrap" class="svg-wrap"></div> 
<br>
<a id="a" href="javascript:saveAsPng()">下载PNG</a> 
<a id="a" href="javascript:saveAsSvg()">下载SVG</a>
<script> 
var qrcodesvg = new Qrcodesvg("http://www.baidu.com", "svg-wrap", 250);
qrcodesvg.draw();
// qrcodesvg.createSquare();
/* //jQuery('#qrcode').qrcode("this plugin is great"); 
jQuery('#qrcodeTable').qrcode({ 
render : "table", 
text : "201211070014" //根据此串生成第一个二维码 
}); 
jQuery('#qrcodeCanvas').qrcode({ 
render : "canvas", 
text : "http://www.csdn.net" //根据此串生成第二个二维码 
}); 
*/
// 下载png图片
function saveAsPng () {
var svgXml = $('.svg-wrap').html();
var image = new Image();
image.src = 'data:image/svg+xml;base64,' + window.btoa(unescape(encodeURIComponent(svgXml))); //给图片对象写入base64编码的svg流
// 把svg格式转换成canvas格式
var canvas = document.createElement('canvas'); //准备空画布
canvas.width = $('.svg-wrap svg').width();
canvas.height = $('.svg-wrap svg').height();
var context = canvas.getContext('2d'); //取得画布的2d绘图上下文
context.drawImage(image, 0, 0);
var a = document.createElement('a');
a.href = canvas.toDataURL('image/png'); //将画布内的信息导出为png图片数据
a.download = mathRand(); //设定下载名称
a.click(); //点击触发下载 
}
// 下载svg图片
function saveAsSvg () {
var svgXml = $('.svg-wrap').html();
var image = new Image();
image.src = 'data:image/svg+xml;base64,' + window.btoa(unescape(encodeURIComponent(svgXml))); //给图片对象写入base64编码的svg流
var a = document.createElement('a');
a.href = image.src; //直接导出SVG
a.download = mathRand(); //设定下载名称
a.click(); //点击触发下载 
}
// 随机生成数字
function mathRand() { 
var num = ""; 
for(var i = 0 ; i < 6 ; i ++) { 
num+=Math.floor(Math.random()*10); 
} 
return num ;
}
</script> 
</body> 
</html>

以上所述是小编给大家介绍的jQuery 生成svg矢量二维码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery $.ajax入门应用一
Nov 19 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
Oct 28 Javascript
简单几行JS Code实现IE邮件转发新浪微博
Jul 03 Javascript
javascript正则表达式使用replace()替换手机号的方法
Jan 19 Javascript
js实现简洁的TAB滑动门效果代码
Sep 06 Javascript
jQuery入门之层次选择器实例简析
Dec 11 Javascript
基于JavaScript的操作系统你听说过吗?
Jan 28 Javascript
zTree插件下拉树使用入门教程
Apr 11 Javascript
bootstrap datetimepicker控件位置异常的解决方法
Nov 23 Javascript
javascript实现Emrips反质数枚举的示例代码
Dec 06 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
vue3使用vue-count-to组件的实现
Dec 25 Vue.js
浅谈JavaScript中变量和函数声明的提升
Aug 09 #Javascript
浅谈js基本数据类型和typeof
Aug 09 #Javascript
js中判断变量类型函数typeof的用法总结
Aug 09 #Javascript
详解js实现线段交点的三种算法
Aug 09 #Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
Aug 09 #Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 #Javascript
引用jquery框架后出错的解决方法
Aug 09 #Javascript
You might like
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
深入理解javascript prototype的相关知识
2019/09/19 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
python与php实现分割文件代码
2017/03/06 Python
python放大图片和画方格实现算法
2018/03/30 Python
python实现Zabbix-API监控
2018/09/17 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
python 高阶函数简单介绍
2021/02/19 Python
联想英国官网:Lenovo英国
2019/07/17 全球购物
大学生志愿者感言
2014/01/15 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
关于使用Redisson订阅数问题
2022/01/18 Redis
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL