首先给大家看一下效果图(纯jQuery前端技术):

提供一下demo 源代码和jquery.qrcode文件下载:

https://download.csdn.net/download/qq15577969/11987493

html+ css+jQuery代码:

<html lang="zh-cn">
<head>
<title>jQuery生成二维码分享图片</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="user-scalable=no">
<style type="text/css">
body{width: 100%;   height: 100%;
}
.qrcodeCanvas {width: 100%; height: 100%;display:none;
}#pageLoading{text-align:center;padding:50px 0;
}
</style>
</head>
<body>
<div id="qrcodeBox"><!--图1:背景图--><img class="bg-img" src="data:images/share_500X852.jpg" style="display:none;"/><!--图2:边框图--><img class="boder-img" src="data:images/code_boder.png" style="display:none;"/><!--图3:二维码--><img class="code-img" style="display:none;"/><!--图4:二维码中间的logo--><img id="logo" src="data:images/logo.png" style="display:none;"/><!--jquery.qrcode生成的二维码--><div id="qrcode" style="display:none;"></div>
</div>
<!--canvas 合成的二维码分享图-->
<div class="qrcodeCanvas"></div>
<!--页面空白加载-->
<div id="pageLoading"><p><img src="data:images/none_page.png" style="width:200px;height:200px;"/></p><p style="color:#999;font-size:25px;">页面加载中…</P>
</div>
<script type="text/javascript" src="js/jquery-1.12.4.js" ></script>
<script type="text/javascript" src="js/jquery.qrcode.logo.min.js"></script>
<script type="text/javascript">
$(function(){//生成二维码$("#qrcode").qrcode({render: "canvas", //也可以替换为tableminVersion: 1,    // version range somewhere in 1 .. 40maxVersion: 40,ecLevel: 'H',     //识别度  'L', 'M', 'Q' or 'H'left: 0,top: 0,size: 300,//尺寸fill: '#000',//前景色background: null,//背景色text: toUtf8("https://www.baidu.com/"),//二维码内容radius: 0.1,// 0.0 .. 0.5quiet: 1,//边距mode: 4,//中间图片样式mSize: 0.2,//logo图片大小mPosX: 0.5,mPosY: 0.5,label: '飞鸟娱乐',fontname: '黑体',fontcolor: '#000',image: $('#logo')[0]//logo图片});//将二维码显示到图3上var canvas=$("#qrcode").find('canvas').get(0); $('.code-img').attr('src',canvas.toDataURL('image/jpg'));  setTimeout(     function(){         //绘制图片drawImage();},500);
})function drawImage() {//图1let bg_img = document.getElementsByClassName('bg-img')[0].getAttribute('src');//图2let boder_img = document.getElementsByClassName('boder-img')[0].getAttribute('src');//图3let code_img = document.getElementsByClassName('code-img')[0].getAttribute('src');var bgwidth=$(".qrcodeCanvas").width();var bgHeight=$(".qrcodeCanvas").height();//canvas必须设定确定的宽高,设置为图片大小let canvas = document.createElement('canvas')canvas.width = bgwidth;canvas.height = bgHeight;let ctx = canvas.getContext("2d");ctx.rect(0,0, canvas.width, canvas.height); //(距离左上角x坐标,距离左上角y坐标,宽度,高度)ctx.fillStyle = "#fff"; //矩形的颜色ctx.fill(); //填充      loadImg([bg_img,boder_img,code_img,]).then(([img1, img2,img3])=> {  ctx.drawImage(img1, 0, 0, bgwidth, bgHeight)//(绘制图片资源,x坐标,y坐标,宽,高)ctx.drawImage(img2, 365, 280, 400, 400)ctx.drawImage(img3, 390, 305, 350, 350)//设置字体属性ctx.font = "40px bold 黑体";//设置颜色颜色ctx.fillStyle = "#64970E";//绘制文字ctx.fillText("飞鸟娱乐",490,270);ctx.fillText("截图保存 • 长按识别",385,730);imageURL = canvas.toDataURL("image/jpg");let compose_img = new Image();compose_img.src = imageURL;compose_img.setAttribute("alt", "好友邀请图片");document.getElementsByClassName("qrcodeCanvas")[0].append(compose_img)      canvas.style.display = "none";$("#pageLoading").hide();$(".qrcodeCanvas").show();});
}function loadImg(src) {const paths = Array.isArray(src) ? src : [src];const promise = [];paths.forEach((path) => {promise.push(new Promise((resolve, reject) => {let img = new Image();img.setAttribute("crossOrigin", 'anonymous');img.src = path;img.onload = () => {resolve(img);};img.onerror = (err) => {alert('图片加载失败')}}))});return Promise.all(promise);
}
//如果内容中有中文,在生成二维码前就要把字符串转换成utf-8
function toUtf8(str) {  var out, i, len, c;  out = "";  len = str.length;  for (i = 0; i < len; i++) {  c = str.charCodeAt(i);  if ((c >= 0x0001) && (c <= 0x007F)) {  out += str.charAt(i);  } else if (c > 0x07FF) {  out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));  out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));  out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));  } else {  out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));  out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));  }  }  return out;
}
</script>
</body>
</html>

