summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Blog/wwwroot/qrcode.js78
1 files changed, 38 insertions, 40 deletions
diff --git a/Blog/wwwroot/qrcode.js b/Blog/wwwroot/qrcode.js
index 65ff165..47f35c8 100644
--- a/Blog/wwwroot/qrcode.js
+++ b/Blog/wwwroot/qrcode.js
@@ -173,19 +173,17 @@ let QRCode;
173 } 173 }
174 }, setupTypeNumber: function (test) { 174 }, setupTypeNumber: function (test) {
175 const bits = QRUtil.getBCHTypeNumber(this.typeNumber); 175 const bits = QRUtil.getBCHTypeNumber(this.typeNumber);
176 for (var i = 0; i < 18; i++) { 176 for (let i = 0; i < 18; i++) {
177 var mod = (!test && ((bits >> i) & 1) === 1); 177 this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = (!test && ((bits >> i) & 1) === 1);
178 this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;
179 } 178 }
180 for (var i = 0; i < 18; i++) { 179 for (let i = 0; i < 18; i++) {
181 var mod = (!test && ((bits >> i) & 1) === 1); 180 this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = (!test && ((bits >> i) & 1) === 1);
182 this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;
183 } 181 }
184 }, setupTypeInfo: function (test, maskPattern) { 182 }, setupTypeInfo: function (test, maskPattern) {
185 const data = (this.errorCorrectLevel << 3) | maskPattern; 183 const data = (this.errorCorrectLevel << 3) | maskPattern;
186 const bits = QRUtil.getBCHTypeInfo(data); 184 const bits = QRUtil.getBCHTypeInfo(data);
187 for (var i = 0; i < 15; i++) { 185 for (let i = 0; i < 15; i++) {
188 var mod = (!test && ((bits >> i) & 1) === 1); 186 let mod = (!test && ((bits >> i) & 1) === 1);
189 if (i < 6) { 187 if (i < 6) {
190 this.modules[i][8] = mod; 188 this.modules[i][8] = mod;
191 } else if (i < 8) { 189 } else if (i < 8) {
@@ -194,8 +192,8 @@ let QRCode;
194 this.modules[this.moduleCount - 15 + i][8] = mod; 192 this.modules[this.moduleCount - 15 + i][8] = mod;
195 } 193 }
196 } 194 }
197 for (var i = 0; i < 15; i++) { 195 for (let i = 0; i < 15; i++) {
198 var mod = (!test && ((bits >> i) & 1) === 1); 196 let mod = (!test && ((bits >> i) & 1) === 1);
199 if (i < 8) { 197 if (i < 8) {
200 this.modules[8][this.moduleCount - i - 1] = mod; 198 this.modules[8][this.moduleCount - i - 1] = mod;
201 } else if (i < 9) { 199 } else if (i < 9) {
@@ -246,14 +244,14 @@ let QRCode;
246 QRCodeModel.createData = function (typeNumber, errorCorrectLevel, dataList) { 244 QRCodeModel.createData = function (typeNumber, errorCorrectLevel, dataList) {
247 const rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel); 245 const rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);
248 const buffer = new QRBitBuffer(); 246 const buffer = new QRBitBuffer();
249 for (var i = 0; i < dataList.length; i++) { 247 for (let i = 0; i < dataList.length; i++) {
250 const data = dataList[i]; 248 const data = dataList[i];
251 buffer.put(data.mode, 4); 249 buffer.put(data.mode, 4);
252 buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber)); 250 buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));
253 data.write(buffer); 251 data.write(buffer);
254 } 252 }
255 let totalDataCount = 0; 253 let totalDataCount = 0;
256 for (var i = 0; i < rsBlocks.length; i++) { 254 for (let i = 0; i < rsBlocks.length; i++) {
257 totalDataCount += rsBlocks[i].dataCount; 255 totalDataCount += rsBlocks[i].dataCount;
258 } 256 }
259 if (buffer.getLengthInBits() > totalDataCount * 8) { 257 if (buffer.getLengthInBits() > totalDataCount * 8) {
@@ -287,13 +285,13 @@ let QRCode;
287 let maxEcCount = 0; 285 let maxEcCount = 0;
288 const dcdata = new Array(rsBlocks.length); 286 const dcdata = new Array(rsBlocks.length);
289 const ecdata = new Array(rsBlocks.length); 287 const ecdata = new Array(rsBlocks.length);
290 for (var r = 0; r < rsBlocks.length; r++) { 288 for (let r = 0; r < rsBlocks.length; r++) {
291 const dcCount = rsBlocks[r].dataCount; 289 const dcCount = rsBlocks[r].dataCount;
292 const ecCount = rsBlocks[r].totalCount - dcCount; 290 const ecCount = rsBlocks[r].totalCount - dcCount;
293 maxDcCount = Math.max(maxDcCount, dcCount); 291 maxDcCount = Math.max(maxDcCount, dcCount);
294 maxEcCount = Math.max(maxEcCount, ecCount); 292 maxEcCount = Math.max(maxEcCount, ecCount);
295 dcdata[r] = new Array(dcCount); 293 dcdata[r] = new Array(dcCount);
296 for (var i = 0; i < dcdata[r].length; i++) { 294 for (let i = 0; i < dcdata[r].length; i++) {
297 dcdata[r][i] = 0xff & buffer.buffer[i + offset]; 295 dcdata[r][i] = 0xff & buffer.buffer[i + offset];
298 } 296 }
299 offset += dcCount; 297 offset += dcCount;
@@ -301,26 +299,26 @@ let QRCode;
301 const rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1); 299 const rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);
302 const modPoly = rawPoly.mod(rsPoly); 300 const modPoly = rawPoly.mod(rsPoly);
303 ecdata[r] = new Array(rsPoly.getLength() - 1); 301 ecdata[r] = new Array(rsPoly.getLength() - 1);
304 for (var i = 0; i < ecdata[r].length; i++) { 302 for (let i = 0; i < ecdata[r].length; i++) {
305 const modIndex = i + modPoly.getLength() - ecdata[r].length; 303 const modIndex = i + modPoly.getLength() - ecdata[r].length;
306 ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0; 304 ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0;
307 } 305 }
308 } 306 }
309 let totalCodeCount = 0; 307 let totalCodeCount = 0;
310 for (var i = 0; i < rsBlocks.length; i++) { 308 for (let i = 0; i < rsBlocks.length; i++) {
311 totalCodeCount += rsBlocks[i].totalCount; 309 totalCodeCount += rsBlocks[i].totalCount;
312 } 310 }
313 const data = new Array(totalCodeCount); 311 const data = new Array(totalCodeCount);
314 let index = 0; 312 let index = 0;
315 for (var i = 0; i < maxDcCount; i++) { 313 for (let i = 0; i < maxDcCount; i++) {
316 for (var r = 0; r < rsBlocks.length; r++) { 314 for (let r = 0; r < rsBlocks.length; r++) {
317 if (i < dcdata[r].length) { 315 if (i < dcdata[r].length) {
318 data[index++] = dcdata[r][i]; 316 data[index++] = dcdata[r][i];
319 } 317 }
320 } 318 }
321 } 319 }
322 for (var i = 0; i < maxEcCount; i++) { 320 for (let i = 0; i < maxEcCount; i++) {
323 for (var r = 0; r < rsBlocks.length; r++) { 321 for (let r = 0; r < rsBlocks.length; r++) {
324 if (i < ecdata[r].length) { 322 if (i < ecdata[r].length) {
325 data[index++] = ecdata[r][i]; 323 data[index++] = ecdata[r][i];
326 } 324 }
@@ -328,7 +326,7 @@ let QRCode;
328 } 326 }
329 return data; 327 return data;
330 }; 328 };
331 var QRMode = {MODE_NUMBER: 1 << 0, MODE_ALPHA_NUM: 1 << 1, MODE_8BIT_BYTE: 1 << 2, MODE_KANJI: 1 << 3}; 329 let QRMode = {MODE_NUMBER: 1 << 0, MODE_ALPHA_NUM: 1 << 1, MODE_8BIT_BYTE: 1 << 2, MODE_KANJI: 1 << 3};
332 const QRErrorCorrectLevel = {L: 1, M: 0, Q: 3, H: 2}; 330 const QRErrorCorrectLevel = {L: 1, M: 0, Q: 3, H: 2};
333 const QRMaskPattern = { 331 const QRMaskPattern = {
334 PATTERN000: 0, 332 PATTERN000: 0,
@@ -340,7 +338,7 @@ let QRCode;
340 PATTERN110: 6, 338 PATTERN110: 6,
341 PATTERN111: 7 339 PATTERN111: 7
342 }; 340 };
343 var QRUtil = { 341 let QRUtil = {
344 PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]], 342 PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
345 G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0), 343 G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),
346 G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0), 344 G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),
@@ -446,8 +444,8 @@ let QRCode;
446 getLostPoint: function (qrCode) { 444 getLostPoint: function (qrCode) {
447 const moduleCount = qrCode.getModuleCount(); 445 const moduleCount = qrCode.getModuleCount();
448 let lostPoint = 0; 446 let lostPoint = 0;
449 for (var row = 0; row < moduleCount; row++) { 447 for (let row = 0; row < moduleCount; row++) {
450 for (var col = 0; col < moduleCount; col++) { 448 for (let col = 0; col < moduleCount; col++) {
451 let sameCount = 0; 449 let sameCount = 0;
452 const dark = qrCode.isDark(row, col); 450 const dark = qrCode.isDark(row, col);
453 for (let r = -1; r <= 1; r++) { 451 for (let r = -1; r <= 1; r++) {
@@ -471,8 +469,8 @@ let QRCode;
471 } 469 }
472 } 470 }
473 } 471 }
474 for (var row = 0; row < moduleCount - 1; row++) { 472 for (let row = 0; row < moduleCount - 1; row++) {
475 for (var col = 0; col < moduleCount - 1; col++) { 473 for (let col = 0; col < moduleCount - 1; col++) {
476 let count = 0; 474 let count = 0;
477 if (qrCode.isDark(row, col)) count++; 475 if (qrCode.isDark(row, col)) count++;
478 if (qrCode.isDark(row + 1, col)) count++; 476 if (qrCode.isDark(row + 1, col)) count++;
@@ -483,23 +481,23 @@ let QRCode;
483 } 481 }
484 } 482 }
485 } 483 }
486 for (var row = 0; row < moduleCount; row++) { 484 for (let row = 0; row < moduleCount; row++) {
487 for (var col = 0; col < moduleCount - 6; col++) { 485 for (let col = 0; col < moduleCount - 6; col++) {
488 if (qrCode.isDark(row, col) && !qrCode.isDark(row, col + 1) && qrCode.isDark(row, col + 2) && qrCode.isDark(row, col + 3) && qrCode.isDark(row, col + 4) && !qrCode.isDark(row, col + 5) && qrCode.isDark(row, col + 6)) { 486 if (qrCode.isDark(row, col) && !qrCode.isDark(row, col + 1) && qrCode.isDark(row, col + 2) && qrCode.isDark(row, col + 3) && qrCode.isDark(row, col + 4) && !qrCode.isDark(row, col + 5) && qrCode.isDark(row, col + 6)) {
489 lostPoint += 40; 487 lostPoint += 40;
490 } 488 }
491 } 489 }
492 } 490 }
493 for (var col = 0; col < moduleCount; col++) { 491 for (let col = 0; col < moduleCount; col++) {
494 for (var row = 0; row < moduleCount - 6; row++) { 492 for (let row = 0; row < moduleCount - 6; row++) {
495 if (qrCode.isDark(row, col) && !qrCode.isDark(row + 1, col) && qrCode.isDark(row + 2, col) && qrCode.isDark(row + 3, col) && qrCode.isDark(row + 4, col) && !qrCode.isDark(row + 5, col) && qrCode.isDark(row + 6, col)) { 493 if (qrCode.isDark(row, col) && !qrCode.isDark(row + 1, col) && qrCode.isDark(row + 2, col) && qrCode.isDark(row + 3, col) && qrCode.isDark(row + 4, col) && !qrCode.isDark(row + 5, col) && qrCode.isDark(row + 6, col)) {
496 lostPoint += 40; 494 lostPoint += 40;
497 } 495 }
498 } 496 }
499 } 497 }
500 let darkCount = 0; 498 let darkCount = 0;
501 for (var col = 0; col < moduleCount; col++) { 499 for (let col = 0; col < moduleCount; col++) {
502 for (var row = 0; row < moduleCount; row++) { 500 for (let row = 0; row < moduleCount; row++) {
503 if (qrCode.isDark(row, col)) { 501 if (qrCode.isDark(row, col)) {
504 darkCount++; 502 darkCount++;
505 } 503 }
@@ -510,7 +508,7 @@ let QRCode;
510 return lostPoint; 508 return lostPoint;
511 } 509 }
512 }; 510 };
513 var QRMath = { 511 let QRMath = {
514 glog: function (n) { 512 glog: function (n) {
515 if (n < 1) { 513 if (n < 1) {
516 throw new Error("glog(" + n + ")"); 514 throw new Error("glog(" + n + ")");
@@ -526,13 +524,13 @@ let QRCode;
526 return QRMath.EXP_TABLE[n]; 524 return QRMath.EXP_TABLE[n];
527 }, EXP_TABLE: new Array(256), LOG_TABLE: new Array(256) 525 }, EXP_TABLE: new Array(256), LOG_TABLE: new Array(256)
528 }; 526 };
529 for (var i = 0; i < 8; i++) { 527 for (let i = 0; i < 8; i++) {
530 QRMath.EXP_TABLE[i] = 1 << i; 528 QRMath.EXP_TABLE[i] = 1 << i;
531 } 529 }
532 for (var i = 8; i < 256; i++) { 530 for (let i = 8; i < 256; i++) {
533 QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8]; 531 QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8];
534 } 532 }
535 for (var i = 0; i < 255; i++) { 533 for (let i = 0; i < 255; i++) {
536 QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i; 534 QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i;
537 } 535 }
538 536
@@ -569,10 +567,10 @@ let QRCode;
569 } 567 }
570 const ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0)); 568 const ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0));
571 const num = new Array(this.getLength()); 569 const num = new Array(this.getLength());
572 for (var i = 0; i < this.getLength(); i++) { 570 for (let i = 0; i < this.getLength(); i++) {
573 num[i] = this.get(i); 571 num[i] = this.get(i);
574 } 572 }
575 for (var i = 0; i < e.getLength(); i++) { 573 for (let i = 0; i < e.getLength(); i++) {
576 num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio); 574 num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio);
577 } 575 }
578 return new QRPolynomial(num, 0).mod(e); 576 return new QRPolynomial(num, 0).mod(e);
@@ -707,7 +705,7 @@ let QRCode;
707 const useSVG = document.documentElement.tagName.toLowerCase() === "svg"; 705 const useSVG = document.documentElement.tagName.toLowerCase() === "svg";
708 706
709 // Drawing in DOM by using Table tag 707 // Drawing in DOM by using Table tag
710 var Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () { 708 let Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () {
711 const Drawing = function (el, htOption) { 709 const Drawing = function (el, htOption) {
712 this._el = el; 710 this._el = el;
713 this._htOption = htOption; 711 this._htOption = htOption;
@@ -977,7 +975,7 @@ let QRCode;
977 * new QRCode(document.getElementById("test"), "http://jindo.dev.naver.com/collie"); 975 * new QRCode(document.getElementById("test"), "http://jindo.dev.naver.com/collie");
978 * 976 *
979 * @example 977 * @example
980 * var oQRCode = new QRCode("test", { 978 * let oQRCode = new QRCode("test", {
981 * text : "http://naver.com", 979 * text : "http://naver.com",
982 * width : 128, 980 * width : 128,
983 * height : 128 981 * height : 128