js生成二维码/html2canvas生成屏幕截图
1.需求简述
2.最初需求实现方案
3.新需求实现方案
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=yes">
<script type="text/javascript" src="js/jquery-1.8.3.min.js" ></script>
<script type="text/javascript" src="js/jquery.qrcode.js" ></script>
<script type="text/javascript" src="js/utf.js" ></script>
<script type="text/javascript" src="js/html2canvas.min.js"></script>
<style>
*{font-size:0.5rem}
#qrcodeCanvas{position: relative;width:200px;height:200px;margin: 0 auto;}
.logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);}
#htmlDiv p{text-align: center;}
h3{color:brown}
</style>
</head>
<body>
<h3>DOM元素:</h3>
<div id="htmlDiv">
<div id="qrcodeCanvas">
<img width="50" height="50" src="img/gray.jpg" class='logo'/>
</div>
<p>春去秋来,海棠花开。你是否已化作风雨,穿越时光来到这里。</p>
</div>
<h3>图片: </h3>
<img src="" id="img"/> <script type="text/javascript">
window.onload=function(){
var htmlDiv = document.getElementById("htmlDiv"); jQuery('#qrcodeCanvas').qrcode({
render : "canvas",
text : "http://www.cnblogs.com/imelemon/p/6677956.html",
width : "200", //二维码的宽度
height : "200", //二维码的高度
background : "#ffffff", //二维码的后景色
foreground : "#000000" //二维码的前景色
// ,src: 'img/gray.jpg' //二维码中间的图片
}); /*
* HTML转图片
*/
var canvas = document.createElement("canvas");
canvas.width = window.screen.width*1.5 ;
canvas.height = window.screen.height*1.5; var context = canvas.getContext("2d");
//context.scale(2,2); html2canvas(htmlDiv, {
canvas: canvas,
onrendered: function(canvas) {
var myImage = canvas.toDataURL("image/png");
document.getElementById("img").setAttribute("src",myImage);
}
});
};
</script>
</body>
</html>
4.遇坑及解决方法
遇到的问题:
1.生成了二维码图片,保存用微信识别的时候部分安卓机不去识别;
解决方法:
可能生成二维码的url过长,可适当增大qrcode()中二维码的宽高;
5.运行效果

保存为图片后:

项目源码下载地址: https://github.com/yingliyu/html2canvas.git
小伙伴如有疑问,欢迎交流;-)
js生成二维码/html2canvas生成屏幕截图的更多相关文章
- 前端生成二维码 - Javascript生成二维码(QR)
前段时间项目中需要动态的生成二维码,经过评估,前后端生成都可以.但后端生成会有两个问题: 没有找到正规发布出来的后端开源库. 二维码图片,会随着商品的增加而不断变多. 基于以上两个问题,决定在前端生成 ...
- 后端生成二维码 - C#生成二维码(QR)
最近在github上找到一个相对比较好的C#二维码生成类库.在这里和大家分享一下. github地址:https://github.com/codebude/QRCoder 把解决方案下载下来,编译生 ...
- 小程序动态生成二维码,生成image图片
前端: <image src="{{img_usrl}}" style="width:100%;height:104px;" bindlongtap=&q ...
- js动态生成二维码
一.使用jquery.qrcode生成二维码 1.首先在页面中加入jquery库文件和qrcode插件 <script type="text/javascript" src= ...
- ecstore生成二维码
利用phpqrcode库生成二维码: /* *二维码添加 */ ////////////////////////////////////// /*引入文件*/ @include(APP_DIR.'/i ...
- 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间
生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...
- VUE 生成二维码插件
原文:https://www.jianshu.com/p/496fd1cbee8d npm install qrcodejs2 --save 页面中引入 dom 结构 JS 方法编写 export d ...
- thinkphp3.2集成QRcode生成二维码
一.下载QRcode源代码 https://sourceforge.net/projects/phpqrcode/files/releases/ 使用phpqrcode必须开启GD2扩展,phpqrc ...
- iOS 二维码的生成 QREncoder
生成二维码: 在生成二维码的库中QREncoder最为常见,但是由于中文字符的特殊性,生成中文的时候有时会出现一定的错误,所以建议使用libqrencode,是一个纯C编写的类库. 以libqrenc ...
随机推荐
- (WPF)依赖属性
属性触发器: <Button MinWidth=" 75" Margin="10"> <Button.Style> <Style ...
- MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it
MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it 博客分类: 数据库 MySQLJava ...
- layui进度条bug
对于动态及生成的进度条,在渲染时候要使用element.init();element.init();element.progress('demo', percent+'%');
- iOS开发中如遇到频繁的Http请求,取消之前已经发送的Http
主要精髓在于 第一点:不要initialize a new AFHTTPSessionManager object everytime 一定要把manager用成全局的 第二点:把请求返回的task对 ...
- Missing artifact javax.transaction:jta:jar:1.0.1B解决办法
maven库中缺少了这个jar,需要把这个jar安装到本地库中去. 1.下载包含此jar的zip包,地址: http://download.csdn.net/detail/spring123tt/68 ...
- javascript基础语法及使用
前几年自学过JavaScript,由于从事安卓开发,就放弃了对js的学习,今天又捡起来重新学习了下,希望对大家有所帮助. 首先介绍下什么是JavaScript. JavaScript 是互联网上最流行 ...
- SRM 719 Div 1 250 500
250: 题目大意: 在一个N行无限大的网格图里,每经过一个格子都要付出一定的代价.同一行的每个格子代价相同. 给出起点和终点,求从起点到终点的付出的最少代价. 思路: 最优方案肯定是从起点沿竖直方向 ...
- 【BZOJ】2016: [Usaco2010]Chocolate Eating(二分)
http://www.lydsy.com/JudgeOnline/problem.php?id=2016 这些最大最小显然是二分. 但是二分细节挺多的...这里注意二分的区间,可以累计所有的可能,然后 ...
- 学习笔记:Vue+Node+Mongodb 构建简单商城系统(二)
前面几个月工作有点忙,导致构建简单商城系统的计划搁置近三个月.现在终于有时间重新回过头来继续本计划.本篇主要记录自己在阿里云服务器上搭建node运行环境的整个过程,以及对其中遇到的一些问题的思考. 一 ...
- AngularJS bind
闲着无聊怕手生 小练习 <!DOCTYPE html><html><head><meta charset="utf-8"><s ...