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实现的图片马赛克后显示并切换加文字功能
Apr 21 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
Mar 03 Javascript
原生js实现半透明遮罩层效果具体代码
Jun 06 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
Jul 18 Javascript
AngularJS ng-bind 指令简单实现
Jul 30 Javascript
使用Ajax生成的Excel文件并下载的实例
Nov 21 Javascript
jQuery设计思想
Mar 07 Javascript
Vue学习笔记进阶篇之单元素过度
Jul 19 Javascript
react-native使用react-navigation进行页面跳转导航的示例
Sep 07 Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
Aug 31 Javascript
vue3.0 的 Composition API 的使用示例
Oct 26 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回调函数与匿名函数实例详解
2017/08/16 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
javascript 显示当前系统时间代码
2009/12/28 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Python中常用信号signal类型实例
2018/01/25 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
如何用python处理excel表格
2020/06/09 Python
详解Python中的Lock和Rlock
2021/01/26 Python
python反扒机制的5种解决方法
2021/02/06 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
光声世纪笔试题目
2012/08/25 面试题
七年级历史教学反思
2014/02/05 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
安全承诺书
2015/01/19 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js