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 简练的几个函数
Aug 29 Javascript
JavaScript中判断整数的多种方法总结
Nov 08 Javascript
jQuery实现冻结表格行和列
Apr 29 Javascript
jquery遍历table的tr获取td的值实现方法
May 19 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 Javascript
JS模拟实现ECMAScript5新增的数组方法
Mar 20 Javascript
vue实现点击选中,其他的不选中方法
Sep 05 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
Oct 20 Javascript
使用rollup打包JS的方法步骤
Dec 05 Javascript
使用layui实现树形结构的方法
Sep 20 Javascript
JS如何把字符串转换成json
Feb 21 Javascript
用vite搭建vue3应用的实现方法
Feb 22 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
PHP.MVC的模板标签系统(二)
2006/09/05 PHP
PHP print类函数使用总结
2010/06/25 PHP
php获取远程文件大小
2015/10/20 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
Python实现购物车购物小程序
2018/04/18 Python
python多线程扫描端口(线程池)
2019/09/04 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
Python是怎样处理json模块的
2020/07/16 Python
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
设计模式的基本要素是什么
2014/04/21 面试题
轻化专业学生实习自我鉴定
2013/09/20 职场文书
代理人委托书
2014/09/16 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
小学生学习保证书
2015/02/26 职场文书
工程质量保证书
2015/05/09 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Python实现归一化算法详情
2022/03/18 Python
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
python游戏开发之pygame实现接球小游戏
2022/04/22 Python