jquery.qrcode生成带logo的二维码,同时生成带二维码的好友分享图片(js与canvas实现二维码和图片合成的海报)相关推荐

  1. Vue.js结合Canvas制作二维码和图片的合成(qrcanvas + html2canvas)

    (这个有问题,最近会把整理后的更新上去!!!!!!) 最新最新!!!:https://blog.csdn.net/zuorishu/article/details/88632978 需求背景: 分享图 ...

  2. Vue.js结合Canvas制作二维码和图片的合成(html2canvas + Canvas2Image)--整理

    之前写过一篇关于二维码和图片合成的博文,但是存在一些问题,本篇是本人整理最后在项目中使用的. 建议:如果是单张背景图或者是多张背景图且二维码在同一位置的话,建议直接在后台合成分享图直接给前端返回即可, ...

  3. jquery.qrcode生成带logo和背景图的二维码

    效果图: <html lang="zh-cn"> <head> <title>jQuery生成二维码分享图片</title> < ...

  4. jQuery带logo的网页二维码生成

    jquery生成带logo的二维码非常非常简单 主要引用utf.js/jquery.qrcode.js jquery.qrcode.js是下载之后修改过的,如果大家想要可以去我的网盘下载 链接地址:h ...

  5. jQuery生成带Logo的二维码

    用zxing生成二维码并解析:https://blog.csdn.net/qq_41879385/article/details/81320723 用QR Code生成和解析二维码文章地址:https ...

  6. JS生成带Logo的QRCode二维码

    一:jquery.qrcode.min.js QRCode的JS库下载(自己百度或者直接下载最后的Demo): 二:选定自己需要放在二维码中间的一个Logo图片: 三:代码实现: <!DOCTY ...

  7. Py之qrcode:调用python的qrcode库两种方式生成二维码、带logo的二维码

    Py之qrcode:调用python的qrcode库两种方式生成二维码.带logo的二维码 目录 python编程实现生成二维码 1.第一种方式-纯文本 2.第二种方式-带logo

  8. QRCode二维码生成方案及其在带LOGO型二维码中的应用(2)

    QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 续前:QRCode二维码生成方案及其在带LOGO型二维码中的应 ...

  9. Golang使用qrcode生成二维码,以及生成带logo的二维码

    添加并引用依赖 go get github.com/boombuler/barcodeimport ("github.com/skip2/go-qrcode" ) 1.生成字节形式 ...

最新文章

  1. Win10系列:VC++调用自定义组件1
  2. java jframe全屏_Java-将JFrame设置为全屏时,屏幕变黑
  3. LPCTSTR和CString的关系
  4. [go]---从java到go(01)---基础与入门上手
  5. 7-137 凯撒密码 (20 分)
  6. java flink使用addSink方法保存流数据到redis
  7. 【zookeeper】zookeeper 启动 源码解读
  8. unixodbc mysql安装_ubuntu12下安装unixODBC(mysql)
  9. 蓝桥杯 ADV-136算法提高 大数加法
  10. 推荐!这款3D全场景编辑器,能快速搭建三维大场景
  11. java面向对象怎样建类和对象_java面向对象(上)-- 类与对象、类的封装
  12. 15个在线网站检测工具
  13. matlab取第一列元素的值,MATLAB中怎么从excel中读取第一列的数据?(2010版office)【】...
  14. PhysX Setup
  15. 常用C++编译器推荐
  16. 潘粤明版《鬼吹灯》口碑炸裂!豆瓣8.3高分到底好看在哪?
  17. 利用逆透视变换获取车载图象的鸟瞰图
  18. 12大城市Java平均薪资对比,北上深杭月薪过万,广州最意外
  19. vim vim-plug .vim插件安装及使用
  20. FlexibleButton驱动移植

热门文章

  1. 四步WordPress快速建站步骤
  2. Centos 6.x grub 进入系统
  3. LeNet识别自己的手写数字
  4. 关于mysql varchar类型的长度
  5. mac electron_适用于Windows,Mac和Linux的基于Electron的Mastodon客户端
  6. 骁龙芯片存严重安全漏洞 超十亿安卓手机面临威胁
  7. SOME/IP协议详解「2.2.1·SOME/IP的传输方式」
  8. 实验室设计原则有哪些?
  9. 营销型网站建设-传智-专题视频课程
  10. 【无标题】云计算第一天笔记