Added HTML and JavaScript code to support advanced QR Code generation parameters.

pull/4/head
Nayuki Minase 10 years ago
parent f325bfe638
commit 3878c12a81

@ -42,7 +42,11 @@ function redrawQrCode() {
var ecl = getInputErrorCorrectionLevel();
var text = document.getElementById("text-input").value;
var segs = qrcodegen.QrSegment.makeSegments(text);
var qr = qrcodegen.QrCode.encodeSegments(segs, ecl);
var minVer = parseInt(document.getElementById("version-min-input").value, 10);
var maxVer = parseInt(document.getElementById("version-max-input").value, 10);
var mask = parseInt(document.getElementById("mask-input").value, 10);
var boostEcc = document.getElementById("boost-ecc-input").checked;
var qr = qrcodegen.QrCode.encodeSegments(segs, ecl, minVer, maxVer, mask, boostEcc);
// Get scale and border
var scale = parseInt(document.getElementById("scale-input").value, 10);
@ -114,4 +118,21 @@ function redrawQrCode() {
}
function handleVersionMinMax(which) {
var minElem = document.getElementById("version-min-input");
var maxElem = document.getElementById("version-max-input");
var minVal = parseInt(minElem.value, 10);
var maxVal = parseInt(maxElem.value, 10);
minVal = Math.max(Math.min(minVal, 40), 1);
maxVal = Math.max(Math.min(maxVal, 40), 1);
if (which == "min" && minVal > maxVal)
maxVal = minVal;
else if (which == "max" && maxVal < minVal)
minVal = maxVal;
minElem.value = minVal.toString();
maxElem.value = maxVal.toString();
redrawQrCode();
}
redrawQrCode();

@ -51,6 +51,14 @@
<input type="radio" name="errcorlvl" id="errcorlvl-high" onchange="redrawQrCode();"><label for="errcorlvl-high">High</label>
</td>
</tr>
<tr>
<td>Advanced:</td>
<td>
Version min/max: <input type="number" value="1" min="1" max="40" step="1" id="version-min-input" style="width:4em" oninput="handleVersionMinMax('min');"> to <input type="number" value="40" min="1" max="40" step="1" id="version-max-input" style="width:4em" oninput="handleVersionMinMax('max');"><br>
Mask pattern: <input type="number" value="-1" min="-1" max="7" step="1" id="mask-input" style="width:4em" oninput="redrawQrCode();"> (1 for automatic)<br>
<input type="checkbox" checked="checked" id="boost-ecc-input" onchange="redrawQrCode();"><label for="boost-ecc-input">Boost ECC</label>
</td>
</tr>
<tr>
<td>Scale:</td>
<td><input type="number" value="8" min="1" max="30" step="1" id="scale-input" style="width:4em" oninput="redrawQrCode();"> pixels per module</td>

Loading…
Cancel
Save