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 相关文章推荐
ExtJS 2.0实用简明教程 之Border区域布局
Apr 29 Javascript
jquery 入门教程 [翻译] 推荐
Aug 17 Javascript
js的逻辑运算符 ||
May 31 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
Sep 16 Javascript
再论Javascript下字符串连接的性能
Mar 05 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
Oct 10 Javascript
客户端js性能优化小技巧整理
Nov 05 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
Jun 21 Javascript
js学使用setTimeout实现轮循动画
Jul 17 Javascript
React注册倒计时功能的实现
Sep 06 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
Jan 20 Javascript
vue中div禁止点击事件的实现
Apr 02 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
PHP5+UTF8多文件上传类
2008/10/17 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
Python中的zip函数使用示例
2015/01/29 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
python 自动重连wifi windows的方法
2018/12/18 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
分享一个python的aes加密代码
2020/12/22 Python
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
技校生自我鉴定
2013/12/08 职场文书
预备党员思想汇报范文
2013/12/29 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
先进典型发言材料
2014/12/30 职场文书
事业单位聘任报告
2015/03/02 职场文书
员工工作表扬信
2015/05/05 职场文书
货款欠条范本
2015/07/03 职场文书
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python