代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>二维码生成</title>
<link rel="stylesheet" href="./css/normalize.css">
<link rel="stylesheet" href="./css/base.css">
<link rel="stylesheet" href="./css/index.css">
<!-- 引如 jQuery 这个都懂把 不多说了 -->
<script src="./js/jquery.min.js"></script>
<!-- qrcode 的js文件 生成二维码需要 -->
<script src="./js/qrcode.min.js"></script>
</head>
<body>
<div class="container">
<!-- 这个元素用来承载生成的二维码 不显示 -->
<div id="qrcode" style="display: none"></div>
<!-- canvas 标签 主要用来进行图形的绘制,海报的大小-->
<!-- <canvas id="canvas" width="414px" height="736px";class="paper"></canvas> -->
<canvas id="canvas" width="1242px" height="2208px" ;class="paper"></canvas>
</div>
<br>
<!-- 点击这个按钮之后下载图片 -->
<button id="download" class="button"><a href="javascript:void:;">下载图片</a> </button>
<script>
let canvas = document.querySelector("#canvas");
canvas.width = canvas.width * 1;
canvas.height = canvas.height * 1;
canvas.style.background = "#fff";
//先为画布填充底色,否则生成的图片背景是透明的
var cxt = canvas.getContext("2d");
cxt.fillStyle = "#ffffff";
cxt.fillRect(0, 0, 1242, 2208);
let qr = document.getElementById("qrcode");
let ctx = canvas.getContext("2d");
let img = new Image();
// 这里的第一张图片就是可以是你们的海报 这里注意绘制的顺序 我们要手动控制
img.src = "./images/bg.png"; //海报背景图路径
img.onload = function () {
ctx.drawImage(img, 0, 0, 414, 436); //海报背景图大小
ctx.drawImage(img, 0, 0, 1242, 1308); //海报背景图大小
// 对二维码进行初始化
let qrcode = new QRCode(qr, {
width: 300,
height: 300,
colorDark: "#000000",
colorLight: "#ffffff",
});
// 为二维码设置内容
qrcode.makeCode("https://lovebug.cn");
// 我们的qrcode生成二维码之后也会有一个canvas对象我们获取到这个元素
let base64 = qr.firstChild.toDataURL("image/png", 1);
// 第二张图片:这里的image只能在onload里面绘制 在外面就会被覆盖了 因为优先加载完毕就会优先绘制 然后就被之后绘制的海报背景遮挡了
let shareQr = new Image();
// 设置base64编码格式值
shareQr.src = base64;
shareQr.onload = function () {
// 绘制图像 就是绘制二维码到我们自己写的canvas中去
// ctx.drawImage(shareQr, 157, 446, 100, 100);
ctx.drawImage(shareQr, 471, 1400, 300, 300);
};
// 第三张图片,可以是海报的logo
let logo = new Image();
// 设置base64编码格式值
logo.src = "./images/logo.png";
logo.onload = function () {
// 绘制图像 就是绘制二维码到我们自己写的canvas中去
//参数分别为:(X坐标,Y坐标,图片的宽,图片的高)
// ctx.drawImage(logo, 182, 560, 53, 57);
ctx.drawImage(logo, 546, 1740, 159, 171);
};
// 在位置 208 创建透明线,s是为了让文字居中对齐
ctx.strokeStyle = "transparent";
// ctx.moveTo(207, 620);
// ctx.lineTo(207, 670);
ctx.moveTo(621, 1960);
ctx.lineTo(621, 2110);
ctx.stroke();
// 绘制字体
ctx.font = "1rem Helvetica Neue";
ctx.textAlign = "center",
// ctx.fillStyle = "#3f3f3f";
ctx.fillStyle = "#ccc";
//参数:填充文字,X坐标,Y坐标
// ctx.fillText("长按屏幕即可扫描二维码", 207, 650);
ctx.fillText("长按屏幕即可扫描二维码", 621, 2050);
};
// 下载
document.getElementById("download").onclick = function () {
let a = document.createElement("a");
// 设置地址
a.href = canvas.toDataURL("image/png", 1);
// 设置下载海报文件名
a.download = "海报合成图";
// 触发点击事件
a.click();
}
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。