UNPKG

@jysd/lrz

Version:

前端本地客户端压缩图片,兼容IOS,Android,PC、自动按需加载文件

539 lines (515 loc) 17.2 kB
webpackJsonp([2],{ /***/ 9: /***/ (function(module, exports) { function JPEGEncoder (l) { var o = this; var s = Math.round; var k = Math.floor; var O = new Array(64); var K = new Array(64); var d = new Array(64); var Z = new Array(64); var u; var h; var G; var T; var n = new Array(65535); var m = new Array(65535); var P = new Array(64); var S = new Array(64); var j = []; var t = 0; var a = 7; var A = new Array(64); var f = new Array(64); var U = new Array(64); var e = new Array(256); var C = new Array(2048); var x; var i = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63]; var g = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]; var c = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; var w = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125]; var E = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250]; var v = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]; var Y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; var J = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119]; var B = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250]; function M (ag) { var af = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99]; for (var ae = 0; ae < 64; ae++) { var aj = k((af[ae] * ag + 50) / 100); if (aj < 1) { aj = 1 } else { if (aj > 255) { aj = 255 } } O[i[ae]] = aj } var ah = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99]; for (var ad = 0; ad < 64; ad++) { var ai = k((ah[ad] * ag + 50) / 100); if (ai < 1) { ai = 1 } else { if (ai > 255) { ai = 255 } } K[i[ad]] = ai } var ac = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379]; var ab = 0; for (var ak = 0; ak < 8; ak++) { for (var aa = 0; aa < 8; aa++) { d[ab] = (1 / (O[i[ab]] * ac[ak] * ac[aa] * 8)); Z[ab] = (1 / (K[i[ab]] * ac[ak] * ac[aa] * 8)); ab++ } } } function q (ae, aa) { var ad = 0; var ag = 0; var af = new Array(); for (var ab = 1; ab <= 16; ab++) { for (var ac = 1; ac <= ae[ab]; ac++) { af[aa[ag]] = []; af[aa[ag]][0] = ad; af[aa[ag]][1] = ab; ag++; ad++ } ad *= 2 } return af } function W () { u = q(g, c); h = q(v, Y); G = q(w, E); T = q(J, B) } function z () { var ac = 1; var ab = 2; for (var aa = 1; aa <= 15; aa++) { for (var ad = ac; ad < ab; ad++) { m[32767 + ad] = aa; n[32767 + ad] = []; n[32767 + ad][1] = aa; n[32767 + ad][0] = ad } for (var ae = -(ab - 1); ae <= -ac; ae++) { m[32767 + ae] = aa; n[32767 + ae] = []; n[32767 + ae][1] = aa; n[32767 + ae][0] = ab - 1 + ae } ac <<= 1; ab <<= 1 } } function V () { for (var aa = 0; aa < 256; aa++) { C[aa] = 19595 * aa; C[(aa + 256) >> 0] = 38470 * aa; C[(aa + 512) >> 0] = 7471 * aa + 32768; C[(aa + 768) >> 0] = -11059 * aa; C[(aa + 1024) >> 0] = -21709 * aa; C[(aa + 1280) >> 0] = 32768 * aa + 8421375; C[(aa + 1536) >> 0] = -27439 * aa; C[(aa + 1792) >> 0] = -5329 * aa } } function X (aa) { var ac = aa[0]; var ab = aa[1] - 1; while (ab >= 0) { if (ac & (1 << ab)) { t |= (1 << a) } ab--; a--; if (a < 0) { if (t == 255) { F(255); F(0) } else { F(t) } a = 7; t = 0 } } } function F (aa) { j.push(e[aa]) } function p (aa) { F((aa >> 8) & 255); F((aa) & 255) } function N (aZ, ap) { var aL, aK, aJ, aI, aH, aD, aC, aB; var aN = 0; var aR; const aq = 8; const ai = 64; for (aR = 0; aR < aq; ++aR) { aL = aZ[aN]; aK = aZ[aN + 1]; aJ = aZ[aN + 2]; aI = aZ[aN + 3]; aH = aZ[aN + 4]; aD = aZ[aN + 5]; aC = aZ[aN + 6]; aB = aZ[aN + 7]; var aY = aL + aB; var aO = aL - aB; var aX = aK + aC; var aP = aK - aC; var aU = aJ + aD; var aQ = aJ - aD; var aT = aI + aH; var aS = aI - aH; var an = aY + aT; var ak = aY - aT; var am = aX + aU; var al = aX - aU; aZ[aN] = an + am; aZ[aN + 4] = an - am; var ax = (al + ak) * 0.707106781; aZ[aN + 2] = ak + ax; aZ[aN + 6] = ak - ax; an = aS + aQ; am = aQ + aP; al = aP + aO; var at = (an - al) * 0.382683433; var aw = 0.5411961 * an + at; var au = 1.306562965 * al + at; var av = am * 0.707106781; var ah = aO + av; var ag = aO - av; aZ[aN + 5] = ag + aw; aZ[aN + 3] = ag - aw; aZ[aN + 1] = ah + au; aZ[aN + 7] = ah - au; aN += 8 } aN = 0; for (aR = 0; aR < aq; ++aR) { aL = aZ[aN]; aK = aZ[aN + 8]; aJ = aZ[aN + 16]; aI = aZ[aN + 24]; aH = aZ[aN + 32]; aD = aZ[aN + 40]; aC = aZ[aN + 48]; aB = aZ[aN + 56]; var ar = aL + aB; var aj = aL - aB; var az = aK + aC; var ae = aK - aC; var aG = aJ + aD; var ac = aJ - aD; var aW = aI + aH; var aa = aI - aH; var ao = ar + aW; var aV = ar - aW; var ay = az + aG; var aF = az - aG; aZ[aN] = ao + ay; aZ[aN + 32] = ao - ay; var af = (aF + aV) * 0.707106781; aZ[aN + 16] = aV + af; aZ[aN + 48] = aV - af; ao = aa + ac; ay = ac + ae; aF = ae + aj; var aM = (ao - aF) * 0.382683433; var ad = 0.5411961 * ao + aM; var a1 = 1.306562965 * aF + aM; var ab = ay * 0.707106781; var a0 = aj + ab; var aA = aj - ab; aZ[aN + 40] = aA + ad; aZ[aN + 24] = aA - ad; aZ[aN + 8] = a0 + a1; aZ[aN + 56] = a0 - a1; aN++ } var aE; for (aR = 0; aR < ai; ++aR) { aE = aZ[aR] * ap[aR]; P[aR] = (aE > 0) ? ((aE + 0.5) | 0) : ((aE - 0.5) | 0) } return P } function b () { p(65504); p(16); F(74); F(70); F(73); F(70); F(0); F(1); F(1); F(0); p(1); p(1); F(0); F(0) } function r (aa, ab) { p(65472); p(17); F(8); p(ab); p(aa); F(3); F(1); F(17); F(0); F(2); F(17); F(1); F(3); F(17); F(1) } function D () { p(65499); p(132); F(0); for (var ab = 0; ab < 64; ab++) { F(O[ab]) } F(1); for (var aa = 0; aa < 64; aa++) { F(K[aa]) } } function H () { p(65476); p(418); F(0); for (var ae = 0; ae < 16; ae++) { F(g[ae + 1]) } for (var ad = 0; ad <= 11; ad++) { F(c[ad]) } F(16); for (var ac = 0; ac < 16; ac++) { F(w[ac + 1]) } for (var ab = 0; ab <= 161; ab++) { F(E[ab]) } F(1); for (var aa = 0; aa < 16; aa++) { F(v[aa + 1]) } for (var ah = 0; ah <= 11; ah++) { F(Y[ah]) } F(17); for (var ag = 0; ag < 16; ag++) { F(J[ag + 1]) } for (var af = 0; af <= 161; af++) { F(B[af]) } } function I () { p(65498); p(12); F(3); F(1); F(0); F(2); F(17); F(3); F(17); F(0); F(63); F(0) } function L (ad, aa, al, at, ap) { var ag = ap[0]; var ab = ap[240]; var ac; const ar = 16; const ai = 63; const ah = 64; var aq = N(ad, aa); for (var am = 0; am < ah; ++am) { S[i[am]] = aq[am] } var an = S[0] - al; al = S[0]; if (an == 0) { X(at[0]) } else { ac = 32767 + an; X(at[m[ac]]); X(n[ac]) } var ae = 63; for (; (ae > 0) && (S[ae] == 0); ae--) { } if (ae == 0) { X(ag); return al } var ao = 1; var au; while (ao <= ae) { var ak = ao; for (; (S[ao] == 0) && (ao <= ae); ++ao) { } var aj = ao - ak; if (aj >= ar) { au = aj >> 4; for (var af = 1; af <= au; ++af) { X(ab) } aj = aj & 15 } ac = 32767 + S[ao]; X(ap[(aj << 4) + m[ac]]); X(n[ac]); ao++ } if (ae != ai) { X(ag) } return al } function y () { var ab = String.fromCharCode; for (var aa = 0; aa < 256; aa++) { e[aa] = ab(aa) } } this.encode = function (an, aj, aB) { var aa = new Date().getTime(); if (aj) { R(aj) } j = new Array(); t = 0; a = 7; p(65496); b(); D(); r(an.width, an.height); H(); I(); var al = 0; var aq = 0; var ao = 0; t = 0; a = 7; this.encode.displayName = "_encode_"; var at = an.data; var ar = an.width; var aA = an.height; var ay = ar * 4; var ai = ar * 3; var ah, ag = 0; var am, ax, az; var ab, ap, ac, af, ae; while (ag < aA) { ah = 0; while (ah < ay) { ab = ay * ag + ah; ap = ab; ac = -1; af = 0; for (ae = 0; ae < 64; ae++) { af = ae >> 3; ac = (ae & 7) * 4; ap = ab + (af * ay) + ac; if (ag + af >= aA) { ap -= (ay * (ag + 1 + af - aA)) } if (ah + ac >= ay) { ap -= ((ah + ac) - ay + 4) } am = at[ap++]; ax = at[ap++]; az = at[ap++]; A[ae] = ((C[am] + C[(ax + 256) >> 0] + C[(az + 512) >> 0]) >> 16) - 128; f[ae] = ((C[(am + 768) >> 0] + C[(ax + 1024) >> 0] + C[(az + 1280) >> 0]) >> 16) - 128; U[ae] = ((C[(am + 1280) >> 0] + C[(ax + 1536) >> 0] + C[(az + 1792) >> 0]) >> 16) - 128 } al = L(A, d, al, u, G); aq = L(f, Z, aq, h, T); ao = L(U, Z, ao, h, T); ah += 32 } ag += 8 } if (a >= 0) { var aw = []; aw[1] = a + 1; aw[0] = (1 << (a + 1)) - 1; X(aw) } p(65497); if (aB) { var av = j.length; var aC = new Uint8Array(av); for (var au = 0; au < av; au++) { aC[au] = j[au].charCodeAt() } j = []; var ak = new Date().getTime() - aa; return aC } var ad = "data:image/jpeg;base64," + btoa(j.join("")); j = []; var ak = new Date().getTime() - aa; return ad }; function R (ab) { if (ab <= 0) { ab = 1 } if (ab > 100) { ab = 100 } if (x == ab) { return } var aa = 0; if (ab < 50) { aa = Math.floor(5000 / ab) } else { aa = Math.floor(200 - ab * 2) } M(aa); x = ab; } function Q () { var aa = new Date().getTime(); if (!l) { l = 50 } y(); W(); z(); V(); R(l); var ab = new Date().getTime() - aa; } Q() } module.exports = JPEGEncoder; /***/ }) });