UNPKG

dwv

Version:
2 lines 995 B
class e{decode(e,t,a,n,r,f){const s=t/8,l=new DataView(e.buffer,e.byteOffset),i=new Int8Array(e.buffer,e.byteOffset),o=new ArrayBuffer(n*r*s),d=new Int8Array(o),c=l.getInt32(0,!0);let w=1,y=1;1!==r&&0===f&&(y*=r),1!==s&&(y*=s),w*=y;let g=0,u=0,A=0,m=0,I=0;for(let t=0;t<c;++t){1!==y&&(A=t%y,0===A&&(I=m),g=I+A,2===s&&(g+=A%s?-1:1));const a=l.getInt32(4*(t+1),!0);let n=l.getInt32(4*(t+2),!0);t!==c-1&&0!==n||(n=e.length),u=a;let r=0;for(;u<n;)if(r=i[u],++u,r>=0&&r<=127)for(let e=0;e<r+1;++e)d[g]=i[u],++u,g+=w;else if(r<=-1&&r>=-127){const e=i[u];++u;for(let t=0;t<1-r;++t)d[g]=e,g+=w}g>m&&(m=g)}let b=null;return 8===t?b=a?new Int8Array(o):new Uint8Array(o):16===t&&(b=a?new Int16Array(o):new Uint16Array(o)),b}}self.addEventListener("message",(function(t){const a=new e;self.postMessage([a.decode(t.data.buffer,t.data.meta.bitsAllocated,t.data.meta.isSigned,t.data.meta.sliceSize,t.data.meta.samplesPerPixel,t.data.meta.planarConfiguration)])}),!1); //# sourceMappingURL=rle.worker.min.js.map