-
Notifications
You must be signed in to change notification settings - Fork 3
/
html5datamatrix.js
35 lines (32 loc) · 1.06 KB
/
html5datamatrix.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { DataMatrixEncoder } from "./datamatrix.js";
function redraw()
{
const message = document.getElementById("message").value;
const status = document.getElementById("status");
const encoder = new DataMatrixEncoder();
try {
encoder.encode(message);
const columns = encoder.getColumns();
const rows = encoder.getRows();
const canvas = document.getElementById("canvas");
const context = canvas.getContext("2d");
context.setTransform(1, 0, 0, 1, 0, 0);
context.clearRect(0, 0, canvas.width, canvas.height);
const scale = canvas.width / columns;
context.setTransform(scale, 0, 0, scale, 0.5, 0.5);
for (let row = 0; row < rows; row++) {
for (let column = 0; column < columns; column++) {
context.fillStyle = encoder.getModule(column, row) == 0 ? "#fff" : "#000";
context.fillRect(column, row, 1, 1);
}
}
status.innerHTML = "Size: " + columns + "x" + rows;
status.className = "";
}
catch (ex) {
status.innerHTML = ex;
status.className = "error";
}
}
document.getElementById("message").addEventListener("input", redraw);
redraw();