@ohif/app 3.9.0-beta.45 → 3.9.0-beta.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/031089e563a18ada8441.wasm +0 -0
- package/dist/{445.bundle.38c6d2af64e41cd7c614.js → 10.bundle.c626810bd199ab63f3a2.js} +3 -3
- package/dist/{501.bundle.2f703ca4598a3be0d748.js → 129.bundle.3102eccbd5c78524c3dd.js} +6036 -11592
- package/dist/{140.bundle.fcf29be726bb9dcea834.js → 153.bundle.d3732d0fdebb39e139b4.js} +7 -4
- package/dist/{139.bundle.09e5af0a9ae8a285af77.js → 169.bundle.eeb9614e7b06f896c70f.js} +65 -535
- package/dist/{139.css → 169.css} +0 -1
- package/dist/{164.bundle.2b23bfbcb23497d7c87a.js → 196.bundle.cf8c2311aafb5312bbf7.js} +15562 -8539
- package/dist/{342.bundle.fcb2038060a062129d34.js → 202.bundle.bb0e8196739bb896dc9e.js} +238 -276
- package/dist/{129.bundle.894f29369d609094208b.js → 210.bundle.d6d6cbd1b65e4f506ed1.js} +46 -46
- package/dist/{363.bundle.c7e38cf0c1fc7d19a701.js → 217.bundle.042317b439df47cd38b1.js} +2099 -195
- package/dist/{363.css → 217.css} +1 -0
- package/dist/{14.bundle.60eed1138c62b91572a7.js → 246.bundle.288317813cd5781e64f7.js} +11 -11
- package/dist/250.bundle.4743b359797751102600.js +663 -0
- package/dist/{944.bundle.baa0880e0bbde13fccc5.js → 281.bundle.5946cbee5150dec1532f.js} +241 -254
- package/dist/{727.bundle.7b7f3962207601643615.js → 286.bundle.985c5ebbb2158c7e59ab.js} +4 -4
- package/dist/29.bundle.976319462f33868497c2.js +12347 -0
- package/dist/{675.bundle.c9720f40fd7c7e9b7e54.js → 315.bundle.92d7aefc4dc9cfd951bd.js} +18 -18
- package/dist/{218.bundle.a1709956bc65c4f54874.js → 353.bundle.58b3ea80771ebaca956b.js} +8 -8
- package/dist/{799.bundle.33fc63add3b915d0c2b2.js → 360.bundle.81592d66456d25930928.js} +62 -62
- package/dist/{555.bundle.768f1594e1d40b707342.js → 372.bundle.5e3dc2539055ca5861e6.js} +50 -50
- package/dist/{211.bundle.194272cd32bedb302303.js → 376.bundle.45b94427174400b86d5d.js} +8 -8
- package/dist/{612.bundle.297a033523539e0b47f9.js → 412.bundle.836f106f6e2896dc42a5.js} +4 -4
- package/dist/{931.bundle.058f8de4606f27b31f4f.js → 417.bundle.abf8bcee0f246002acb9.js} +25 -25
- package/dist/{370.bundle.bd9884c274c26a54dfae.js → 428.bundle.744fc5865b2d747de88a.js} +829 -1511
- package/dist/{483.bundle.0f1848f6a2cf34829fef.js → 497.bundle.ee102d6243f984113f08.js} +141 -141
- package/dist/{323.bundle.955cc8f5eb5c01295118.js → 498.bundle.bb47c493dd02451f77ef.js} +17 -17
- package/dist/{552.bundle.0d11c419f675cb5a63b1.js → 502.bundle.857675fc2cbb2fbe3e47.js} +8 -9
- package/dist/{835.bundle.5d1951da8bbc6afdf3e0.js → 530.bundle.87f8b13ff55bf7b2a6d1.js} +28 -28
- package/dist/{121.bundle.57fe5a392b0910f33c2d.js → 552.bundle.95c0f28b051797242104.js} +733 -62
- package/dist/{265.bundle.61b0e1ce9d444704a976.js → 571.bundle.a80609c9815339516d77.js} +24 -24
- package/dist/{853.bundle.26b774ab3259f3e6087c.js → 591.bundle.1dca7dfd3e0490ea6dc1.js} +15 -14
- package/dist/604.bundle.83f50929b208c60e48da.js +1950 -0
- package/dist/610.min.worker.js +1 -1
- package/dist/610.min.worker.js.map +1 -1
- package/dist/{792.bundle.485ad2f98823a4b3feb1.js → 658.bundle.219ed199728759098008.js} +17 -17
- package/dist/{989.bundle.4be1e8f36734961852a8.js → 791.bundle.be08fa50f9a84244253b.js} +11 -11
- package/dist/{722.bundle.1242e0348afc63ca4f5e.js → 793.bundle.c92f52ddff0e3bf506e6.js} +13 -13
- package/dist/{914.bundle.e15be8089bf422ed7b51.js → 818.bundle.cda4e369fdee5459a544.js} +1239 -627
- package/dist/{726.bundle.90d63d40a19b058034ee.js → 831.bundle.9e1a3495947e5bb49756.js} +512 -512
- package/dist/{382.bundle.7cdad0f12b64f248dd28.js → 842.bundle.0664bcdeb7f153ab52bb.js} +11 -11
- package/dist/{806.bundle.1ec5fda0b16e053350d7.js → 888.bundle.2d02f805cedcf5d2ee7d.js} +14 -14
- package/dist/{702.bundle.963481fbf871984b646f.js → 909.bundle.1fbb8bb4c41d0bb2994d.js} +119 -381
- package/dist/{109.bundle.b4fee2a22b622839baf5.js → 931.bundle.f6fa2a436ace89ebf60f.js} +5036 -4642
- package/dist/{141.bundle.556b4c1e4cab770417ac.js → 937.bundle.cc709c922731f9496810.js} +86 -478
- package/dist/{444.bundle.75f58f53dab4d04db97d.js → 944.bundle.194f4f4e4e55ec466b78.js} +9 -10
- package/dist/945.min.worker.js +1 -1
- package/dist/945.min.worker.js.map +1 -1
- package/dist/{194.bundle.e6fb48f13f312eded76b.js → 962.bundle.225fcd92e6a5af66b6a2.js} +33 -37
- package/dist/{920.bundle.f75637a18563de8c8235.js → 978.bundle.4edc8c4615d7e3b4717a.js} +6 -6
- package/dist/{236.bundle.34db90a140e37d34fd71.js → 993.bundle.aa31ebda5a5f62c44de5.js} +2363 -2351
- package/dist/{717.bundle.3b84fbd289af82208a19.js → 994.bundle.269ce05b16fd6aa28006.js} +90 -164
- package/dist/app-config.js +58 -4
- package/dist/app.bundle.css +3 -3
- package/dist/{app.bundle.e2d3b6781252f9c7b2a3.js → app.bundle.ecc3736aff52e6abfd49.js} +52547 -36094
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/dicom-microscopy-viewer/5004fdc02f329ce53b69.wasm +0 -0
- package/dist/dicom-microscopy-viewer/c22b37c3488e1d6c3aa4.wasm +0 -0
- package/dist/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js +3 -0
- package/dist/{dicomMicroscopyViewer.min.js.LICENSE.txt → dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.LICENSE.txt} +11 -0
- package/dist/dicom-microscopy-viewer/index.worker.min.worker.js +2 -0
- package/dist/dicom-microscopy-viewer/index.worker.min.worker.js.map +1 -0
- package/dist/{histogram-worker.bundle.6b31e5ed4c4a7a6998f2.js → histogram-worker.bundle.e7e9fea2c3236b0e747a.js} +12 -16
- package/dist/index.html +1 -1
- package/dist/index.worker.5a5a581362c14598c3d9.worker.js +2 -0
- package/dist/index.worker.5a5a581362c14598c3d9.worker.js.map +1 -0
- package/dist/{polySeg.bundle.df492df5042827938ba4.js → polySeg.bundle.b25c61224998018d0f79.js} +24 -5
- package/dist/{suv-peak-worker.bundle.8f4b505fad3d371489fe.js → suv-peak-worker.bundle.eb11e71db02e52601ecf.js} +40 -21
- package/dist/sw.js +1 -1
- package/package.json +25 -33
- package/dist/117.bundle.1f7b56504d506e7259e3.js +0 -6552
- package/dist/172.bundle.e0ee762bee7496d6491e.js +0 -662
- package/dist/36785fbd89b0e17f6099.wasm +0 -0
- package/dist/62ab5d58a2bea7b5a1dc.wasm +0 -0
- package/dist/644.bundle.1e77691d2eeb96a423b0.js +0 -19159
- package/dist/75a0c2dfe07b824c7d21.wasm +0 -0
- package/dist/dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js +0 -13
- package/dist/dicomMicroscopyViewer.min.js +0 -3
- package/dist/index.worker.f4bda803c15bc6359d5f.worker.js +0 -2
- package/dist/index.worker.f4bda803c15bc6359d5f.worker.js.map +0 -1
- package/dist/index.worker.min.worker.js +0 -2
- package/dist/index.worker.min.worker.js.map +0 -1
- /package/dist/{129.css → 210.css} +0 -0
- /package/dist/{727.css → 286.css} +0 -0
- /package/dist/{172.css → 552.css} +0 -0
- /package/dist/{404.css → 757.css} +0 -0
- /package/dist/{717.css → 994.css} +0 -0
- /package/dist/{65916ef3def695744bda.wasm → dicom-microscopy-viewer/65916ef3def695744bda.wasm} +0 -0
- /package/dist/{b6b803111e2d06a825bd.wasm → dicom-microscopy-viewer/b6b803111e2d06a825bd.wasm} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[944],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 88944:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -13,16 +13,16 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
16
|
-
var react = __webpack_require__(
|
|
16
|
+
var react = __webpack_require__(43001);
|
|
17
17
|
;// CONCATENATED MODULE: ../../../extensions/dicom-pdf/package.json
|
|
18
|
-
const package_namespaceObject =
|
|
18
|
+
const package_namespaceObject = JSON.parse('{"u2":"@ohif/extension-dicom-pdf"}');
|
|
19
19
|
;// CONCATENATED MODULE: ../../../extensions/dicom-pdf/src/id.js
|
|
20
20
|
|
|
21
|
-
const id = package_namespaceObject.
|
|
21
|
+
const id = package_namespaceObject.u2;
|
|
22
22
|
const SOPClassHandlerId = `${id}.sopClassHandlerModule.dicom-pdf`;
|
|
23
23
|
|
|
24
24
|
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
25
|
-
var src = __webpack_require__(
|
|
25
|
+
var src = __webpack_require__(63810);
|
|
26
26
|
;// CONCATENATED MODULE: ../../../extensions/dicom-pdf/src/getSopClassHandlerModule.js
|
|
27
27
|
|
|
28
28
|
|
|
@@ -38,8 +38,7 @@ const _getDisplaySetsFromSeries = (instances, servicesManager, extensionManager)
|
|
|
38
38
|
return instances.map(instance => {
|
|
39
39
|
const {
|
|
40
40
|
Modality,
|
|
41
|
-
SOPInstanceUID
|
|
42
|
-
EncapsulatedDocument
|
|
41
|
+
SOPInstanceUID
|
|
43
42
|
} = instance;
|
|
44
43
|
const {
|
|
45
44
|
SeriesDescription = 'PDF',
|
|
@@ -104,12 +103,12 @@ function getSopClassHandlerModule({
|
|
|
104
103
|
}];
|
|
105
104
|
}
|
|
106
105
|
;// CONCATENATED MODULE: ../../../extensions/dicom-pdf/src/index.tsx
|
|
107
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
106
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
108
107
|
|
|
109
108
|
|
|
110
109
|
|
|
111
110
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
112
|
-
return __webpack_require__.e(/* import() */
|
|
111
|
+
return __webpack_require__.e(/* import() */ 286).then(__webpack_require__.bind(__webpack_require__, 53286));
|
|
113
112
|
});
|
|
114
113
|
const OHIFCornerstonePdfViewport = props => {
|
|
115
114
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
package/dist/945.min.worker.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(self.webpackChunk=self.webpackChunk||[]).push([[945],{945:function(e,r){var n={Unkown:0,Grayscale:1,AdobeRGB:2,RGB:3,CYMK:4},o=function(){"use strict";var e=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),r=4017,o=799,a=3406,t=2276,s=1567,i=3784,c=5793,l=2896;function f(e,r){for(var n,o,a=0,t=[],s=16;s>0&&!e[s-1];)s--;t.push({children:[],index:0});var i,c=t[0];for(n=0;n<s;n++){for(o=0;o<e[n];o++){for((c=t.pop()).children[c.index]=r[a];c.index>0;)c=t.pop();for(c.index++,t.push(c);t.length<=n;)t.push(i={children:[],index:0}),c.children[c.index]=i.children,c=i;a++}n+1<s&&(t.push(i={children:[],index:0}),c.children[c.index]=i.children,c=i)}return t[0].children}function u(e,r,n){return 64*((e.blocksPerLine+1)*r+n)}function h(r,n,o,a,t,s,i,c,l){o.precision,o.samplesPerLine,o.scanLines;var f=o.mcusPerLine,h=o.progressive,b=(o.maxH,o.maxV,n),v=0,m=0;function p(){if(m>0)return m--,v>>m&1;if(255==(v=r[n++])){var e=r[n++];if(e)throw"unexpected marker: "+(v<<8|e).toString(16)}return m=7,v>>>7}function d(e){for(var r,n=e;null!==(r=p());){if("number"==typeof(n=n[r]))return n;if("object"!=typeof n)throw"invalid huffman sequence"}return null}function k(e){for(var r=0;e>0;){var n=p();if(null===n)return;r=r<<1|n,e--}return r}function w(e){var r=k(e);return r>=1<<e-1?r:r+(-1<<e)+1}var C=0;var P,g=0;function y(e,r,n,o,a){var t=n%f;r(e,u(e,(n/f|0)*e.v+o,t*e.h+a))}function D(e,r,n){r(e,u(e,n/e.blocksPerLine|0,n%e.blocksPerLine))}var L,x,T,A,U,I,q=a.length;I=h?0===s?0===c?function(e,r){var n=d(e.huffmanTableDC),o=0===n?0:w(n)<<l;e.blockData[r]=e.pred+=o}:function(e,r){e.blockData[r]|=p()<<l}:0===c?function(r,n){if(C>0)C--;else for(var o=s,a=i;o<=a;){var t=d(r.huffmanTableAC),c=15&t,f=t>>4;if(0!==c){var u=e[o+=f];r.blockData[n+u]=w(c)*(1<<l),o++}else{if(f<15){C=k(f)+(1<<f)-1;break}o+=16}}}:function(r,n){for(var o=s,a=i,t=0;o<=a;){var c=e[o];switch(g){case 0:var f=d(r.huffmanTableAC),u=15&f;if(t=f>>4,0===u)t<15?(C=k(t)+(1<<t),g=4):(t=16,g=1);else{if(1!==u)throw"invalid ACn encoding";P=w(u),g=t?2:3}continue;case 1:case 2:r.blockData[n+c]?r.blockData[n+c]+=p()<<l:0==--t&&(g=2==g?3:0);break;case 3:r.blockData[n+c]?r.blockData[n+c]+=p()<<l:(r.blockData[n+c]=P<<l,g=0);break;case 4:r.blockData[n+c]&&(r.blockData[n+c]+=p()<<l)}o++}4===g&&0==--C&&(g=0)}:function(r,n){var o=d(r.huffmanTableDC),a=0===o?0:w(o);r.blockData[n]=r.pred+=a;for(var t=1;t<64;){var s=d(r.huffmanTableAC),i=15&s,c=s>>4;if(0!==i){var l=e[t+=c];r.blockData[n+l]=w(i),t++}else{if(c<15)break;t+=16}}};var G,M,z,H,O=0;for(M=1==q?a[0].blocksPerLine*a[0].blocksPerColumn:f*o.mcusPerColumn,t||(t=M);O<M;){for(x=0;x<q;x++)a[x].pred=0;if(C=0,1==q)for(L=a[0],U=0;U<t;U++)D(L,I,O),O++;else for(U=0;U<t;U++){for(x=0;x<q;x++)for(z=(L=a[x]).h,H=L.v,T=0;T<H;T++)for(A=0;A<z;A++)y(L,I,O,T,A);O++}if(m=0,(G=r[n]<<8|r[n+1])<=65280)throw"marker was not found";if(!(G>=65488&&G<=65495))break;n+=2}return n-b}function b(e,n,f){var u,h,b,v,m,p,d,k,w,C,P=e.quantizationTable;for(C=0;C<64;C++)f[C]=e.blockData[n+C]*P[C];for(C=0;C<8;++C){var g=8*C;0!==f[1+g]||0!==f[2+g]||0!==f[3+g]||0!==f[4+g]||0!==f[5+g]||0!==f[6+g]||0!==f[7+g]?(u=c*f[0+g]+128>>8,h=c*f[4+g]+128>>8,b=f[2+g],v=f[6+g],m=l*(f[1+g]-f[7+g])+128>>8,k=l*(f[1+g]+f[7+g])+128>>8,p=f[3+g]<<4,d=f[5+g]<<4,w=u-h+1>>1,u=u+h+1>>1,h=w,w=b*i+v*s+128>>8,b=b*s-v*i+128>>8,v=w,w=m-d+1>>1,m=m+d+1>>1,d=w,w=k+p+1>>1,p=k-p+1>>1,k=w,w=u-v+1>>1,u=u+v+1>>1,v=w,w=h-b+1>>1,h=h+b+1>>1,b=w,w=m*t+k*a+2048>>12,m=m*a-k*t+2048>>12,k=w,w=p*o+d*r+2048>>12,p=p*r-d*o+2048>>12,d=w,f[0+g]=u+k,f[7+g]=u-k,f[1+g]=h+d,f[6+g]=h-d,f[2+g]=b+p,f[5+g]=b-p,f[3+g]=v+m,f[4+g]=v-m):(w=c*f[0+g]+512>>10,f[0+g]=w,f[1+g]=w,f[2+g]=w,f[3+g]=w,f[4+g]=w,f[5+g]=w,f[6+g]=w,f[7+g]=w)}for(C=0;C<8;++C){var y=C;0!==f[8+y]||0!==f[16+y]||0!==f[24+y]||0!==f[32+y]||0!==f[40+y]||0!==f[48+y]||0!==f[56+y]?(u=c*f[0+y]+2048>>12,h=c*f[32+y]+2048>>12,b=f[16+y],v=f[48+y],m=l*(f[8+y]-f[56+y])+2048>>12,k=l*(f[8+y]+f[56+y])+2048>>12,p=f[24+y],d=f[40+y],w=u-h+1>>1,u=u+h+1>>1,h=w,w=b*i+v*s+2048>>12,b=b*s-v*i+2048>>12,v=w,w=m-d+1>>1,m=m+d+1>>1,d=w,w=k+p+1>>1,p=k-p+1>>1,k=w,w=u-v+1>>1,u=u+v+1>>1,v=w,w=h-b+1>>1,h=h+b+1>>1,b=w,w=m*t+k*a+2048>>12,m=m*a-k*t+2048>>12,k=w,w=p*o+d*r+2048>>12,p=p*r-d*o+2048>>12,d=w,f[0+y]=u+k,f[56+y]=u-k,f[8+y]=h+d,f[48+y]=h-d,f[16+y]=b+p,f[40+y]=b-p,f[24+y]=v+m,f[32+y]=v-m):(w=c*f[C+0]+8192>>14,f[0+y]=w,f[8+y]=w,f[16+y]=w,f[24+y]=w,f[32+y]=w,f[40+y]=w,f[48+y]=w,f[56+y]=w)}for(C=0;C<64;++C){var D=n+C,L=f[C];L=L<=-2056/e.bitConversion?0:L>=2024/e.bitConversion?255/e.bitConversion:L+2056/e.bitConversion>>4,e.blockData[D]=L}}function v(e,r){for(var n=r.blocksPerLine,o=r.blocksPerColumn,a=new Int32Array(64),t=0;t<o;t++)for(var s=0;s<n;s++){b(r,u(r,t,s),a)}return r.blockData}function m(e){return e<=0?0:e>=255?255:0|e}class p{}return Object.setPrototypeOf(p.prototype,{load:function(e){var r=function(e){this.parse(e),this.onload&&this.onload()}.bind(this);if(e.indexOf("data:")>-1){for(var n=e.indexOf("base64,")+7,o=atob(e.substring(n)),a=new Uint8Array(o.length),t=o.length-1;t>=0;t--)a[t]=o.charCodeAt(t);r(o)}else{var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=function(){var e=new Uint8Array(s.response);r(e)}.bind(this),s.send(null)}},parse:function(r){function o(){var e=r[c]<<8|r[c+1];return c+=2,e}function a(){var e=o(),n=r.subarray(c,c+e-2);return c+=n.length,n}function t(e){for(var r=Math.ceil(e.samplesPerLine/8/e.maxH),n=Math.ceil(e.scanLines/8/e.maxV),o=0;o<e.components.length;o++){S=e.components[o];var a=Math.ceil(Math.ceil(e.samplesPerLine/8)*S.h/e.maxH),t=Math.ceil(Math.ceil(e.scanLines/8)*S.v/e.maxV),s=r*S.h,i=64*(n*S.v)*(s+1);S.blockData=new Int16Array(i),S.blocksPerLine=a,S.blocksPerColumn=t}e.mcusPerLine=r,e.mcusPerColumn=n}var s,i,c=0,l=(r.length,null),u=null,b=[],m=[],p=[],d=o();if(65496!=d)throw"SOI not found";for(d=o();65497!=d;){var k,w;switch(d){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var C=a();65504===d&&74===C[0]&&70===C[1]&&73===C[2]&&70===C[3]&&0===C[4]&&(l={version:{major:C[5],minor:C[6]},densityUnits:C[7],xDensity:C[8]<<8|C[9],yDensity:C[10]<<8|C[11],thumbWidth:C[12],thumbHeight:C[13],thumbData:C.subarray(14,14+3*C[12]*C[13])}),65518===d&&65===C[0]&&100===C[1]&&111===C[2]&&98===C[3]&&101===C[4]&&0===C[5]&&(u={version:C[6],flags0:C[7]<<8|C[8],flags1:C[9]<<8|C[10],transformCode:C[11]});break;case 65499:for(var P=o()+c-2;c<P;){var g=r[c++],y=new Int32Array(64);if(g>>4==0)for(k=0;k<64;k++){y[e[k]]=r[c++]}else{if(g>>4!=1)throw"DQT: invalid table spec";for(k=0;k<64;k++){y[e[k]]=o()}}b[15&g]=y}break;case 65472:case 65473:case 65474:if(s)throw"Only single frame JPEGs supported";o(),(s={}).extended=65473===d,s.progressive=65474===d,s.precision=r[c++],s.scanLines=o(),s.samplesPerLine=o(),s.components=[],s.componentIds={};var D,L=r[c++],x=0,T=0;for(J=0;J<L;J++){D=r[c];var A=r[c+1]>>4,U=15&r[c+1];x<A&&(x=A),T<U&&(T=U);var I=r[c+2];w=s.components.push({h:A,v:U,quantizationTable:b[I],quantizationTableId:I,bitConversion:255/((1<<s.precision)-1)}),s.componentIds[D]=w-1,c+=3}s.maxH=x,s.maxV=T,t(s);break;case 65476:var q=o();for(J=2;J<q;){var G=r[c++],M=new Uint8Array(16),z=0;for(k=0;k<16;k++,c++)z+=M[k]=r[c];var H=new Uint8Array(z);for(k=0;k<z;k++,c++)H[k]=r[c];J+=17+z,(G>>4==0?p:m)[15&G]=f(M,H)}break;case 65501:o(),i=o();break;case 65498:o();var O=r[c++],R=[];for(J=0;J<O;J++){var V=s.componentIds[r[c++]];S=s.components[V];var Y=r[c++];S.huffmanTableDC=p[Y>>4],S.huffmanTableAC=m[15&Y],R.push(S)}var j=r[c++],B=r[c++],X=r[c++],E=h(r,c,s,R,i,j,B,X>>4,15&X);c+=E;break;case 65535:255!==r[c]&&c--;break;default:if(255==r[c-3]&&r[c-2]>=192&&r[c-2]<=254){c-=3;break}throw"unknown JPEG marker "+d.toString(16)}d=o()}switch(this.width=s.samplesPerLine,this.height=s.scanLines,this.jfif=l,this.adobe=u,this.components=[],s.components.length){case 1:this.colorspace=n.Grayscale;break;case 3:this.adobe?this.colorspace=n.AdobeRGB:this.colorspace=n.RGB;break;case 4:this.colorspace=n.CYMK;break;default:this.colorspace=n.Unknown}for(var J=0;J<s.components.length;J++){var S;(S=s.components[J]).quantizationTable||null===S.quantizationTableId||(S.quantizationTable=b[S.quantizationTableId]),this.components.push({output:v(0,S),scaleX:S.h/s.maxH,scaleY:S.v/s.maxV,blocksPerLine:S.blocksPerLine,blocksPerColumn:S.blocksPerColumn,bitConversion:S.bitConversion})}},getData16:function(e,r){if(1!==this.components.length)throw"Unsupported color mode";var n,o,a,t,s,i,c=this.width/e,l=this.height/r,f=0,h=this.components.length,b=new Uint16Array(e*r*h),v=new Uint16Array((this.components[0].blocksPerLine<<3)*this.components[0].blocksPerColumn*8);for(i=0;i<h;i++){for(var m,p,d,k=(n=this.components[i]).blocksPerLine,w=n.blocksPerColumn,C=k<<3,P=0,g=0;g<w;g++)for(var y=g<<3,D=0;D<k;D++){var L=u(n,g,D),x=(f=0,D<<3);for(m=0;m<8;m++){P=(y+m)*C;for(p=0;p<8;p++)v[P+x+p]=n.output[L+f++]}}for(o=n.scaleX*c,a=n.scaleY*l,f=i,s=0;s<r;s++)for(t=0;t<e;t++)d=(0|s*a)*C+(0|t*o),b[f]=v[d],f+=h}return b},getData:function(e,r){var n,o,a,t,s,i,c,l,f,h,b,v,p,d,k,w=this.width/e,C=this.height/r,P=0,g=this.components.length,y=e*r*g,D=new Uint8Array(y),L=new Uint8Array((this.components[0].blocksPerLine<<3)*this.components[0].blocksPerColumn*8);for(i=0;i<g;i++){for(var x,T,A,U=(n=this.components[i]).blocksPerLine,I=n.blocksPerColumn,q=U<<3,G=0,M=0;M<I;M++)for(var z=M<<3,H=0;H<U;H++){var O=u(n,M,H),R=(P=0,H<<3);for(x=0;x<8;x++){G=(z+x)*q;for(T=0;T<8;T++)L[G+R+T]=n.output[O+P++]*n.bitConversion}}for(o=n.scaleX*w,a=n.scaleY*C,P=i,s=0;s<r;s++)for(t=0;t<e;t++)A=(0|s*a)*q+(0|t*o),D[P]=L[A],P+=g}switch(g){case 1:case 2:break;case 3:if(k=!0,this.adobe&&this.adobe.transformCode?k=!0:void 0!==this.colorTransform&&(k=!!this.colorTransform),k)for(i=0;i<y;i+=g)c=D[i],l=D[i+1],v=m(c-179.456+1.402*(f=D[i+2])),p=m(c+135.459-.344*l-.714*f),d=m(c-226.816+1.772*l),D[i]=v,D[i+1]=p,D[i+2]=d;break;case 4:if(!this.adobe)throw"Unsupported color mode (4 components)";if(k=!1,this.adobe&&this.adobe.transformCode?k=!0:void 0!==this.colorTransform&&(k=!!this.colorTransform),k)for(i=0;i<y;i+=g)c=D[i],l=D[i+1],h=m(434.456-c-1.402*(f=D[i+2])),b=m(119.541-c+.344*l+.714*f),c=m(481.816-c-1.772*l),D[i]=h,D[i+1]=b,D[i+2]=c;break;default:throw"Unsupported color mode"}return D}}),p}();e.exports={JpegImage:o}}}]);
|
|
1
|
+
(self.webpackChunk=self.webpackChunk||[]).push([[945],{945:function(e,r){var n={Unkown:0,Grayscale:1,AdobeRGB:2,RGB:3,CYMK:4},o=function(){"use strict";var e=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),r=4017,o=799,a=3406,t=2276,s=1567,i=3784,c=5793,l=2896;function f(e,r){for(var n,o,a=0,t=[],s=16;s>0&&!e[s-1];)s--;t.push({children:[],index:0});var i,c=t[0];for(n=0;n<s;n++){for(o=0;o<e[n];o++){for((c=t.pop()).children[c.index]=r[a];c.index>0;)c=t.pop();for(c.index++,t.push(c);t.length<=n;)t.push(i={children:[],index:0}),c.children[c.index]=i.children,c=i;a++}n+1<s&&(t.push(i={children:[],index:0}),c.children[c.index]=i.children,c=i)}return t[0].children}function u(e,r,n){return 64*((e.blocksPerLine+1)*r+n)}function h(r,n,o,a,t,s,i,c,l){o.precision,o.samplesPerLine,o.scanLines;var f=o.mcusPerLine,h=o.progressive,b=(o.maxH,o.maxV,n),v=0,m=0;function p(){if(m>0)return m--,v>>m&1;if(255==(v=r[n++])){var e=r[n++];if(e)throw"unexpected marker: "+(v<<8|e).toString(16)}return m=7,v>>>7}function d(e){for(var r,n=e;null!==(r=p());){if("number"==typeof(n=n[r]))return n;if("object"!=typeof n)throw"invalid huffman sequence"}return null}function k(e){for(var r=0;e>0;){var n=p();if(null===n)return;r=r<<1|n,e--}return r}function w(e){var r=k(e);return r>=1<<e-1?r:r+(-1<<e)+1}var C=0;var P,g=0;function y(e,r,n,o,a){var t=n%f;r(e,u(e,(n/f|0)*e.v+o,t*e.h+a))}function D(e,r,n){r(e,u(e,n/e.blocksPerLine|0,n%e.blocksPerLine))}var L,x,T,A,U,I,q=a.length;I=h?0===s?0===c?function(e,r){var n=d(e.huffmanTableDC),o=0===n?0:w(n)<<l;e.blockData[r]=e.pred+=o}:function(e,r){e.blockData[r]|=p()<<l}:0===c?function(r,n){if(C>0)C--;else for(var o=s,a=i;o<=a;){var t=d(r.huffmanTableAC),c=15&t,f=t>>4;if(0!==c){var u=e[o+=f];r.blockData[n+u]=w(c)*(1<<l),o++}else{if(f<15){C=k(f)+(1<<f)-1;break}o+=16}}}:function(r,n){for(var o=s,a=i,t=0;o<=a;){var c=e[o];switch(g){case 0:var f=d(r.huffmanTableAC),u=15&f;if(t=f>>4,0===u)t<15?(C=k(t)+(1<<t),g=4):(t=16,g=1);else{if(1!==u)throw"invalid ACn encoding";P=w(u),g=t?2:3}continue;case 1:case 2:r.blockData[n+c]?r.blockData[n+c]+=p()<<l:0==--t&&(g=2==g?3:0);break;case 3:r.blockData[n+c]?r.blockData[n+c]+=p()<<l:(r.blockData[n+c]=P<<l,g=0);break;case 4:r.blockData[n+c]&&(r.blockData[n+c]+=p()<<l)}o++}4===g&&0==--C&&(g=0)}:function(r,n){var o=d(r.huffmanTableDC),a=0===o?0:w(o);r.blockData[n]=r.pred+=a;for(var t=1;t<64;){var s=d(r.huffmanTableAC),i=15&s,c=s>>4;if(0!==i){var l=e[t+=c];r.blockData[n+l]=w(i),t++}else{if(c<15)break;t+=16}}};var G,M,z,H,O=0;for(M=1==q?a[0].blocksPerLine*a[0].blocksPerColumn:f*o.mcusPerColumn,t||(t=M);O<M;){for(x=0;x<q;x++)a[x].pred=0;if(C=0,1==q)for(L=a[0],U=0;U<t;U++)D(L,I,O),O++;else for(U=0;U<t;U++){for(x=0;x<q;x++)for(z=(L=a[x]).h,H=L.v,T=0;T<H;T++)for(A=0;A<z;A++)y(L,I,O,T,A);O++}if(m=0,(G=r[n]<<8|r[n+1])<=65280)throw"marker was not found";if(!(G>=65488&&G<=65495))break;n+=2}return n-b}function b(e,n,f){var u,h,b,v,m,p,d,k,w,C,P=e.quantizationTable;for(C=0;C<64;C++)f[C]=e.blockData[n+C]*P[C];for(C=0;C<8;++C){var g=8*C;0!==f[1+g]||0!==f[2+g]||0!==f[3+g]||0!==f[4+g]||0!==f[5+g]||0!==f[6+g]||0!==f[7+g]?(u=c*f[0+g]+128>>8,h=c*f[4+g]+128>>8,b=f[2+g],v=f[6+g],m=l*(f[1+g]-f[7+g])+128>>8,k=l*(f[1+g]+f[7+g])+128>>8,p=f[3+g]<<4,d=f[5+g]<<4,w=u-h+1>>1,u=u+h+1>>1,h=w,w=b*i+v*s+128>>8,b=b*s-v*i+128>>8,v=w,w=m-d+1>>1,m=m+d+1>>1,d=w,w=k+p+1>>1,p=k-p+1>>1,k=w,w=u-v+1>>1,u=u+v+1>>1,v=w,w=h-b+1>>1,h=h+b+1>>1,b=w,w=m*t+k*a+2048>>12,m=m*a-k*t+2048>>12,k=w,w=p*o+d*r+2048>>12,p=p*r-d*o+2048>>12,d=w,f[0+g]=u+k,f[7+g]=u-k,f[1+g]=h+d,f[6+g]=h-d,f[2+g]=b+p,f[5+g]=b-p,f[3+g]=v+m,f[4+g]=v-m):(w=c*f[0+g]+512>>10,f[0+g]=w,f[1+g]=w,f[2+g]=w,f[3+g]=w,f[4+g]=w,f[5+g]=w,f[6+g]=w,f[7+g]=w)}for(C=0;C<8;++C){var y=C;0!==f[8+y]||0!==f[16+y]||0!==f[24+y]||0!==f[32+y]||0!==f[40+y]||0!==f[48+y]||0!==f[56+y]?(u=c*f[0+y]+2048>>12,h=c*f[32+y]+2048>>12,b=f[16+y],v=f[48+y],m=l*(f[8+y]-f[56+y])+2048>>12,k=l*(f[8+y]+f[56+y])+2048>>12,p=f[24+y],d=f[40+y],w=u-h+1>>1,u=u+h+1>>1,h=w,w=b*i+v*s+2048>>12,b=b*s-v*i+2048>>12,v=w,w=m-d+1>>1,m=m+d+1>>1,d=w,w=k+p+1>>1,p=k-p+1>>1,k=w,w=u-v+1>>1,u=u+v+1>>1,v=w,w=h-b+1>>1,h=h+b+1>>1,b=w,w=m*t+k*a+2048>>12,m=m*a-k*t+2048>>12,k=w,w=p*o+d*r+2048>>12,p=p*r-d*o+2048>>12,d=w,f[0+y]=u+k,f[56+y]=u-k,f[8+y]=h+d,f[48+y]=h-d,f[16+y]=b+p,f[40+y]=b-p,f[24+y]=v+m,f[32+y]=v-m):(w=c*f[C+0]+8192>>14,f[0+y]=w,f[8+y]=w,f[16+y]=w,f[24+y]=w,f[32+y]=w,f[40+y]=w,f[48+y]=w,f[56+y]=w)}for(C=0;C<64;++C){var D=n+C,L=f[C];L=L<=-2056/e.bitConversion?0:L>=2024/e.bitConversion?255/e.bitConversion:L+2056/e.bitConversion>>4,e.blockData[D]=L}}function v(e,r){for(var n=r.blocksPerLine,o=r.blocksPerColumn,a=new Int32Array(64),t=0;t<o;t++)for(var s=0;s<n;s++){b(r,u(r,t,s),a)}return r.blockData}function m(e){return e<=0?0:e>=255?255:0|e}class p{}return Object.setPrototypeOf(p.prototype,{load:function(e){var r=function(e){this.parse(e),this.onload&&this.onload()}.bind(this);if(e.indexOf("data:")>-1){for(var n=e.indexOf("base64,")+7,o=atob(e.substring(n)),a=new Uint8Array(o.length),t=o.length-1;t>=0;t--)a[t]=o.charCodeAt(t);r(o)}else{var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=function(){var e=new Uint8Array(s.response);r(e)}.bind(this),s.send(null)}},parse:function(r){function o(){var e=r[c]<<8|r[c+1];return c+=2,e}function a(){var e=o(),n=r.subarray(c,c+e-2);return c+=n.length,n}function t(e){for(var r=Math.ceil(e.samplesPerLine/8/e.maxH),n=Math.ceil(e.scanLines/8/e.maxV),o=0;o<e.components.length;o++){S=e.components[o];var a=Math.ceil(Math.ceil(e.samplesPerLine/8)*S.h/e.maxH),t=Math.ceil(Math.ceil(e.scanLines/8)*S.v/e.maxV),s=r*S.h,i=64*(n*S.v)*(s+1);S.blockData=new Int16Array(i),S.blocksPerLine=a,S.blocksPerColumn=t}e.mcusPerLine=r,e.mcusPerColumn=n}var s,i,c=0,l=(r.length,null),u=null,b=[],m=[],p=[],d=o();if(65496!=d)throw"SOI not found";for(d=o();65497!=d;){var k,w;switch(d){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var C=a();65504===d&&74===C[0]&&70===C[1]&&73===C[2]&&70===C[3]&&0===C[4]&&(l={version:{major:C[5],minor:C[6]},densityUnits:C[7],xDensity:C[8]<<8|C[9],yDensity:C[10]<<8|C[11],thumbWidth:C[12],thumbHeight:C[13],thumbData:C.subarray(14,14+3*C[12]*C[13])}),65518===d&&65===C[0]&&100===C[1]&&111===C[2]&&98===C[3]&&101===C[4]&&0===C[5]&&(u={version:C[6],flags0:C[7]<<8|C[8],flags1:C[9]<<8|C[10],transformCode:C[11]});break;case 65499:for(var P=o()+c-2;c<P;){var g=r[c++],y=new Int32Array(64);if(g>>4){if(g>>4!=1)throw"DQT: invalid table spec";for(k=0;k<64;k++){y[e[k]]=o()}}else for(k=0;k<64;k++){y[e[k]]=r[c++]}b[15&g]=y}break;case 65472:case 65473:case 65474:if(s)throw"Only single frame JPEGs supported";o(),(s={}).extended=65473===d,s.progressive=65474===d,s.precision=r[c++],s.scanLines=o(),s.samplesPerLine=o(),s.components=[],s.componentIds={};var D,L=r[c++],x=0,T=0;for(J=0;J<L;J++){D=r[c];var A=r[c+1]>>4,U=15&r[c+1];x<A&&(x=A),T<U&&(T=U);var I=r[c+2];w=s.components.push({h:A,v:U,quantizationTable:b[I],quantizationTableId:I,bitConversion:255/((1<<s.precision)-1)}),s.componentIds[D]=w-1,c+=3}s.maxH=x,s.maxV=T,t(s);break;case 65476:var q=o();for(J=2;J<q;){var G=r[c++],M=new Uint8Array(16),z=0;for(k=0;k<16;k++,c++)z+=M[k]=r[c];var H=new Uint8Array(z);for(k=0;k<z;k++,c++)H[k]=r[c];J+=17+z,(G>>4?m:p)[15&G]=f(M,H)}break;case 65501:o(),i=o();break;case 65498:o();var O=r[c++],R=[];for(J=0;J<O;J++){var V=s.componentIds[r[c++]];S=s.components[V];var Y=r[c++];S.huffmanTableDC=p[Y>>4],S.huffmanTableAC=m[15&Y],R.push(S)}var j=r[c++],B=r[c++],X=r[c++],E=h(r,c,s,R,i,j,B,X>>4,15&X);c+=E;break;case 65535:255!==r[c]&&c--;break;default:if(255==r[c-3]&&r[c-2]>=192&&r[c-2]<=254){c-=3;break}throw"unknown JPEG marker "+d.toString(16)}d=o()}switch(this.width=s.samplesPerLine,this.height=s.scanLines,this.jfif=l,this.adobe=u,this.components=[],s.components.length){case 1:this.colorspace=n.Grayscale;break;case 3:this.adobe?this.colorspace=n.AdobeRGB:this.colorspace=n.RGB;break;case 4:this.colorspace=n.CYMK;break;default:this.colorspace=n.Unknown}for(var J=0;J<s.components.length;J++){var S;(S=s.components[J]).quantizationTable||null===S.quantizationTableId||(S.quantizationTable=b[S.quantizationTableId]),this.components.push({output:v(0,S),scaleX:S.h/s.maxH,scaleY:S.v/s.maxV,blocksPerLine:S.blocksPerLine,blocksPerColumn:S.blocksPerColumn,bitConversion:S.bitConversion})}},getData16:function(e,r){if(1!==this.components.length)throw"Unsupported color mode";var n,o,a,t,s,i,c=this.width/e,l=this.height/r,f=0,h=this.components.length,b=new Uint16Array(e*r*h),v=new Uint16Array((this.components[0].blocksPerLine<<3)*this.components[0].blocksPerColumn*8);for(i=0;i<h;i++){for(var m,p,d,k=(n=this.components[i]).blocksPerLine,w=n.blocksPerColumn,C=k<<3,P=0,g=0;g<w;g++)for(var y=g<<3,D=0;D<k;D++){var L=u(n,g,D),x=(f=0,D<<3);for(m=0;m<8;m++){P=(y+m)*C;for(p=0;p<8;p++)v[P+x+p]=n.output[L+f++]}}for(o=n.scaleX*c,a=n.scaleY*l,f=i,s=0;s<r;s++)for(t=0;t<e;t++)d=(0|s*a)*C+(0|t*o),b[f]=v[d],f+=h}return b},getData:function(e,r){var n,o,a,t,s,i,c,l,f,h,b,v,p,d,k,w=this.width/e,C=this.height/r,P=0,g=this.components.length,y=e*r*g,D=new Uint8Array(y),L=new Uint8Array((this.components[0].blocksPerLine<<3)*this.components[0].blocksPerColumn*8);for(i=0;i<g;i++){for(var x,T,A,U=(n=this.components[i]).blocksPerLine,I=n.blocksPerColumn,q=U<<3,G=0,M=0;M<I;M++)for(var z=M<<3,H=0;H<U;H++){var O=u(n,M,H),R=(P=0,H<<3);for(x=0;x<8;x++){G=(z+x)*q;for(T=0;T<8;T++)L[G+R+T]=n.output[O+P++]*n.bitConversion}}for(o=n.scaleX*w,a=n.scaleY*C,P=i,s=0;s<r;s++)for(t=0;t<e;t++)A=(0|s*a)*q+(0|t*o),D[P]=L[A],P+=g}switch(g){case 1:case 2:break;case 3:if(k=!0,this.adobe&&this.adobe.transformCode?k=!0:void 0!==this.colorTransform&&(k=!!this.colorTransform),k)for(i=0;i<y;i+=g)c=D[i],l=D[i+1],v=m(c-179.456+1.402*(f=D[i+2])),p=m(c+135.459-.344*l-.714*f),d=m(c-226.816+1.772*l),D[i]=v,D[i+1]=p,D[i+2]=d;break;case 4:if(!this.adobe)throw"Unsupported color mode (4 components)";if(k=!1,this.adobe&&this.adobe.transformCode?k=!0:void 0!==this.colorTransform&&(k=!!this.colorTransform),k)for(i=0;i<y;i+=g)c=D[i],l=D[i+1],h=m(434.456-c-1.402*(f=D[i+2])),b=m(119.541-c+.344*l+.714*f),c=m(481.816-c-1.772*l),D[i]=h,D[i+1]=b,D[i+2]=c;break;default:throw"Unsupported color mode"}return D}}),p}();e.exports={JpegImage:o}}}]);
|
|
2
2
|
//# sourceMappingURL=945.min.worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"945.min.worker.js","mappings":"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","sources":["webpack:///../codecs/jpeg.js"],"sourcesContent":["// jshint ignore: start\n/* eslint-disable */\n\n/*\n Copyright 2011 notmasteryet\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n */\n\n// - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n// (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n// - The JFIF specification can be found in the JPEG File Interchange Format\n// (www.w3.org/Graphics/JPEG/jfif3.pdf)\n// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters\n// in PostScript Level 2, Technical Note #5116\n// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n\nvar ColorSpace = { Unkown: 0, Grayscale: 1, AdobeRGB: 2, RGB: 3, CYMK: 4 };\nvar JpegImage = (function jpegImage() {\n 'use strict';\n var dctZigZag = new Int32Array([\n 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36,\n 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61,\n 54, 47, 55, 62, 63,\n ]);\n\n var dctCos1 = 4017; // cos(pi/16)\n var dctSin1 = 799; // sin(pi/16)\n var dctCos3 = 3406; // cos(3*pi/16)\n var dctSin3 = 2276; // sin(3*pi/16)\n var dctCos6 = 1567; // cos(6*pi/16)\n var dctSin6 = 3784; // sin(6*pi/16)\n var dctSqrt2 = 5793; // sqrt(2)\n var dctSqrt1d2 = 2896; // sqrt(2) / 2\n\n function buildHuffmanTable(codeLengths, values) {\n var k = 0,\n code = [],\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) length--;\n code.push({ children: [], index: 0 });\n var p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n\n function getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n }\n\n function decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive\n ) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH,\n maxV = frame.maxV;\n\n var startOffset = offset,\n bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 0xff) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw (\n 'unexpected marker: ' + ((bitsData << 8) | nextByte).toString(16)\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n var node = tree;\n var bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === 'number') return node;\n if (typeof node !== 'object') throw 'invalid huffman sequence';\n }\n return null;\n }\n\n function receive(length) {\n var n = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null) return;\n n = (n << 1) | bit;\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n var n = receive(length);\n if (n >= 1 << (length - 1)) return n;\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[offset] = component.pred += diff;\n var k = 1;\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) break;\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[offset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, offset) {\n component.blockData[offset] |= readBit() << successive;\n }\n\n var eobrun = 0;\n function decodeACFirst(component, offset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k = spectralStart,\n e = spectralEnd;\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n var successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, offset) {\n var k = spectralStart,\n e = spectralEnd,\n r = 0;\n while (k <= e) {\n var z = dctZigZag[k];\n switch (successiveACState) {\n case 0: // initial state\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) throw 'invalid ACn encoding';\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n } else {\n r--;\n if (r === 0) successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n } else {\n component.blockData[offset + z] =\n successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) successiveACState = 0;\n }\n }\n\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = (mcu / mcusPerLine) | 0;\n var mcuCol = mcu % mcusPerLine;\n var blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n\n function decodeBlock(component, decode, mcu) {\n var blockRow = (mcu / component.blocksPerLine) | 0;\n var blockCol = mcu % component.blocksPerLine;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n\n var mcu = 0,\n marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval) {\n resetInterval = mcuExpected;\n }\n\n var h, v;\n while (mcu < mcuExpected) {\n // reset interval stuff\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n\n // find marker\n bitsCount = 0;\n marker = (data[offset] << 8) | data[offset + 1];\n if (marker <= 0xff00) {\n throw 'marker was not found';\n }\n\n if (marker >= 0xffd0 && marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n }\n\n // A port of poppler's IDCT method which in turn is taken from:\n // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n // \"Practical Fast 1-D DCT Algorithms with 11 Multiplications\",\n // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n // 988-991.\n function quantizeAndInverse(component, blockBufferOffset, p) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var i;\n\n // dequant\n for (i = 0; i < 64; i++) {\n p[i] = component.blockData[blockBufferOffset + i] * qt[i];\n }\n\n // inverse DCT on rows\n for (i = 0; i < 8; ++i) {\n var row = 8 * i;\n\n // check for all-zero AC coefficients\n if (\n p[1 + row] === 0 &&\n p[2 + row] === 0 &&\n p[3 + row] === 0 &&\n p[4 + row] === 0 &&\n p[5 + row] === 0 &&\n p[6 + row] === 0 &&\n p[7 + row] === 0\n ) {\n t = (dctSqrt2 * p[0 + row] + 512) >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p[0 + row] + 128) >> 8;\n v1 = (dctSqrt2 * p[4 + row] + 128) >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (i = 0; i < 8; ++i) {\n var col = i;\n\n // check for all-zero AC coefficients\n if (\n p[1 * 8 + col] === 0 &&\n p[2 * 8 + col] === 0 &&\n p[3 * 8 + col] === 0 &&\n p[4 * 8 + col] === 0 &&\n p[5 * 8 + col] === 0 &&\n p[6 * 8 + col] === 0 &&\n p[7 * 8 + col] === 0\n ) {\n t = (dctSqrt2 * p[i + 0] + 8192) >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p[0 * 8 + col] + 2048) >> 12;\n v1 = (dctSqrt2 * p[4 * 8 + col] + 2048) >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = (dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048) >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n\n // convert to 8-bit integers\n for (i = 0; i < 64; ++i) {\n var index = blockBufferOffset + i;\n var q = p[i];\n q =\n q <= -2056 / component.bitConversion\n ? 0\n : q >= 2024 / component.bitConversion\n ? 255 / component.bitConversion\n : (q + 2056 / component.bitConversion) >> 4;\n component.blockData[index] = q;\n }\n }\n\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var computationBuffer = new Int32Array(64);\n\n var i,\n j,\n ll = 0;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n }\n\n function clampToUint8(a) {\n return a <= 0 ? 0 : a >= 255 ? 255 : a | 0;\n }\n\n // create a JPEG Image class\n class JpegImage {}\n\n // setting up all the prototype functions\n // javascript new version of setting up prototype functions\n Object.setPrototypeOf(JpegImage.prototype, {\n load: function load(path) {\n var handleData = function (data) {\n this.parse(data);\n if (this.onload) this.onload();\n }.bind(this);\n\n if (path.indexOf('data:') > -1) {\n var offset = path.indexOf('base64,') + 7;\n var data = atob(path.substring(offset));\n var arr = new Uint8Array(data.length);\n for (var i = data.length - 1; i >= 0; i--) {\n arr[i] = data.charCodeAt(i);\n }\n handleData(data);\n } else {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, true);\n xhr.responseType = 'arraybuffer';\n xhr.onload = function () {\n // TODO catch parse error\n var data = new Uint8Array(xhr.response);\n handleData(data);\n }.bind(this);\n xhr.send(null);\n }\n },\n parse: function parse(data) {\n function readUint16() {\n var value = (data[offset] << 8) | data[offset + 1];\n offset += 2;\n return value;\n }\n\n function readDataBlock() {\n var length = readUint16();\n var array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (var i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n var blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n var blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n var offset = 0,\n length = data.length;\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [];\n var huffmanTablesAC = [],\n huffmanTablesDC = [];\n var fileMarker = readUint16();\n if (fileMarker != 0xffd8) {\n // SOI (Start of Image)\n throw 'SOI not found';\n }\n\n fileMarker = readUint16();\n while (fileMarker != 0xffd9) {\n // EOI (End of image)\n var i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n var appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n // 'JFIF\\x00'\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65 &&\n appData[5] === 0\n ) {\n // 'Adobe\\x00'\n adobe = {\n version: appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n //16 bit\n for (j = 0; j < 64; j++) {\n var zz = dctZigZag[j];\n tableData[zz] = readUint16();\n }\n } else throw 'DQT: invalid table spec';\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw 'Only single frame JPEGs supported';\n }\n readUint16(); // skip data length\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = [];\n frame.componentIds = {};\n var componentsCount = data[offset++],\n componentId;\n var maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n if (maxH < h) maxH = h;\n if (maxV < v) maxV = v;\n var qId = data[offset + 2];\n l = frame.components.push({\n h: h,\n v: v,\n quantizationTable: quantizationTables[qId],\n quantizationTableId: qId,\n bitConversion: 255 / ((1 << frame.precision) - 1),\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n readUint16(); // skip data length\n resetInterval = readUint16();\n break;\n\n case 0xffda: // SOS (Start of Scan)\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [],\n component;\n for (i = 0; i < selectorsCount; i++) {\n var componentIndex = frame.componentIds[data[offset++]];\n component = frame.components[componentIndex];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15\n );\n offset += processed;\n break;\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n default:\n if (\n data[offset - 3] == 0xff &&\n data[offset - 2] >= 0xc0 &&\n data[offset - 2] <= 0xfe\n ) {\n // could be incorrect encoding -- last 0xFF byte of the previous\n // block was eaten by the encoder\n offset -= 3;\n break;\n }\n throw 'unknown JPEG marker ' + fileMarker.toString(16);\n }\n fileMarker = readUint16();\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n switch (frame.components.length) {\n case 1:\n this.colorspace = ColorSpace.Grayscale;\n break;\n case 3:\n if (this.adobe) this.colorspace = ColorSpace.AdobeRGB;\n else this.colorspace = ColorSpace.RGB;\n break;\n case 4:\n this.colorspace = ColorSpace.CYMK;\n break;\n default:\n this.colorspace = ColorSpace.Unknown;\n }\n for (var i = 0; i < frame.components.length; i++) {\n var component = frame.components[i];\n if (\n !component.quantizationTable &&\n component.quantizationTableId !== null\n )\n component.quantizationTable =\n quantizationTables[component.quantizationTableId];\n this.components.push({\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n bitConversion: component.bitConversion,\n });\n }\n },\n getData16: function getData16(width, height) {\n if (this.components.length !== 1) throw 'Unsupported color mode';\n var scaleX = this.width / width,\n scaleY = this.height / height;\n\n var component, componentScaleX, componentScaleY;\n var x, y, i;\n var offset = 0;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint16Array(dataLength);\n var componentLine;\n\n // lineData is reused for all components. Assume first component is\n // the biggest\n var lineData = new Uint16Array(\n (this.components[0].blocksPerLine << 3) *\n this.components[0].blocksPerColumn *\n 8\n );\n\n // First construct image data ...\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n\n var j,\n k,\n ll = 0;\n var lineOffset = 0;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var bufferOffset = getBlockBufferOffset(\n component,\n blockRow,\n blockCol\n );\n var offset = 0,\n sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var lineOffset = (scanLine + j) * samplesPerLine;\n for (k = 0; k < 8; k++) {\n lineData[lineOffset + sample + k] =\n component.output[bufferOffset + offset++];\n }\n }\n }\n }\n\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n\n var cx, cy;\n var index;\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n cy = 0 | (y * componentScaleY);\n cx = 0 | (x * componentScaleX);\n index = cy * samplesPerLine + cx;\n data[offset] = lineData[index];\n offset += numComponents;\n }\n }\n }\n return data;\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width,\n scaleY = this.height / height;\n\n var component, componentScaleX, componentScaleY;\n var x, y, i;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint8Array(dataLength);\n var componentLine;\n\n // lineData is reused for all components. Assume first component is\n // the biggest\n var lineData = new Uint8Array(\n (this.components[0].blocksPerLine << 3) *\n this.components[0].blocksPerColumn *\n 8\n );\n\n // First construct image data ...\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n\n var j,\n k,\n ll = 0;\n var lineOffset = 0;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var bufferOffset = getBlockBufferOffset(\n component,\n blockRow,\n blockCol\n );\n var offset = 0,\n sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var lineOffset = (scanLine + j) * samplesPerLine;\n for (k = 0; k < 8; k++) {\n lineData[lineOffset + sample + k] =\n component.output[bufferOffset + offset++] *\n component.bitConversion;\n }\n }\n }\n }\n\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n\n var cx, cy;\n var index;\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n cy = 0 | (y * componentScaleY);\n cx = 0 | (x * componentScaleX);\n index = cy * samplesPerLine + cx;\n data[offset] = lineData[index];\n offset += numComponents;\n }\n }\n }\n\n // ... then transform colors, if necessary\n switch (numComponents) {\n case 1:\n case 2:\n break;\n // no color conversion for one or two compoenents\n\n case 3:\n // The default transform for three components is true\n colorTransform = true;\n // The adobe transform marker overrides any previous setting\n if (this.adobe && this.adobe.transformCode) colorTransform = true;\n else if (typeof this.colorTransform !== 'undefined')\n colorTransform = !!this.colorTransform;\n\n if (colorTransform) {\n for (i = 0; i < dataLength; i += numComponents) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n\n R = clampToUint8(Y - 179.456 + 1.402 * Cr);\n G = clampToUint8(Y + 135.459 - 0.344 * Cb - 0.714 * Cr);\n B = clampToUint8(Y - 226.816 + 1.772 * Cb);\n\n data[i] = R;\n data[i + 1] = G;\n data[i + 2] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe) throw 'Unsupported color mode (4 components)';\n // The default transform for four components is false\n colorTransform = false;\n // The adobe transform marker overrides any previous setting\n if (this.adobe && this.adobe.transformCode) colorTransform = true;\n else if (typeof this.colorTransform !== 'undefined')\n colorTransform = !!this.colorTransform;\n\n if (colorTransform) {\n for (i = 0; i < dataLength; i += numComponents) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n\n C = clampToUint8(434.456 - Y - 1.402 * Cr);\n M = clampToUint8(119.541 - Y + 0.344 * Cb + 0.714 * Cr);\n Y = clampToUint8(481.816 - Y - 1.772 * Cb);\n\n data[i] = C;\n data[i + 1] = M;\n data[i + 2] = Y;\n // K is unchanged\n }\n }\n break;\n default:\n throw 'Unsupported color mode';\n }\n return data;\n },\n });\n\n return JpegImage\n})();\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = {\n JpegImage\n};\n"],"names":["ColorSpace","Unkown","Grayscale","AdobeRGB","RGB","CYMK","JpegImage","dctZigZag","Int32Array","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","values","i","j","k","code","length","push","children","index","q","p","pop","getBlockBufferOffset","component","row","col","blocksPerLine","decodeScan","data","offset","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","precision","samplesPerLine","scanLines","mcusPerLine","progressive","startOffset","maxH","maxV","bitsData","bitsCount","readBit","nextByte","toString","decodeHuffman","tree","bit","node","receive","n","receiveAndExtend","eobrun","successiveACNextValue","successiveACState","decodeMcu","decode","mcu","mcuCol","v","h","decodeBlock","decodeFn","componentsLength","t","huffmanTableDC","diff","blockData","pred","e","rs","huffmanTableAC","s","r","z","marker","mcuExpected","blocksPerColumn","mcusPerColumn","quantizeAndInverse","blockBufferOffset","v0","v1","v2","v3","v4","v5","v6","v7","qt","quantizationTable","bitConversion","buildComponentData","computationBuffer","blockRow","blockCol","clampToUint8","a","Object","setPrototypeOf","prototype","load","path","handleData","this","parse","onload","bind","indexOf","atob","substring","arr","Uint8Array","charCodeAt","xhr","XMLHttpRequest","open","responseType","response","send","readUint16","value","readDataBlock","array","subarray","prepareComponents","Math","ceil","blocksPerLineForMcu","blocksBufferSize","Int16Array","jfif","adobe","quantizationTables","huffmanTablesAC","huffmanTablesDC","fileMarker","l","appData","version","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesEnd","quantizationTableSpec","tableData","extended","componentIds","componentId","componentsCount","qId","quantizationTableId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","width","height","colorspace","Unknown","output","scaleX","scaleY","getData16","componentScaleX","componentScaleY","x","y","numComponents","Uint16Array","lineData","lineOffset","scanLine","bufferOffset","sample","getData","Y","Cb","Cr","C","M","R","G","B","colorTransform","dataLength","module","exports"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"945.min.worker.js","mappings":"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","sources":["webpack:///../codecs/jpeg.js"],"sourcesContent":["// jshint ignore: start\n/* eslint-disable */\n\n/*\n Copyright 2011 notmasteryet\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n */\n\n// - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n// (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n// - The JFIF specification can be found in the JPEG File Interchange Format\n// (www.w3.org/Graphics/JPEG/jfif3.pdf)\n// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters\n// in PostScript Level 2, Technical Note #5116\n// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n\nvar ColorSpace = { Unkown: 0, Grayscale: 1, AdobeRGB: 2, RGB: 3, CYMK: 4 };\nvar JpegImage = (function jpegImage() {\n 'use strict';\n var dctZigZag = new Int32Array([\n 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36,\n 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61,\n 54, 47, 55, 62, 63,\n ]);\n\n var dctCos1 = 4017; // cos(pi/16)\n var dctSin1 = 799; // sin(pi/16)\n var dctCos3 = 3406; // cos(3*pi/16)\n var dctSin3 = 2276; // sin(3*pi/16)\n var dctCos6 = 1567; // cos(6*pi/16)\n var dctSin6 = 3784; // sin(6*pi/16)\n var dctSqrt2 = 5793; // sqrt(2)\n var dctSqrt1d2 = 2896; // sqrt(2) / 2\n\n function buildHuffmanTable(codeLengths, values) {\n var k = 0,\n code = [],\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) length--;\n code.push({ children: [], index: 0 });\n var p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n\n function getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n }\n\n function decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive\n ) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH,\n maxV = frame.maxV;\n\n var startOffset = offset,\n bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 0xff) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw (\n 'unexpected marker: ' + ((bitsData << 8) | nextByte).toString(16)\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n var node = tree;\n var bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === 'number') return node;\n if (typeof node !== 'object') throw 'invalid huffman sequence';\n }\n return null;\n }\n\n function receive(length) {\n var n = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null) return;\n n = (n << 1) | bit;\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n var n = receive(length);\n if (n >= 1 << (length - 1)) return n;\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[offset] = component.pred += diff;\n var k = 1;\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) break;\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[offset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, offset) {\n component.blockData[offset] |= readBit() << successive;\n }\n\n var eobrun = 0;\n function decodeACFirst(component, offset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k = spectralStart,\n e = spectralEnd;\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n var successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, offset) {\n var k = spectralStart,\n e = spectralEnd,\n r = 0;\n while (k <= e) {\n var z = dctZigZag[k];\n switch (successiveACState) {\n case 0: // initial state\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) throw 'invalid ACn encoding';\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n } else {\n r--;\n if (r === 0) successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n } else {\n component.blockData[offset + z] =\n successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) successiveACState = 0;\n }\n }\n\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = (mcu / mcusPerLine) | 0;\n var mcuCol = mcu % mcusPerLine;\n var blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n\n function decodeBlock(component, decode, mcu) {\n var blockRow = (mcu / component.blocksPerLine) | 0;\n var blockCol = mcu % component.blocksPerLine;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n\n var mcu = 0,\n marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval) {\n resetInterval = mcuExpected;\n }\n\n var h, v;\n while (mcu < mcuExpected) {\n // reset interval stuff\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n\n // find marker\n bitsCount = 0;\n marker = (data[offset] << 8) | data[offset + 1];\n if (marker <= 0xff00) {\n throw 'marker was not found';\n }\n\n if (marker >= 0xffd0 && marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n }\n\n // A port of poppler's IDCT method which in turn is taken from:\n // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n // \"Practical Fast 1-D DCT Algorithms with 11 Multiplications\",\n // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n // 988-991.\n function quantizeAndInverse(component, blockBufferOffset, p) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var i;\n\n // dequant\n for (i = 0; i < 64; i++) {\n p[i] = component.blockData[blockBufferOffset + i] * qt[i];\n }\n\n // inverse DCT on rows\n for (i = 0; i < 8; ++i) {\n var row = 8 * i;\n\n // check for all-zero AC coefficients\n if (\n p[1 + row] === 0 &&\n p[2 + row] === 0 &&\n p[3 + row] === 0 &&\n p[4 + row] === 0 &&\n p[5 + row] === 0 &&\n p[6 + row] === 0 &&\n p[7 + row] === 0\n ) {\n t = (dctSqrt2 * p[0 + row] + 512) >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p[0 + row] + 128) >> 8;\n v1 = (dctSqrt2 * p[4 + row] + 128) >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (i = 0; i < 8; ++i) {\n var col = i;\n\n // check for all-zero AC coefficients\n if (\n p[1 * 8 + col] === 0 &&\n p[2 * 8 + col] === 0 &&\n p[3 * 8 + col] === 0 &&\n p[4 * 8 + col] === 0 &&\n p[5 * 8 + col] === 0 &&\n p[6 * 8 + col] === 0 &&\n p[7 * 8 + col] === 0\n ) {\n t = (dctSqrt2 * p[i + 0] + 8192) >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p[0 * 8 + col] + 2048) >> 12;\n v1 = (dctSqrt2 * p[4 * 8 + col] + 2048) >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = (dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048) >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n\n // convert to 8-bit integers\n for (i = 0; i < 64; ++i) {\n var index = blockBufferOffset + i;\n var q = p[i];\n q =\n q <= -2056 / component.bitConversion\n ? 0\n : q >= 2024 / component.bitConversion\n ? 255 / component.bitConversion\n : (q + 2056 / component.bitConversion) >> 4;\n component.blockData[index] = q;\n }\n }\n\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var computationBuffer = new Int32Array(64);\n\n var i,\n j,\n ll = 0;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n }\n\n function clampToUint8(a) {\n return a <= 0 ? 0 : a >= 255 ? 255 : a | 0;\n }\n\n // create a JPEG Image class\n class JpegImage {}\n\n // setting up all the prototype functions\n // javascript new version of setting up prototype functions\n Object.setPrototypeOf(JpegImage.prototype, {\n load: function load(path) {\n var handleData = function (data) {\n this.parse(data);\n if (this.onload) this.onload();\n }.bind(this);\n\n if (path.indexOf('data:') > -1) {\n var offset = path.indexOf('base64,') + 7;\n var data = atob(path.substring(offset));\n var arr = new Uint8Array(data.length);\n for (var i = data.length - 1; i >= 0; i--) {\n arr[i] = data.charCodeAt(i);\n }\n handleData(data);\n } else {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, true);\n xhr.responseType = 'arraybuffer';\n xhr.onload = function () {\n // TODO catch parse error\n var data = new Uint8Array(xhr.response);\n handleData(data);\n }.bind(this);\n xhr.send(null);\n }\n },\n parse: function parse(data) {\n function readUint16() {\n var value = (data[offset] << 8) | data[offset + 1];\n offset += 2;\n return value;\n }\n\n function readDataBlock() {\n var length = readUint16();\n var array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (var i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n var blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n var blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n var offset = 0,\n length = data.length;\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [];\n var huffmanTablesAC = [],\n huffmanTablesDC = [];\n var fileMarker = readUint16();\n if (fileMarker != 0xffd8) {\n // SOI (Start of Image)\n throw 'SOI not found';\n }\n\n fileMarker = readUint16();\n while (fileMarker != 0xffd9) {\n // EOI (End of image)\n var i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n var appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n // 'JFIF\\x00'\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65 &&\n appData[5] === 0\n ) {\n // 'Adobe\\x00'\n adobe = {\n version: appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n //16 bit\n for (j = 0; j < 64; j++) {\n var zz = dctZigZag[j];\n tableData[zz] = readUint16();\n }\n } else throw 'DQT: invalid table spec';\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw 'Only single frame JPEGs supported';\n }\n readUint16(); // skip data length\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = [];\n frame.componentIds = {};\n var componentsCount = data[offset++],\n componentId;\n var maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n if (maxH < h) maxH = h;\n if (maxV < v) maxV = v;\n var qId = data[offset + 2];\n l = frame.components.push({\n h: h,\n v: v,\n quantizationTable: quantizationTables[qId],\n quantizationTableId: qId,\n bitConversion: 255 / ((1 << frame.precision) - 1),\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n readUint16(); // skip data length\n resetInterval = readUint16();\n break;\n\n case 0xffda: // SOS (Start of Scan)\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [],\n component;\n for (i = 0; i < selectorsCount; i++) {\n var componentIndex = frame.componentIds[data[offset++]];\n component = frame.components[componentIndex];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15\n );\n offset += processed;\n break;\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n default:\n if (\n data[offset - 3] == 0xff &&\n data[offset - 2] >= 0xc0 &&\n data[offset - 2] <= 0xfe\n ) {\n // could be incorrect encoding -- last 0xFF byte of the previous\n // block was eaten by the encoder\n offset -= 3;\n break;\n }\n throw 'unknown JPEG marker ' + fileMarker.toString(16);\n }\n fileMarker = readUint16();\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n switch (frame.components.length) {\n case 1:\n this.colorspace = ColorSpace.Grayscale;\n break;\n case 3:\n if (this.adobe) this.colorspace = ColorSpace.AdobeRGB;\n else this.colorspace = ColorSpace.RGB;\n break;\n case 4:\n this.colorspace = ColorSpace.CYMK;\n break;\n default:\n this.colorspace = ColorSpace.Unknown;\n }\n for (var i = 0; i < frame.components.length; i++) {\n var component = frame.components[i];\n if (\n !component.quantizationTable &&\n component.quantizationTableId !== null\n )\n component.quantizationTable =\n quantizationTables[component.quantizationTableId];\n this.components.push({\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n bitConversion: component.bitConversion,\n });\n }\n },\n getData16: function getData16(width, height) {\n if (this.components.length !== 1) throw 'Unsupported color mode';\n var scaleX = this.width / width,\n scaleY = this.height / height;\n\n var component, componentScaleX, componentScaleY;\n var x, y, i;\n var offset = 0;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint16Array(dataLength);\n var componentLine;\n\n // lineData is reused for all components. Assume first component is\n // the biggest\n var lineData = new Uint16Array(\n (this.components[0].blocksPerLine << 3) *\n this.components[0].blocksPerColumn *\n 8\n );\n\n // First construct image data ...\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n\n var j,\n k,\n ll = 0;\n var lineOffset = 0;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var bufferOffset = getBlockBufferOffset(\n component,\n blockRow,\n blockCol\n );\n var offset = 0,\n sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var lineOffset = (scanLine + j) * samplesPerLine;\n for (k = 0; k < 8; k++) {\n lineData[lineOffset + sample + k] =\n component.output[bufferOffset + offset++];\n }\n }\n }\n }\n\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n\n var cx, cy;\n var index;\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n cy = 0 | (y * componentScaleY);\n cx = 0 | (x * componentScaleX);\n index = cy * samplesPerLine + cx;\n data[offset] = lineData[index];\n offset += numComponents;\n }\n }\n }\n return data;\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width,\n scaleY = this.height / height;\n\n var component, componentScaleX, componentScaleY;\n var x, y, i;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint8Array(dataLength);\n var componentLine;\n\n // lineData is reused for all components. Assume first component is\n // the biggest\n var lineData = new Uint8Array(\n (this.components[0].blocksPerLine << 3) *\n this.components[0].blocksPerColumn *\n 8\n );\n\n // First construct image data ...\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n\n var j,\n k,\n ll = 0;\n var lineOffset = 0;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var bufferOffset = getBlockBufferOffset(\n component,\n blockRow,\n blockCol\n );\n var offset = 0,\n sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var lineOffset = (scanLine + j) * samplesPerLine;\n for (k = 0; k < 8; k++) {\n lineData[lineOffset + sample + k] =\n component.output[bufferOffset + offset++] *\n component.bitConversion;\n }\n }\n }\n }\n\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n\n var cx, cy;\n var index;\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n cy = 0 | (y * componentScaleY);\n cx = 0 | (x * componentScaleX);\n index = cy * samplesPerLine + cx;\n data[offset] = lineData[index];\n offset += numComponents;\n }\n }\n }\n\n // ... then transform colors, if necessary\n switch (numComponents) {\n case 1:\n case 2:\n break;\n // no color conversion for one or two compoenents\n\n case 3:\n // The default transform for three components is true\n colorTransform = true;\n // The adobe transform marker overrides any previous setting\n if (this.adobe && this.adobe.transformCode) colorTransform = true;\n else if (typeof this.colorTransform !== 'undefined')\n colorTransform = !!this.colorTransform;\n\n if (colorTransform) {\n for (i = 0; i < dataLength; i += numComponents) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n\n R = clampToUint8(Y - 179.456 + 1.402 * Cr);\n G = clampToUint8(Y + 135.459 - 0.344 * Cb - 0.714 * Cr);\n B = clampToUint8(Y - 226.816 + 1.772 * Cb);\n\n data[i] = R;\n data[i + 1] = G;\n data[i + 2] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe) throw 'Unsupported color mode (4 components)';\n // The default transform for four components is false\n colorTransform = false;\n // The adobe transform marker overrides any previous setting\n if (this.adobe && this.adobe.transformCode) colorTransform = true;\n else if (typeof this.colorTransform !== 'undefined')\n colorTransform = !!this.colorTransform;\n\n if (colorTransform) {\n for (i = 0; i < dataLength; i += numComponents) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n\n C = clampToUint8(434.456 - Y - 1.402 * Cr);\n M = clampToUint8(119.541 - Y + 0.344 * Cb + 0.714 * Cr);\n Y = clampToUint8(481.816 - Y - 1.772 * Cb);\n\n data[i] = C;\n data[i + 1] = M;\n data[i + 2] = Y;\n // K is unchanged\n }\n }\n break;\n default:\n throw 'Unsupported color mode';\n }\n return data;\n },\n });\n\n return JpegImage\n})();\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = {\n JpegImage\n};\n"],"names":["ColorSpace","Unkown","Grayscale","AdobeRGB","RGB","CYMK","JpegImage","dctZigZag","Int32Array","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","values","i","j","k","code","length","push","children","index","q","p","pop","getBlockBufferOffset","component","row","col","blocksPerLine","decodeScan","data","offset","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","precision","samplesPerLine","scanLines","mcusPerLine","progressive","startOffset","maxH","maxV","bitsData","bitsCount","readBit","nextByte","toString","decodeHuffman","tree","bit","node","receive","n","receiveAndExtend","eobrun","successiveACNextValue","successiveACState","decodeMcu","decode","mcu","mcuCol","v","h","decodeBlock","decodeFn","componentsLength","t","huffmanTableDC","diff","blockData","pred","e","rs","huffmanTableAC","s","r","z","marker","mcuExpected","blocksPerColumn","mcusPerColumn","quantizeAndInverse","blockBufferOffset","v0","v1","v2","v3","v4","v5","v6","v7","qt","quantizationTable","bitConversion","buildComponentData","computationBuffer","blockRow","blockCol","clampToUint8","a","Object","setPrototypeOf","prototype","load","path","handleData","this","parse","onload","bind","indexOf","atob","substring","arr","Uint8Array","charCodeAt","xhr","XMLHttpRequest","open","responseType","response","send","readUint16","value","readDataBlock","array","subarray","prepareComponents","Math","ceil","blocksPerLineForMcu","blocksBufferSize","Int16Array","jfif","adobe","quantizationTables","huffmanTablesAC","huffmanTablesDC","fileMarker","l","appData","version","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesEnd","quantizationTableSpec","tableData","extended","componentIds","componentId","componentsCount","qId","quantizationTableId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","width","height","colorspace","Unknown","output","scaleX","scaleY","getData16","componentScaleX","componentScaleY","x","y","numComponents","Uint16Array","lineData","lineOffset","scanLine","bufferOffset","sample","getData","Y","Cb","Cr","C","M","R","G","B","colorTransform","dataLength","module","exports"],"sourceRoot":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[962],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 63962:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -20,18 +20,18 @@ __webpack_require__.d(actions_namespaceObject, {
|
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/package.json
|
|
23
|
-
const package_namespaceObject =
|
|
23
|
+
const package_namespaceObject = JSON.parse('{"u2":"@ohif/extension-cornerstone-dynamic-volume"}');
|
|
24
24
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/src/id.js
|
|
25
25
|
|
|
26
|
-
const id = package_namespaceObject.
|
|
26
|
+
const id = package_namespaceObject.u2;
|
|
27
27
|
const SOPClassHandlerName = 'dynamic-volume';
|
|
28
28
|
|
|
29
29
|
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
30
|
-
var src = __webpack_require__(
|
|
30
|
+
var src = __webpack_require__(63810);
|
|
31
31
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
|
|
32
|
-
var esm = __webpack_require__(
|
|
32
|
+
var esm = __webpack_require__(62709);
|
|
33
33
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
|
|
34
|
-
var dist_esm = __webpack_require__(
|
|
34
|
+
var dist_esm = __webpack_require__(93725);
|
|
35
35
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/src/actions/updateSegmentationsChartDisplaySet.ts
|
|
36
36
|
|
|
37
37
|
|
|
@@ -652,16 +652,16 @@ const commandsModule = ({
|
|
|
652
652
|
};
|
|
653
653
|
/* harmony default export */ const src_commandsModule = (commandsModule);
|
|
654
654
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
655
|
-
var react = __webpack_require__(
|
|
655
|
+
var react = __webpack_require__(43001);
|
|
656
656
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
657
|
-
var prop_types = __webpack_require__(
|
|
657
|
+
var prop_types = __webpack_require__(3827);
|
|
658
658
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
659
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
660
|
-
var ui_src = __webpack_require__(
|
|
659
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 784 modules
|
|
660
|
+
var ui_src = __webpack_require__(38604);
|
|
661
661
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
|
|
662
|
-
var streaming_image_volume_loader_dist_esm = __webpack_require__(
|
|
662
|
+
var streaming_image_volume_loader_dist_esm = __webpack_require__(15793);
|
|
663
663
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx
|
|
664
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
664
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
665
665
|
|
|
666
666
|
|
|
667
667
|
|
|
@@ -675,14 +675,14 @@ const Header = ({
|
|
|
675
675
|
tooltip
|
|
676
676
|
}) => /*#__PURE__*/react.createElement("div", {
|
|
677
677
|
className: "flex items-center space-x-1"
|
|
678
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Tooltip */.
|
|
678
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Tooltip */.u, {
|
|
679
679
|
content: /*#__PURE__*/react.createElement("div", {
|
|
680
680
|
className: "text-white"
|
|
681
681
|
}, tooltip),
|
|
682
682
|
position: "bottom-left",
|
|
683
683
|
tight: true,
|
|
684
684
|
tooltipBoxClassName: "max-w-xs p-2"
|
|
685
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
685
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
686
686
|
name: "info-link",
|
|
687
687
|
className: "text-primary-active h-[14px] w-[14px]"
|
|
688
688
|
})), /*#__PURE__*/react.createElement("span", {
|
|
@@ -719,7 +719,7 @@ const DynamicVolumeControls = ({
|
|
|
719
719
|
};
|
|
720
720
|
return /*#__PURE__*/react.createElement("div", {
|
|
721
721
|
className: "flex select-none flex-col"
|
|
722
|
-
}, /*#__PURE__*/react.createElement(ui_src/* PanelSection */.
|
|
722
|
+
}, /*#__PURE__*/react.createElement(ui_src/* PanelSection */.cw, {
|
|
723
723
|
title: "Controls",
|
|
724
724
|
childrenClassName: "space-y-4 pb-5 px-5"
|
|
725
725
|
}, /*#__PURE__*/react.createElement("div", {
|
|
@@ -727,7 +727,7 @@ const DynamicVolumeControls = ({
|
|
|
727
727
|
}, /*#__PURE__*/react.createElement(Header, {
|
|
728
728
|
title: "View",
|
|
729
729
|
tooltip: 'Select the view mode, 4D to view the dynamic volume or Computed to view the computed volume'
|
|
730
|
-
}), /*#__PURE__*/react.createElement(ui_src/* ButtonGroup */.
|
|
730
|
+
}), /*#__PURE__*/react.createElement(ui_src/* ButtonGroup */.hE, {
|
|
731
731
|
className: "mt-2 w-full"
|
|
732
732
|
}, /*#__PURE__*/react.createElement("button", {
|
|
733
733
|
className: "w-1/2",
|
|
@@ -760,7 +760,7 @@ const DynamicVolumeControls = ({
|
|
|
760
760
|
}, /*#__PURE__*/react.createElement(Header, {
|
|
761
761
|
title: "Computed Operation",
|
|
762
762
|
tooltip: /*#__PURE__*/react.createElement("div", null, "Operation Buttons (SUM, AVERAGE, SUBTRACT): Select the mathematical operation to be applied to the data set.", /*#__PURE__*/react.createElement("br", null), " Range Slider: Choose the numeric range within which the operation will be performed.", /*#__PURE__*/react.createElement("br", null), "Generate Button: Execute the chosen operation on the specified range of data.", ' ')
|
|
763
|
-
}), /*#__PURE__*/react.createElement(ui_src/* ButtonGroup */.
|
|
763
|
+
}), /*#__PURE__*/react.createElement(ui_src/* ButtonGroup */.hE, {
|
|
764
764
|
className: `mt-2 w-full `,
|
|
765
765
|
separated: true
|
|
766
766
|
}, /*#__PURE__*/react.createElement("button", {
|
|
@@ -774,7 +774,7 @@ const DynamicVolumeControls = ({
|
|
|
774
774
|
onClick: () => setComputeViewMode(esm.Enums.DynamicOperatorType.SUBTRACT)
|
|
775
775
|
}, esm.Enums.DynamicOperatorType.SUBTRACT.toString().toUpperCase())), /*#__PURE__*/react.createElement("div", {
|
|
776
776
|
className: "w-ful mt-2"
|
|
777
|
-
}, /*#__PURE__*/react.createElement(ui_src/* InputDoubleRange */.
|
|
777
|
+
}, /*#__PURE__*/react.createElement(ui_src/* InputDoubleRange */.R0, {
|
|
778
778
|
values: sliderRangeValues,
|
|
779
779
|
onChange: handleSliderChange,
|
|
780
780
|
minValue: 0,
|
|
@@ -782,7 +782,7 @@ const DynamicVolumeControls = ({
|
|
|
782
782
|
allowNumberEdit: true,
|
|
783
783
|
maxValue: framesLength,
|
|
784
784
|
step: 1
|
|
785
|
-
})), /*#__PURE__*/react.createElement(ui_src/* Button
|
|
785
|
+
})), /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
|
|
786
786
|
className: "mt-2 !h-[26px] !w-[115px] self-start !p-0",
|
|
787
787
|
onClick: () => {
|
|
788
788
|
onGenerate(computeViewMode);
|
|
@@ -810,19 +810,19 @@ function FrameControls({
|
|
|
810
810
|
tooltip: /*#__PURE__*/react.createElement("div", null, "Play/Pause Button: Begin or pause the animation of the 4D visualization. ", /*#__PURE__*/react.createElement("br", null), " Frame Selector: Navigate through individual frames of the 4D data. ", /*#__PURE__*/react.createElement("br", null), " FPS (Frames Per Second) Selector: Adjust the playback speed of the animation.")
|
|
811
811
|
}), /*#__PURE__*/react.createElement("div", {
|
|
812
812
|
className: "mt-3 flex justify-between"
|
|
813
|
-
}, /*#__PURE__*/react.createElement(ui_src/* IconButton */.
|
|
813
|
+
}, /*#__PURE__*/react.createElement(ui_src/* IconButton */.hU, {
|
|
814
814
|
className: "bg-customblue-30 h-[26px] w-[58px] rounded-[4px]",
|
|
815
815
|
onClick: () => onPlayPauseChange(!isPlaying)
|
|
816
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
816
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
817
817
|
name: getPlayPauseIconName(),
|
|
818
818
|
className: " active:text-primary-light hover:bg-customblue-300 h-[24px] w-[24px] cursor-pointer text-white"
|
|
819
|
-
})), /*#__PURE__*/react.createElement(ui_src/* InputNumber */.
|
|
819
|
+
})), /*#__PURE__*/react.createElement(ui_src/* InputNumber */.Rn, _extends({
|
|
820
820
|
value: currentFrameIndex,
|
|
821
821
|
onChange: onFrameChange,
|
|
822
822
|
minValue: 0,
|
|
823
823
|
maxValue: framesLength,
|
|
824
824
|
label: "Frame"
|
|
825
|
-
}, controlClassNames)), /*#__PURE__*/react.createElement(ui_src/* InputNumber */.
|
|
825
|
+
}, controlClassNames)), /*#__PURE__*/react.createElement(ui_src/* InputNumber */.Rn, _extends({
|
|
826
826
|
value: fps,
|
|
827
827
|
onChange: onFpsChange,
|
|
828
828
|
minValue: minFps,
|
|
@@ -851,10 +851,10 @@ function PanelGenerateImage({
|
|
|
851
851
|
} = servicesManager.services;
|
|
852
852
|
const [{
|
|
853
853
|
isCineEnabled
|
|
854
|
-
}, cineService] = (0,ui_src/* useCine */.
|
|
854
|
+
}, cineService] = (0,ui_src/* useCine */.vQ)();
|
|
855
855
|
const [{
|
|
856
856
|
activeViewportId
|
|
857
|
-
}] = (0,ui_src/* useViewportGrid */.
|
|
857
|
+
}] = (0,ui_src/* useViewportGrid */.O_)();
|
|
858
858
|
|
|
859
859
|
//
|
|
860
860
|
const [timePointsRange, setTimePointsRange] = (0,react.useState)([]);
|
|
@@ -917,7 +917,7 @@ function PanelGenerateImage({
|
|
|
917
917
|
}, [activeViewportId, cornerstoneViewportService]);
|
|
918
918
|
(0,react.useEffect)(() => {
|
|
919
919
|
// ~~ Subscription
|
|
920
|
-
const evt = streaming_image_volume_loader_dist_esm/* Enums.Events */.
|
|
920
|
+
const evt = streaming_image_volume_loader_dist_esm/* Enums.Events */.Yb.z.DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED;
|
|
921
921
|
const callback = evt => {
|
|
922
922
|
setTimePointRendered(evt.detail.timePointIndex);
|
|
923
923
|
};
|
|
@@ -1092,13 +1092,9 @@ function DynamicDataPanel({
|
|
|
1092
1092
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/src/panels/WorkflowPanel.tsx
|
|
1093
1093
|
|
|
1094
1094
|
function WorkflowPanel({
|
|
1095
|
-
servicesManager
|
|
1096
|
-
extensionManager
|
|
1095
|
+
servicesManager
|
|
1097
1096
|
}) {
|
|
1098
|
-
const ProgressDropdownWithService =
|
|
1099
|
-
const defaultComponents = extensionManager.getModuleEntry('@ohif/extension-default.customizationModule.default').value;
|
|
1100
|
-
return defaultComponents.find(component => component.id === 'progressDropdownWithServiceComponent').component;
|
|
1101
|
-
}, [extensionManager]);
|
|
1097
|
+
const ProgressDropdownWithService = servicesManager.services.customizationService.getCustomization('progressDropdownWithServiceComponent').component;
|
|
1102
1098
|
return /*#__PURE__*/React.createElement("div", {
|
|
1103
1099
|
"data-cy": 'workflow-panel',
|
|
1104
1100
|
className: "bg-secondary-dark mb-1 px-3 py-4"
|
|
@@ -1115,7 +1111,7 @@ function WorkflowPanel({
|
|
|
1115
1111
|
|
|
1116
1112
|
|
|
1117
1113
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
1118
|
-
var es = __webpack_require__(
|
|
1114
|
+
var es = __webpack_require__(69190);
|
|
1119
1115
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/src/panels/DynamicExport.tsx
|
|
1120
1116
|
|
|
1121
1117
|
|
|
@@ -1130,7 +1126,7 @@ function DynamicExport({
|
|
|
1130
1126
|
} = servicesManager.services;
|
|
1131
1127
|
const {
|
|
1132
1128
|
t
|
|
1133
|
-
} = (0,es/* useTranslation
|
|
1129
|
+
} = (0,es/* useTranslation */.$G)('dynamicExport');
|
|
1134
1130
|
const [segmentations, setSegmentations] = (0,react.useState)(() => segmentationService.getSegmentations());
|
|
1135
1131
|
const actions = [{
|
|
1136
1132
|
label: 'Export Time Data',
|
|
@@ -1183,7 +1179,7 @@ function DynamicExport({
|
|
|
1183
1179
|
}, []);
|
|
1184
1180
|
return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("div", {
|
|
1185
1181
|
className: "mt-3 flex justify-center px-2"
|
|
1186
|
-
}, /*#__PURE__*/react.createElement(ui_src/* ActionButtons */.
|
|
1182
|
+
}, /*#__PURE__*/react.createElement(ui_src/* ActionButtons */.EY, {
|
|
1187
1183
|
actions: actions,
|
|
1188
1184
|
t: t
|
|
1189
1185
|
})));
|
|
@@ -1207,7 +1203,7 @@ function getPanelModule({
|
|
|
1207
1203
|
});
|
|
1208
1204
|
};
|
|
1209
1205
|
const wrappedDynamicToolbox = () => {
|
|
1210
|
-
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* Toolbox */.
|
|
1206
|
+
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* Toolbox */.vb, {
|
|
1211
1207
|
commandsManager: commandsManager,
|
|
1212
1208
|
servicesManager: servicesManager,
|
|
1213
1209
|
extensionManager: extensionManager,
|