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基础的动画教程,直观易懂
Jan 10 Javascript
javascript 一个函数对同一元素的多个事件响应
Jul 25 Javascript
ASP Json Parser修正版
Dec 06 Javascript
jQuery中live方法的重复绑定说明
Oct 21 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
May 23 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
javascripit实现密码强度检测代码分享
Dec 12 Javascript
js获取ajax返回值代码
Apr 30 Javascript
理解AngularJs指令
Dec 10 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
Oct 10 Javascript
Node.js创建Web、TCP服务器
Dec 05 Javascript
在angularJs中进行数据遍历的2种方法
Oct 08 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
星际争霸任务指南——神族
2020/03/04 星际争霸
简单的php中文转拼音的实现代码
2014/02/11 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
js实现购物车功能
2018/06/12 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
Python进行特征提取的示例代码
2020/10/15 Python
如何查看python关键字
2021/01/17 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
工商管理专业应届生求职信
2013/11/04 职场文书
公务员转正考察材料
2014/02/07 职场文书
工作会议主持词
2014/03/17 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
正规欠条模板
2015/07/03 职场文书
JavaScript异步操作中串行和并行
2021/11/20 Javascript
Win2008系统搭建DHCP服务器
2022/06/25 Servers