123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955 |
- !
- function(r, t) {
- "object" == typeof module && module.exports ? module.exports = t(r) : r.qrgen = t(r)
- }("undefined" != typeof window ? window : this, function(r) {
- function t(r) {
- this.a(r)
- }
- function e(r) {
- var e = new t(r);
- return e.b()
- }
- function n(r, t) {
- var e = document.createElement("canvas");
- return e.width = r, e.height = t, e
- }
- function a(r, t) {
- var e = t.data;
- if (e) {
- var n = r.getContext("2d");
- Array.isArray(e) || (e = [e]), o(e, function(e) {
- if (e instanceof HTMLElement) n.drawImage(e, 0, 0, r.width, r.height);
- else {
- var a, o, i, u;
- e = "string" == typeof e ? {
- style: e
- } : e || {}, a = ("col" in e ? e.col * t.cellSize : e.x) || 0, o = ("row" in e ? e.row * t.cellSize : e.y) || 0, i = ("cols" in e ? e.cols * t.cellSize : e.width) || t.size, u = ("rows" in e ? e.rows * t.cellSize : e.height) || t.size, a < 0 && (a += t.size), o < 0 && (o += t.size), n.fillStyle = e.style || "black", n.fillRect(a, o, i, u)
- }
- })
- }
- return r
- }
- function o(r, t) {
- for (var e = r && r.length || 0, n = 0; n < e; n++) t.call(r, r[n], n)
- }
- function i() {
- var r;
- return o(arguments, function(t) {
- if (r) {
- if (t) for (var e in t) r[e] = t[e]
- } else r = t
- }), r
- }
- function u() {
- var r = [];
- return o(arguments, function(t) {
- Array.isArray(t) ? r = r.concat(t) : null != t && r.push(t)
- }), r
- }
- function f(r, t) {
- var e = this;
- t = t || {}, e.margin = t.margin || 0, e.nobg = !! t.nobg, e.isBackgroundColor = t.isBackgroundColor || e.isBackgroundColor, e.prepare(r)
- }
- var l = function() {
- function r(t, e) {
- if ("undefined" == typeof t.length) throw new Error(t.length + "/" + e);
- var n = function() {
- for (var r = 0; r < t.length && 0 == t[r];) r += 1;
- for (var n = new Array(t.length - r + e), a = 0; a < t.length - r; a += 1) n[a] = t[a + r];
- return n
- }(),
- a = {};
- return a.getAt = function(r) {
- return n[r]
- }, a.getLength = function() {
- return n.length
- }, a.multiply = function(t) {
- for (var e = new Array(a.getLength() + t.getLength() - 1), n = 0; n < a.getLength(); n += 1) for (var o = 0; o < t.getLength(); o += 1) e[n + o] ^= i.gexp(i.glog(a.getAt(n)) + i.glog(t.getAt(o)));
- return r(e, 0)
- }, a.mod = function(t) {
- if (a.getLength() - t.getLength() < 0) return a;
- for (var e = i.glog(a.getAt(0)) - i.glog(t.getAt(0)), n = new Array(a.getLength()), o = 0; o < a.getLength(); o += 1) n[o] = a.getAt(o);
- for (var o = 0; o < t.getLength(); o += 1) n[o] ^= i.gexp(i.glog(t.getAt(o)) + e);
- return r(n, 0).mod(t)
- }, a
- }
- var t = function(t, e) {
- var a = 236,
- i = 17,
- g = t,
- c = n[e],
- h = null,
- s = 0,
- v = null,
- d = new Array,
- w = {},
- p = function(r, t) {
- for (; null == v;) try {
- v = x(g, c, d);
- break
- } catch (r) {
- if (g++, g > 40) throw r
- }
- s = 4 * g + 17, h = function(r) {
- for (var t = new Array(r), e = 0; e < r; e += 1) {
- t[e] = new Array(r);
- for (var n = 0; n < r; n += 1) t[e][n] = null
- }
- return t
- }(s), m(0, 0), m(s - 7, 0), m(0, s - 7), A(), k(), T(r, t), g >= 7 && E(r), D(v, t)
- },
- m = function(r, t) {
- for (var e = -1; e <= 7; e += 1) if (!(r + e <= -1 || s <= r + e)) for (var n = -1; n <= 7; n += 1) t + n <= -1 || s <= t + n || (0 <= e && e <= 6 && (0 == n || 6 == n) || 0 <= n && n <= 6 && (0 == e || 6 == e) || 2 <= e && e <= 4 && 2 <= n && n <= 4 ? h[r + e][t + n] = !0 : h[r + e][t + n] = !1)
- },
- y = function() {
- for (var r = 0, t = 0, e = 0; e < 8; e += 1) {
- p(!0, e);
- var n = o.getLostPoint(w);
- (0 == e || r > n) && (r = n, t = e)
- }
- return t
- },
- k = function() {
- for (var r = 8; r < s - 8; r += 1) null == h[r][6] && (h[r][6] = r % 2 == 0);
- for (var t = 8; t < s - 8; t += 1) null == h[6][t] && (h[6][t] = t % 2 == 0)
- },
- A = function() {
- for (var r = o.getPatternPosition(g), t = 0; t < r.length; t += 1) for (var e = 0; e < r.length; e += 1) {
- var n = r[t],
- a = r[e];
- if (null == h[n][a]) for (var i = -2; i <= 2; i += 1) for (var u = -2; u <= 2; u += 1) i == -2 || 2 == i || u == -2 || 2 == u || 0 == i && 0 == u ? h[n + i][a + u] = !0 : h[n + i][a + u] = !1
- }
- },
- E = function(r) {
- for (var t = o.getBCHTypeNumber(g), e = 0; e < 18; e += 1) {
- var n = !r && 1 == (t >> e & 1);
- h[Math.floor(e / 3)][e % 3 + s - 8 - 3] = n
- }
- for (var e = 0; e < 18; e += 1) {
- var n = !r && 1 == (t >> e & 1);
- h[e % 3 + s - 8 - 3][Math.floor(e / 3)] = n
- }
- },
- T = function(r, t) {
- for (var e = c << 3 | t, n = o.getBCHTypeInfo(e), a = 0; a < 15; a += 1) {
- var i = !r && 1 == (n >> a & 1);
- a < 6 ? h[a][8] = i : a < 8 ? h[a + 1][8] = i : h[s - 15 + a][8] = i
- }
- for (var a = 0; a < 15; a += 1) {
- var i = !r && 1 == (n >> a & 1);
- a < 8 ? h[8][s - a - 1] = i : a < 9 ? h[8][15 - a - 1 + 1] = i : h[8][15 - a - 1] = i
- }
- h[s - 8][8] = !r
- },
- D = function(r, t) {
- for (var e = -1, n = s - 1, a = 7, i = 0, u = o.getMaskFunction(t), f = s - 1; f > 0; f -= 2) for (6 == f && (f -= 1);;) {
- for (var l = 0; l < 2; l += 1) if (null == h[n][f - l]) {
- var g = !1;
- i < r.length && (g = 1 == (r[i] >>> a & 1));
- var c = u(n, f - l);
- c && (g = !g), h[n][f - l] = g, a -= 1, a == -1 && (i += 1, a = 7)
- }
- if (n += e, n < 0 || s <= n) {
- n -= e, e = -e;
- break
- }
- }
- },
- M = function(t, e) {
- for (var n = 0, a = 0, i = 0, u = new Array(e.length), f = new Array(e.length), l = 0; l < e.length; l += 1) {
- var g = e[l].dataCount,
- c = e[l].totalCount - g;
- a = Math.max(a, g), i = Math.max(i, c), u[l] = new Array(g);
- for (var h = 0; h < u[l].length; h += 1) u[l][h] = 255 & t.getBuffer()[h + n];
- n += g;
- var s = o.getErrorCorrectPolynomial(c),
- v = r(u[l], s.getLength() - 1),
- d = v.mod(s);
- f[l] = new Array(s.getLength() - 1);
- for (var h = 0; h < f[l].length; h += 1) {
- var w = h + d.getLength() - f[l].length;
- f[l][h] = w >= 0 ? d.getAt(w) : 0
- }
- }
- for (var p = 0, h = 0; h < e.length; h += 1) p += e[h].totalCount;
- for (var m = new Array(p), y = 0, h = 0; h < a; h += 1) for (var l = 0; l < e.length; l += 1) h < u[l].length && (m[y] = u[l][h], y += 1);
- for (var h = 0; h < i; h += 1) for (var l = 0; l < e.length; l += 1) h < f[l].length && (m[y] = f[l][h], y += 1);
- return m
- },
- x = function(r, t, e) {
- for (var n = u.getRSBlocks(r, t), l = f(), g = 0; g < e.length; g += 1) {
- var c = e[g];
- l.put(c.getMode(), 4), l.put(c.getLength(), o.getLengthInBits(c.getMode(), r)), c.write(l)
- }
- for (var h = 0, g = 0; g < n.length; g += 1) h += n[g].dataCount;
- if (l.getLengthInBits() > 8 * h) throw new Error("code length overflow. (" + l.getLengthInBits() + ">" + 8 * h + ")");
- for (l.getLengthInBits() + 4 <= 8 * h && l.put(0, 4); l.getLengthInBits() % 8 != 0;) l.putBit(!1);
- for (;;) {
- if (l.getLengthInBits() >= 8 * h) break;
- if (l.put(a, 8), l.getLengthInBits() >= 8 * h) break;
- l.put(i, 8)
- }
- return M(l, n)
- };
- return w.addData = function(r) {
- var t = l(r);
- d.push(t), v = null
- }, w.isDark = function(r, t) {
- if (r < 0 || s <= r || t < 0 || s <= t) throw new Error(r + "," + t);
- return h[r][t]
- }, w.getModuleCount = function() {
- return s
- }, w.make = function() {
- p(!1, y())
- }, w
- };
- t.stringToBytes = function(r) {
- var t = [];
- r = r.replace(/\r\n/g, "\n");
- for (var e = 0; e < r.length; e++) {
- var n = r.charCodeAt(e);
- n < 128 ? t.push(n) : n < 2048 ? t.push(n >> 6 | 192, 63 & n | 128) : t.push(n >> 12 | 224, n >> 6 & 63 | 128, 63 & n | 128)
- }
- return t
- }, t.createStringToBytes = function(r, t) {
- var e = function() {
- for (var e = base64DecodeInputStream(r), n = function() {
- var r = e.read();
- if (r == -1) throw new Error;
- return r
- }, a = 0, o = {};;) {
- var i = e.read();
- if (i == -1) break;
- var u = n(),
- f = n(),
- l = n(),
- g = String.fromCharCode(i << 8 | u),
- c = f << 8 | l;
- o[g] = c, a += 1
- }
- if (a != t) throw new Error(a + " != " + t);
- return o
- }(),
- n = "?".charCodeAt(0);
- return function(r) {
- for (var t = new Array, a = 0; a < r.length; a += 1) {
- var o = r.charCodeAt(a);
- if (o < 128) t.push(o);
- else {
- var i = e[r.charAt(a)];
- "number" == typeof i ? (255 & i) == i ? t.push(i) : (t.push(i >>> 8), t.push(255 & i)) : t.push(n)
- }
- }
- return t
- }
- };
- var e = {
- MODE_NUMBER: 1,
- MODE_ALPHA_NUM: 2,
- MODE_8BIT_BYTE: 4,
- MODE_KANJI: 8
- },
- n = {
- L: 1,
- M: 0,
- Q: 3,
- H: 2
- },
- a = {
- PATTERN000: 0,
- PATTERN001: 1,
- PATTERN010: 2,
- PATTERN011: 3,
- PATTERN100: 4,
- PATTERN101: 5,
- PATTERN110: 6,
- PATTERN111: 7
- },
- o = function() {
- var t = [
- [],
- [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]
- ],
- n = 1335,
- o = 7973,
- u = 21522,
- f = {},
- l = function(r) {
- for (var t = 0; 0 != r;) t += 1, r >>>= 1;
- return t
- };
- return f.getBCHTypeInfo = function(r) {
- for (var t = r << 10; l(t) - l(n) >= 0;) t ^= n << l(t) - l(n);
- return (r << 10 | t) ^ u
- }, f.getBCHTypeNumber = function(r) {
- for (var t = r << 12; l(t) - l(o) >= 0;) t ^= o << l(t) - l(o);
- return r << 12 | t
- }, f.getPatternPosition = function(r) {
- return t[r - 1]
- }, f.getMaskFunction = function(r) {
- switch (r) {
- case a.PATTERN000:
- return function(r, t) {
- return (r + t) % 2 == 0
- };
- case a.PATTERN001:
- return function(r, t) {
- return r % 2 == 0
- };
- case a.PATTERN010:
- return function(r, t) {
- return t % 3 == 0
- };
- case a.PATTERN011:
- return function(r, t) {
- return (r + t) % 3 == 0
- };
- case a.PATTERN100:
- return function(r, t) {
- return (Math.floor(r / 2) + Math.floor(t / 3)) % 2 == 0
- };
- case a.PATTERN101:
- return function(r, t) {
- return r * t % 2 + r * t % 3 == 0
- };
- case a.PATTERN110:
- return function(r, t) {
- return (r * t % 2 + r * t % 3) % 2 == 0
- };
- case a.PATTERN111:
- return function(r, t) {
- return (r * t % 3 + (r + t) % 2) % 2 == 0
- };
- default:
- throw new Error("bad maskPattern:" + r)
- }
- }, f.getErrorCorrectPolynomial = function(t) {
- for (var e = r([1], 0), n = 0; n < t; n += 1) e = e.multiply(r([1, i.gexp(n)], 0));
- return e
- }, f.getLengthInBits = function(r, t) {
- if (1 <= t && t < 10) switch (r) {
- case e.MODE_NUMBER:
- return 10;
- case e.MODE_ALPHA_NUM:
- return 9;
- case e.MODE_8BIT_BYTE:
- return 8;
- case e.MODE_KANJI:
- return 8;
- default:
- throw new Error("mode:" + r)
- } else if (t < 27) switch (r) {
- case e.MODE_NUMBER:
- return 12;
- case e.MODE_ALPHA_NUM:
- return 11;
- case e.MODE_8BIT_BYTE:
- return 16;
- case e.MODE_KANJI:
- return 10;
- default:
- throw new Error("mode:" + r)
- } else {
- if (!(t < 41)) throw new Error("type:" + t);
- switch (r) {
- case e.MODE_NUMBER:
- return 14;
- case e.MODE_ALPHA_NUM:
- return 13;
- case e.MODE_8BIT_BYTE:
- return 16;
- case e.MODE_KANJI:
- return 12;
- default:
- throw new Error("mode:" + r)
- }
- }
- }, f.getLostPoint = function(r) {
- for (var t = r.getModuleCount(), e = 0, n = 0; n < t; n += 1) for (var a = 0; a < t; a += 1) {
- for (var o = 0, i = r.isDark(n, a), u = -1; u <= 1; u += 1) if (!(n + u < 0 || t <= n + u)) for (var f = -1; f <= 1; f += 1) a + f < 0 || t <= a + f || 0 == u && 0 == f || i == r.isDark(n + u, a + f) && (o += 1);
- o > 5 && (e += 3 + o - 5)
- }
- for (var n = 0; n < t - 1; n += 1) for (var a = 0; a < t - 1; a += 1) {
- var l = 0;
- r.isDark(n, a) && (l += 1), r.isDark(n + 1, a) && (l += 1), r.isDark(n, a + 1) && (l += 1), r.isDark(n + 1, a + 1) && (l += 1), 0 != l && 4 != l || (e += 3)
- }
- for (var n = 0; n < t; n += 1) for (var a = 0; a < t - 6; a += 1) r.isDark(n, a) && !r.isDark(n, a + 1) && r.isDark(n, a + 2) && r.isDark(n, a + 3) && r.isDark(n, a + 4) && !r.isDark(n, a + 5) && r.isDark(n, a + 6) && (e += 40);
- for (var a = 0; a < t; a += 1) for (var n = 0; n < t - 6; n += 1) r.isDark(n, a) && !r.isDark(n + 1, a) && r.isDark(n + 2, a) && r.isDark(n + 3, a) && r.isDark(n + 4, a) && !r.isDark(n + 5, a) && r.isDark(n + 6, a) && (e += 40);
- for (var g = 0, a = 0; a < t; a += 1) for (var n = 0; n < t; n += 1) r.isDark(n, a) && (g += 1);
- var c = Math.abs(100 * g / t / t - 50) / 5;
- return e += 10 * c
- }, f
- }(),
- i = function() {
- for (var r = new Array(256), t = new Array(256), e = 0; e < 8; e += 1) r[e] = 1 << e;
- for (var e = 8; e < 256; e += 1) r[e] = r[e - 4] ^ r[e - 5] ^ r[e - 6] ^ r[e - 8];
- for (var e = 0; e < 255; e += 1) t[r[e]] = e;
- var n = {};
- return n.glog = function(r) {
- if (r < 1) throw new Error("glog(" + r + ")");
- return t[r]
- }, n.gexp = function(t) {
- for (; t < 0;) t += 255;
- for (; t >= 256;) t -= 255;
- return r[t]
- }, n
- }(),
- u = function() {
- var r = [
- [1, 26, 19],
- [1, 26, 16],
- [1, 26, 13],
- [1, 26, 9],
- [1, 44, 34],
- [1, 44, 28],
- [1, 44, 22],
- [1, 44, 16],
- [1, 70, 55],
- [1, 70, 44],
- [2, 35, 17],
- [2, 35, 13],
- [1, 100, 80],
- [2, 50, 32],
- [2, 50, 24],
- [4, 25, 9],
- [1, 134, 108],
- [2, 67, 43],
- [2, 33, 15, 2, 34, 16],
- [2, 33, 11, 2, 34, 12],
- [2, 86, 68],
- [4, 43, 27],
- [4, 43, 19],
- [4, 43, 15],
- [2, 98, 78],
- [4, 49, 31],
- [2, 32, 14, 4, 33, 15],
- [4, 39, 13, 1, 40, 14],
- [2, 121, 97],
- [2, 60, 38, 2, 61, 39],
- [4, 40, 18, 2, 41, 19],
- [4, 40, 14, 2, 41, 15],
- [2, 146, 116],
- [3, 58, 36, 2, 59, 37],
- [4, 36, 16, 4, 37, 17],
- [4, 36, 12, 4, 37, 13],
- [2, 86, 68, 2, 87, 69],
- [4, 69, 43, 1, 70, 44],
- [6, 43, 19, 2, 44, 20],
- [6, 43, 15, 2, 44, 16][81],
- [1, 80, 50, 4, 81, 51],
- [4, 50, 22, 4, 51, 23],
- [3, 36, 12, 8, 37, 13],
- [2, 116, 92, 2, 117, 93],
- [6, 58, 36, 2, 59, 37],
- [4, 46, 20, 6, 47, 21],
- [7, 42, 14, 4, 43, 15],
- [4, 133, 107],
- [8, 59, 37, 1, 60, 38],
- [8, 44, 20, 4, 45, 21],
- [12, 33, 11, 4, 34, 12],
- [3, 145, 115, 1, 146, 116],
- [4, 64, 40, 5, 65, 41],
- [11, 36, 16, 5, 37, 17],
- [11, 36, 12, 5, 37, 13],
- [5, 109, 87, 1, 110, 88],
- [5, 65, 41, 5, 66, 42],
- [5, 54, 24, 7, 55, 25],
- [11, 36, 12, 7, 37, 13],
- [5, 122, 98, 1, 123, 99],
- [7, 73, 45, 3, 74, 46],
- [15, 43, 19, 2, 44, 20],
- [3, 45, 15, 13, 46, 16],
- [1, 135, 107, 5, 136, 108],
- [10, 74, 46, 1, 75, 47],
- [1, 50, 22, 15, 51, 23],
- [2, 42, 14, 17, 43, 15],
- [5, 150, 120, 1, 151, 121],
- [9, 69, 43, 4, 70, 44],
- [17, 50, 22, 1, 51, 23],
- [2, 42, 14, 19, 43, 15],
- [3, 141, 113, 4, 142, 114],
- [3, 70, 44, 11, 71, 45],
- [17, 47, 21, 4, 48, 22],
- [9, 39, 13, 16, 40, 14],
- [3, 135, 107, 5, 136, 108],
- [3, 67, 41, 13, 68, 42],
- [15, 54, 24, 5, 55, 25],
- [15, 43, 15, 10, 44, 16],
- [4, 144, 116, 4, 145, 117],
- [17, 68, 42],
- [17, 50, 22, 6, 51, 23],
- [19, 46, 16, 6, 47, 17],
- [2, 139, 111, 7, 140, 112],
- [17, 74, 46],
- [7, 54, 24, 16, 55, 25],
- [34, 37, 13],
- [4, 151, 121, 5, 152, 122],
- [4, 75, 47, 14, 76, 48],
- [11, 54, 24, 14, 55, 25],
- [16, 45, 15, 14, 46, 16],
- [6, 147, 117, 4, 148, 118],
- [6, 73, 45, 14, 74, 46],
- [11, 54, 24, 16, 55, 25],
- [30, 46, 16, 2, 47, 17],
- [8, 132, 106, 4, 133, 107],
- [8, 75, 47, 13, 76, 48],
- [7, 54, 24, 22, 55, 25],
- [22, 45, 15, 13, 46, 16],
- [10, 142, 114, 2, 143, 115],
- [19, 74, 46, 4, 75, 47],
- [28, 50, 22, 6, 51, 23],
- [33, 46, 16, 4, 47, 17],
- [8, 152, 122, 4, 153, 123],
- [22, 73, 45, 3, 74, 46],
- [8, 53, 23, 26, 54, 24],
- [12, 45, 15, 28, 46, 16],
- [3, 147, 117, 10, 148, 118],
- [3, 73, 45, 23, 74, 46],
- [4, 54, 24, 31, 55, 25],
- [11, 45, 15, 31, 46, 16],
- [7, 146, 116, 7, 147, 117],
- [21, 73, 45, 7, 74, 46],
- [1, 53, 23, 37, 54, 24],
- [19, 45, 15, 26, 46, 16],
- [5, 145, 115, 10, 146, 116],
- [19, 75, 47, 10, 76, 48],
- [15, 54, 24, 25, 55, 25],
- [23, 45, 15, 25, 46, 16],
- [13, 145, 115, 3, 146, 116],
- [2, 74, 46, 29, 75, 47],
- [42, 54, 24, 1, 55, 25],
- [23, 45, 15, 28, 46, 16],
- [17, 145, 115],
- [10, 74, 46, 23, 75, 47],
- [10, 54, 24, 35, 55, 25],
- [19, 45, 15, 35, 46, 16],
- [17, 145, 115, 1, 146, 116],
- [14, 74, 46, 21, 75, 47],
- [29, 54, 24, 19, 55, 25],
- [11, 45, 15, 46, 46, 16],
- [13, 145, 115, 6, 146, 116],
- [14, 74, 46, 23, 75, 47],
- [44, 54, 24, 7, 55, 25],
- [59, 46, 16, 1, 47, 17],
- [12, 151, 121, 7, 152, 122],
- [12, 75, 47, 26, 76, 48],
- [39, 54, 24, 14, 55, 25],
- [22, 45, 15, 41, 46, 16],
- [6, 151, 121, 14, 152, 122],
- [6, 75, 47, 34, 76, 48],
- [46, 54, 24, 10, 55, 25],
- [2, 45, 15, 64, 46, 16],
- [17, 152, 122, 4, 153, 123],
- [29, 74, 46, 14, 75, 47],
- [49, 54, 24, 10, 55, 25],
- [24, 45, 15, 46, 46, 16],
- [4, 152, 122, 18, 153, 123],
- [13, 74, 46, 32, 75, 47],
- [48, 54, 24, 14, 55, 25],
- [42, 45, 15, 32, 46, 16],
- [20, 147, 117, 4, 148, 118],
- [40, 75, 47, 7, 76, 48],
- [43, 54, 24, 22, 55, 25],
- [10, 45, 15, 67, 46, 16],
- [19, 148, 118, 6, 149, 119],
- [18, 75, 47, 31, 76, 48],
- [34, 54, 24, 34, 55, 25],
- [20, 45, 15, 61, 46, 16]
- ],
- t = function(r, t) {
- var e = {};
- return e.totalCount = r, e.dataCount = t, e
- },
- e = {},
- a = function(t, e) {
- switch (e) {
- case n.L:
- return r[4 * (t - 1) + 0];
- case n.M:
- return r[4 * (t - 1) + 1];
- case n.Q:
- return r[4 * (t - 1) + 2];
- case n.H:
- return r[4 * (t - 1) + 3];
- default:
- return
- }
- };
- return e.getRSBlocks = function(r, e) {
- var n = a(r, e);
- if ("undefined" == typeof n) throw new Error("bad rs block @ typeNumber:" + r + "/errorCorrectLevel:" + e);
- for (var o = n.length / 3, i = new Array, u = 0; u < o; u += 1) for (var f = n[3 * u + 0], l = n[3 * u + 1], g = n[3 * u + 2], c = 0; c < f; c += 1) i.push(t(l, g));
- return i
- }, e
- }(),
- f = function() {
- var r = new Array,
- t = 0,
- e = {};
- return e.getBuffer = function() {
- return r
- }, e.getAt = function(t) {
- var e = Math.floor(t / 8);
- return 1 == (r[e] >>> 7 - t % 8 & 1)
- }, e.put = function(r, t) {
- for (var n = 0; n < t; n += 1) e.putBit(1 == (r >>> t - n - 1 & 1))
- }, e.getLengthInBits = function() {
- return t
- }, e.putBit = function(e) {
- var n = Math.floor(t / 8);
- r.length <= n && r.push(0), e && (r[n] |= 128 >>> t % 8), t += 1
- }, e
- },
- l = function(r) {
- var n = e.MODE_8BIT_BYTE,
- a = t.stringToBytes(r),
- o = {};
- return o.getMode = function() {
- return n
- }, o.getLength = function(r) {
- return a.length
- }, o.write = function(r) {
- for (var t = 0; t < a.length; t += 1) r.put(a[t], 8)
- }, o
- };
- return t
- }();
- t.c = {
- square: {
- data: function(r, e) {
- var n = e.context,
- a = e.cellSize;
- e.isDark(r.i, r.j) && (n.fillStyle = t.d, n.fillRect(r.x, r.y, a, a))
- }
- }
- }, t.e = function(r) {
- return t.c[r] || t.c.square
- }, t.d = "black", t.f = "white", t.prototype.a = function(r) {
- var e = this;
- r = e.g = i({
- typeNumber: 1,
- correctLevel: "M",
- foreground: t.d,
- background: null,
- data: "",
- effect: {},
- noAlpha: !0,
- reuseCanvas: null
- }, r);
- var n = e.h = {
- color: t.d,
- fontFamily: "Cursive",
- clearEdges: 0,
- margin: -1,
- size: .15
- },
- a = r.logo;
- a && (a.image || a.text) && i(n, a), (n.image || n.text) && n.margin < 0 && (n.margin = n.image ? 0 : 2), (n.image || n.text || "image" === r.effect.key) && (r.correctLevel = "H");
- var o = l(r.typeNumber, r.correctLevel);
- o.addData(r.data), o.make();
- var u = o.getModuleCount(),
- f = r.cellSize,
- g = r.size;
- f || g || (f = 2), f ? g = f * u : f = g / u, e.k = f, e.l = g, e.m = u, e.n = o
- }, t.prototype.o = function(r, t) {
- var e = this,
- n = e.m;
- return r >= 0 && r < n && t >= 0 && t < n && e.p(r * n + t) && e.n.isDark(r, t)
- }, t.prototype.b = function() {
- var r = this,
- e = r.g,
- o = r.m,
- i = Math.ceil(r.k),
- f = i * o,
- l = n(f, f),
- g = {
- cellSize: i,
- size: f,
- count: o,
- effect: e.effect,
- foreground: e.foreground
- };
- r.q(l), r.r(l, g), r.s(l);
- var c = r.t(g),
- h = c.getContext("2d");
- h.globalCompositeOperation = "destination-in", h.drawImage(l, 0, 0);
- var s = a(n(f, f), {
- cellSize: i,
- size: f,
- data: u(e.noAlpha ? t.f : null, e.background, c)
- }),
- v = r.h;
- v.canvas && s.getContext("2d").drawImage(v.canvas, v.x, v.y);
- var d = r.l,
- w = e.reuseCanvas;
- if (w ? w.width = w.height = d : f != d && (w = n(d, d)), w) {
- var p = w.getContext("2d");
- p.drawImage(s, 0, 0, d, d)
- } else w = s;
- return w
- }, t.prototype.t = function(r) {
- var e = this,
- o = r.cellSize,
- u = r.size,
- f = r.effect || {},
- l = t.e(f.key);
- return l.foreground ? l.foreground(i({
- mask: function() {
- var t = n(u, u);
- return e.r(t, {
- cellSize: o,
- count: r.count
- }), t
- }
- }, r)) : a(n(u, u), {
- cellSize: o,
- size: u,
- data: r.foreground
- })
- }, t.prototype.q = function(r) {
- var t, e, a, o = this,
- i = o.h,
- u = o.m,
- f = o.k,
- l = o.l,
- g = r.getContext("2d");
- if (i.image) t = i.image, e = t.naturalWidth || t.width, a = t.naturalHeight || t.height;
- else {
- if (!i.text) return;
- a = 100, t = "", i.fontStyle && (t += i.fontStyle + " "), t += a + "px " + i.fontFamily, g.font = t, e = g.measureText(i.text).width
- }
- t = e / a;
- var c = ~~ (Math.sqrt(Math.min(e * a / l / l, i.size) / t) * u),
- h = ~~ (t * c);
- (u - h) % 2 && h++, (u - c) % 2 && c++, t = Math.min((c * f - 2 * i.margin) / a, (h * f - 2 * i.margin) / e, 1), i.width = ~~ (t * e), i.height = ~~ (t * a), i.x = (l - i.width >> 1) - i.margin, i.y = (l - i.height >> 1) - i.margin, i.canvas = n(i.width + 2 * i.margin, i.height + 2 * i.margin);
- var s = i.canvas.getContext("2d");
- if (i.image) s.drawImage(i.image, i.margin, i.margin, i.width, i.height);
- else {
- var v = "";
- i.fontStyle && (v += i.fontStyle + " "), v += i.height + "px " + i.fontFamily, s.font = v, s.textAlign = "center", s.textBaseline = "middle", s.fillStyle = i.color, s.fillText(i.text, (i.width >> 1) + i.margin, (i.height >> 1) + i.margin)
- }
- o.u()
- }, t.prototype.r = function(r, e) {
- for (var n = this, a = e.cellSize, o = e.count, i = e.effect || {}, u = {
- cellSize: a,
- count: o,
- context: r.getContext("2d"),
- value: i.value || 0,
- isDark: n.o.bind(n)
- }, f = t.e(i.key), l = 0; l < o; l++) for (var g = 0; g < o; g++) f.data({
- i: l,
- j: g,
- x: g * a,
- y: l * a
- }, u)
- }, t.prototype.v = function(r, t, e) {
- return ~~ (r * e / 255 + t * (255 - e) / 255)
- }, t.prototype.u = function() {}, t.prototype.s = function(r) {}, t.prototype.p = function(r) {
- return !this.h.clearEdges
- };
- var g = r.Uint8Array || r.Array;
- return f.prototype = {
- prepare: function(r) {
- function t(r) {
- var t = l[r];
- if (!t) {
- var e = 4 * r,
- n = h.call(u.data, e, e + 4);
- t = a.isBackgroundColor(n) ? l[r] = 1 : l[r] = 2
- }
- return 1 === t
- }
- function e(r) {
- if (!f[r]) {
- for (var e = r % a.width, n = ~~ (r / a.width), o = a.margin + 1, i = Math.max(0, e - o + 1); i < e + o && i < a.width; i++) for (var u = Math.max(0, n - o + 1); u < n + o && u < a.height; u++) {
- var l = i - e,
- g = u - n;
- if (l * l + g * g < o * o && !t(i + u * a.width)) return void(f[r] = 2)
- }
- f[r] = 1, c.push(r)
- }
- }
- function n(r, t) {
- r % a.width && e(r - 1), t || e(r), (r + 1) % a.width && e(r + 1)
- }
- var a = this,
- o = r.getContext("2d");
- if (a.width = r.width, a.height = r.height, a.total = a.width * a.height, !a.nobg) {
- var i, u = o.getImageData(0, 0, a.width, a.height),
- f = a.data = new g(a.total),
- l = new g(a.total),
- c = [],
- h = [].slice;
- for (i = 0; i < a.width; i++) e(i), e(a.total - 1 - i);
- for (i = 0; i < a.height; i++) e(i * a.width), e((i + 1) * a.width - 1);
- for (var s = 0; s < c.length;) {
- var v = c[s];
- v > a.width && n(v - a.width), n(v, !0), v + a.width < a.total && n(v + a.width), s++
- }
- a.totalBackground = s
- }
- },
- isBackgroundColor: function(r) {
- return !r[3]
- },
- isBackground: function() {
- var r, t = arguments,
- e = this;
- if (1 == t.length) r = t[0];
- else {
- if (2 != t.length) {
- if (4 == t.length) {
- var n = t[0],
- a = t[1],
- o = n + t[2],
- i = a + t[3];
- n < 0 && (n = 0), a < 0 && (a = 0), o > e.width && (o = e.width), i > e.height && (i = e.height);
- for (var u = n; u < o; u++) for (var f = a; f < i; f++) if (!e.isBackground(u, f)) return !1;
- return !0
- }
- throw Error("Invalid index")
- }
- r = t[0] + t[1] * e.width
- }
- return !e.nobg && 1 === e.data[r]
- },
- clearBackground: function(r) {
- var t = this;
- if (r.width == t.width && r.height == t.height) {
- for (var e = r.getContext("2d"), n = e.getImageData(0, 0, t.width, t.height), a = 0; a < t.total; a++) if (t.isBackground(a)) {
- var o = 4 * a;
- n.data[o] = 0, n.data[o + 1] = 0, n.data[o + 2] = 0, n.data[o + 3] = 0
- }
- return e.putImageData(n, 0, 0), r
- }
- }
- }, t.prototype.u = function() {
- var r = this,
- t = r.h,
- e = r.m,
- n = r.k,
- a = t.edger = new f(t.canvas, {
- margin: t.margin,
- nobg: 2 == t.clearEdges
- });
- if (t.clearEdges) for (var o = r.w = new g(e * e), i = 0; i < e; i++) for (var u = 0; u < e; u++) o[i * e + u] = a.isBackground(u * n - t.x, i * n - t.y, n, n)
- }, t.prototype.s = function(r) {
- var t = this,
- e = t.h;
- if ((e.image || e.text) && !e.clearEdges) {
- var a = n(e.width + 2 * e.margin, e.height + 2 * e.margin),
- o = a.getContext("2d");
- o.fillStyle = "white", o.fillRect(0, 0, a.width, a.height), e.edger.clearBackground(a);
- var i = r.getContext("2d");
- i.globalCompositeOperation = "destination-out", i.drawImage(a, e.x, e.y)
- }
- }, t.prototype.p = function(r) {
- var t = this;
- return !t.h.clearEdges || t.w[r]
- }, !
- function() {
- function r(r, t, e, n, a, o) {
- o ? r.arcTo(t, e, n, a, o) : (r.lineTo(t, e), r.lineTo(n, a))
- }
- function e(e, n) {
- var a = e.x,
- o = e.y,
- i = n.cellSize,
- u = n.value * i / 2,
- f = n.context;
- n.isDark(e.i, e.j) && (f.fillStyle = t.d, f.beginPath(), f.moveTo(a + .5 * i, o), r(f, a + i, o, a + i, o + .5 * i, u), r(f, a + i, o + i, a + .5 * i, o + i, u), r(f, a, o + i, a, o + .5 * i, u), r(f, a, o, a + .5 * i, o, u), f.fill())
- }
- function o(t, e, n, a, o, i, u, f) {
- t.beginPath(), t.moveTo(e, n), r(t, a, o, i, u, f), t.lineTo(a, o), t.lineTo(e, n), t.fill()
- }
- function u(e, n) {
- var a = [0, 0, 0, 0],
- i = e.i,
- u = e.j,
- f = e.x,
- l = e.y,
- g = n.cellSize,
- c = n.value * g / 2,
- h = n.context;
- n.isDark(i - 1, u) && (a[0]++, a[1]++), n.isDark(i + 1, u) && (a[2]++, a[3]++), n.isDark(i, u - 1) && (a[0]++, a[3]++), n.isDark(i, u + 1) && (a[1]++, a[2]++), h.fillStyle = t.d, n.isDark(i, u) ? (n.isDark(i - 1, u - 1) && a[0]++, n.isDark(i - 1, u + 1) && a[1]++, n.isDark(i + 1, u + 1) && a[2]++, n.isDark(i + 1, u - 1) && a[3]++, h.beginPath(), h.moveTo(f + .5 * g, l), r(h, f + g, l, f + g, l + .5 * g, a[1] ? 0 : c), r(h, f + g, l + g, f + .5 * g, l + g, a[2] ? 0 : c), r(h, f, l + g, f, l + .5 * g, a[3] ? 0 : c), r(h, f, l, f + .5 * g, l, a[0] ? 0 : c), h.fill()) : (2 == a[0] && o(h, f, l + .5 * g, f, l, f + .5 * g, l, c), 2 == a[1] && o(h, f + .5 * g, l, f + g, l, f + g, l + .5 * g, c), 2 == a[2] && o(h, f + g, l + .5 * g, f + g, l + g, f + .5 * g, l + g, c), 2 == a[3] && o(h, f + .5 * g, l + g, f, l + g, f, l + .5 * g, c))
- }
- function f(r, e) {
- var n = r.i,
- a = r.j,
- o = r.x,
- i = r.y,
- u = e.context,
- f = e.cellSize,
- l = e.count;
- u.fillStyle = t.d;
- var g = .25;
- (n <= 7 && a <= 7 || n <= 7 && l - a - 1 <= 7 || l - n - 1 <= 7 && a <= 7 || n + 5 <= l && n + 9 >= l && a + 5 <= l && a + 9 >= l || 7 === n || 7 === a) && (g = 1 - .1 * e.value);
- var c = (1 - g) / 2;
- u.fillRect(o + c * f, i + c * f, g * f, g * f)
- }
- function l(r) {
- var e = r.cellSize,
- o = r.size,
- i = r.mask(),
- u = a(n(o, o), {
- cellSize: e,
- size: o,
- data: r.foreground
- }),
- f = u.getContext("2d");
- return f.globalCompositeOperation = "destination-in", f.drawImage(i, 0, 0), f.globalCompositeOperation = "destination-over", f.fillStyle = t.f, f.fillRect(0, 0, o, o), u
- }
- i(t.c, {
- round: {
- data: e
- },
- liquid: {
- data: u
- },
- image: {
- data: f,
- foreground: l
- }
- })
- }(), {
- canvas: e
- }
- });
|