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 相关文章推荐
JavaScript 实现类的多种方法实例
May 01 Javascript
Jquery实现自定义tooltip示例代码
Feb 12 Javascript
浅析AngularJS中的指令
Mar 20 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
Jun 01 Javascript
javascript表达式和运算符详解
Feb 07 Javascript
基于JavaScript实现图片剪切效果
Mar 07 Javascript
JavaScript高阶函数_动力节点Java学院整理
Jun 28 Javascript
vue中计算属性(computed)、methods和watched之间的区别
Jul 27 Javascript
javascript中神奇的 Date对象小结
Oct 12 Javascript
微信小程序使用modal组件弹出对话框功能示例
Nov 29 Javascript
js中如何完美的解析数据
Mar 18 Javascript
JavaScript实现一键复制内容剪贴板
Jul 23 Javascript
浅谈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
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
JS继承 笔记
2011/07/13 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
python 杀死自身进程的实现方法
2019/07/01 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
华为C++笔试题
2014/08/05 面试题
Unix如何添加新的用户
2014/08/20 面试题
师范生实习个人的自我评价
2013/09/28 职场文书
怎样有效的进行自我评价
2013/10/06 职场文书
学校万圣节活动方案
2014/02/13 职场文书
争先创优个人总结
2015/03/04 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书