qrazybox/finder-example.html
2021-11-14 23:56:31 +01:00

61 lines
1.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>QR Code Finder Example</title>
<meta charset="utf-8" />
<style>
#links > a {
display: inline-block;
margin: 5px;
}
</style>
</head>
<body>
<div id="links"></div>
<canvas id="canvas-1" width="800" height="800"></canvas>
<script src="js/qr.js"></script>
<script type="text/javascript">
let links = document.getElementById('links');
for(let i=0; i<20; i++) {
let link = document.createElement('a');
link.href = "#" + (i + 1);
link.text = i+1;
links.appendChild(link);
}
let canvas = document.getElementById("canvas-1");
let ctx = canvas.getContext("2d");
window.addEventListener("hashchange", refreshQR);
function refreshQR() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
let fragment = window.location.hash.substr(1);
let qrCodeVersion = 1;
if (fragment != "") {
qrCodeVersion = fragment * 1;
}
let wsize = 10;
let hsize = 10;
let qrTemplate = generate_qr(qrCodeVersion);
for (let i = 0; i < qrTemplate.length; i++) {
for (let j = 0; j < qrTemplate[0].length; j++) {
// Drawing (i, j)
let v = qrTemplate[i][j];
if (v == -1) {
v = 2;
}
let colorArr = ["white", "black", "grey"];
let color = colorArr[v];
ctx.fillStyle = color;
ctx.fillRect(i * wsize, j * hsize, wsize, hsize);
}
}
}
refreshQR();
</script>
</body>
</html>