drtis-dicom-image-loader 2.19.7

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.
Files changed (225) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +173 -0
  3. package/dist/esm/codecs/jpeg.d.ts +29 -0
  4. package/dist/esm/codecs/jpeg.js +884 -0
  5. package/dist/esm/codecs/jpegLossless.d.ts +157 -0
  6. package/dist/esm/codecs/jpegLossless.js +808 -0
  7. package/dist/esm/constants/index.d.ts +2 -0
  8. package/dist/esm/constants/index.js +2 -0
  9. package/dist/esm/constants/transferSyntaxes.d.ts +46 -0
  10. package/dist/esm/constants/transferSyntaxes.js +46 -0
  11. package/dist/esm/decodeImageFrameWorker.d.ts +1 -0
  12. package/dist/esm/decodeImageFrameWorker.js +269 -0
  13. package/dist/esm/imageLoader/colorSpaceConverters/convertPALETTECOLOR.d.ts +3 -0
  14. package/dist/esm/imageLoader/colorSpaceConverters/convertPALETTECOLOR.js +77 -0
  15. package/dist/esm/imageLoader/colorSpaceConverters/convertRGBColorByPixel.d.ts +2 -0
  16. package/dist/esm/imageLoader/colorSpaceConverters/convertRGBColorByPixel.js +21 -0
  17. package/dist/esm/imageLoader/colorSpaceConverters/convertRGBColorByPlane.d.ts +2 -0
  18. package/dist/esm/imageLoader/colorSpaceConverters/convertRGBColorByPlane.js +28 -0
  19. package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.d.ts +2 -0
  20. package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.js +44 -0
  21. package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFullByPixel.d.ts +2 -0
  22. package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFullByPixel.js +33 -0
  23. package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFullByPlane.d.ts +2 -0
  24. package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFullByPlane.js +35 -0
  25. package/dist/esm/imageLoader/colorSpaceConverters/index.d.ts +7 -0
  26. package/dist/esm/imageLoader/colorSpaceConverters/index.js +7 -0
  27. package/dist/esm/imageLoader/convertColorSpace.d.ts +1 -0
  28. package/dist/esm/imageLoader/convertColorSpace.js +40 -0
  29. package/dist/esm/imageLoader/createImage.d.ts +5 -0
  30. package/dist/esm/imageLoader/createImage.js +245 -0
  31. package/dist/esm/imageLoader/decodeImageFrame.d.ts +3 -0
  32. package/dist/esm/imageLoader/decodeImageFrame.js +63 -0
  33. package/dist/esm/imageLoader/decodeJPEGBaseline8BitColor.d.ts +4 -0
  34. package/dist/esm/imageLoader/decodeJPEGBaseline8BitColor.js +64 -0
  35. package/dist/esm/imageLoader/getImageFrame.d.ts +3 -0
  36. package/dist/esm/imageLoader/getImageFrame.js +25 -0
  37. package/dist/esm/imageLoader/getInstanceModule.d.ts +3 -0
  38. package/dist/esm/imageLoader/getInstanceModule.js +40 -0
  39. package/dist/esm/imageLoader/getMinMax.d.ts +4 -0
  40. package/dist/esm/imageLoader/getMinMax.js +15 -0
  41. package/dist/esm/imageLoader/getScalingParameters.d.ts +6 -0
  42. package/dist/esm/imageLoader/getScalingParameters.js +16 -0
  43. package/dist/esm/imageLoader/imageIdToURI.d.ts +1 -0
  44. package/dist/esm/imageLoader/imageIdToURI.js +4 -0
  45. package/dist/esm/imageLoader/index.d.ts +91 -0
  46. package/dist/esm/imageLoader/index.js +34 -0
  47. package/dist/esm/imageLoader/internal/index.d.ts +10 -0
  48. package/dist/esm/imageLoader/internal/index.js +10 -0
  49. package/dist/esm/imageLoader/internal/options.d.ts +3 -0
  50. package/dist/esm/imageLoader/internal/options.js +19 -0
  51. package/dist/esm/imageLoader/internal/rangeRequest.d.ts +9 -0
  52. package/dist/esm/imageLoader/internal/rangeRequest.js +121 -0
  53. package/dist/esm/imageLoader/internal/streamRequest.d.ts +2 -0
  54. package/dist/esm/imageLoader/internal/streamRequest.js +93 -0
  55. package/dist/esm/imageLoader/internal/xhrRequest.d.ts +3 -0
  56. package/dist/esm/imageLoader/internal/xhrRequest.js +108 -0
  57. package/dist/esm/imageLoader/isColorConversionRequired.d.ts +1 -0
  58. package/dist/esm/imageLoader/isColorConversionRequired.js +25 -0
  59. package/dist/esm/imageLoader/isJPEGBaseline8BitColor.d.ts +3 -0
  60. package/dist/esm/imageLoader/isJPEGBaseline8BitColor.js +9 -0
  61. package/dist/esm/imageLoader/isNMReconstructable.d.ts +1 -0
  62. package/dist/esm/imageLoader/isNMReconstructable.js +3 -0
  63. package/dist/esm/imageLoader/registerLoaders.d.ts +2 -0
  64. package/dist/esm/imageLoader/registerLoaders.js +7 -0
  65. package/dist/esm/imageLoader/wadors/combineFrameInstance.d.ts +12 -0
  66. package/dist/esm/imageLoader/wadors/combineFrameInstance.js +44 -0
  67. package/dist/esm/imageLoader/wadors/extractMultipart.d.ts +23 -0
  68. package/dist/esm/imageLoader/wadors/extractMultipart.js +73 -0
  69. package/dist/esm/imageLoader/wadors/findIndexOfString.d.ts +2 -0
  70. package/dist/esm/imageLoader/wadors/findIndexOfString.js +32 -0
  71. package/dist/esm/imageLoader/wadors/getImageQualityStatus.d.ts +3 -0
  72. package/dist/esm/imageLoader/wadors/getImageQualityStatus.js +8 -0
  73. package/dist/esm/imageLoader/wadors/getPixelData.d.ts +26 -0
  74. package/dist/esm/imageLoader/wadors/getPixelData.js +35 -0
  75. package/dist/esm/imageLoader/wadors/getTagValue.d.ts +1 -0
  76. package/dist/esm/imageLoader/wadors/getTagValue.js +9 -0
  77. package/dist/esm/imageLoader/wadors/index.d.ts +38 -0
  78. package/dist/esm/imageLoader/wadors/index.js +26 -0
  79. package/dist/esm/imageLoader/wadors/loadImage.d.ts +25 -0
  80. package/dist/esm/imageLoader/wadors/loadImage.js +124 -0
  81. package/dist/esm/imageLoader/wadors/loadImage_test.d.ts +1 -0
  82. package/dist/esm/imageLoader/wadors/loadImage_test.js +41 -0
  83. package/dist/esm/imageLoader/wadors/metaData/NMHelpers.d.ts +5 -0
  84. package/dist/esm/imageLoader/wadors/metaData/NMHelpers.js +38 -0
  85. package/dist/esm/imageLoader/wadors/metaData/USHelpers.d.ts +19 -0
  86. package/dist/esm/imageLoader/wadors/metaData/USHelpers.js +46 -0
  87. package/dist/esm/imageLoader/wadors/metaData/extractPositioningFromMetadata.d.ts +3 -0
  88. package/dist/esm/imageLoader/wadors/metaData/extractPositioningFromMetadata.js +18 -0
  89. package/dist/esm/imageLoader/wadors/metaData/getFirstNumberValue.d.ts +2 -0
  90. package/dist/esm/imageLoader/wadors/metaData/getFirstNumberValue.js +6 -0
  91. package/dist/esm/imageLoader/wadors/metaData/getNumberString.d.ts +3 -0
  92. package/dist/esm/imageLoader/wadors/metaData/getNumberString.js +9 -0
  93. package/dist/esm/imageLoader/wadors/metaData/getNumberValue.d.ts +3 -0
  94. package/dist/esm/imageLoader/wadors/metaData/getNumberValue.js +9 -0
  95. package/dist/esm/imageLoader/wadors/metaData/getNumberValues.d.ts +3 -0
  96. package/dist/esm/imageLoader/wadors/metaData/getNumberValues.js +20 -0
  97. package/dist/esm/imageLoader/wadors/metaData/getOverlayPlaneModule.d.ts +4 -0
  98. package/dist/esm/imageLoader/wadors/metaData/getOverlayPlaneModule.js +38 -0
  99. package/dist/esm/imageLoader/wadors/metaData/getSequenceItems.d.ts +3 -0
  100. package/dist/esm/imageLoader/wadors/metaData/getSequenceItems.js +14 -0
  101. package/dist/esm/imageLoader/wadors/metaData/getValue.d.ts +3 -0
  102. package/dist/esm/imageLoader/wadors/metaData/getValue.js +14 -0
  103. package/dist/esm/imageLoader/wadors/metaData/index.d.ts +7 -0
  104. package/dist/esm/imageLoader/wadors/metaData/index.js +7 -0
  105. package/dist/esm/imageLoader/wadors/metaData/metaDataProvider.d.ts +14 -0
  106. package/dist/esm/imageLoader/wadors/metaData/metaDataProvider.js +278 -0
  107. package/dist/esm/imageLoader/wadors/metaDataManager.d.ts +19 -0
  108. package/dist/esm/imageLoader/wadors/metaDataManager.js +68 -0
  109. package/dist/esm/imageLoader/wadors/register.d.ts +1 -0
  110. package/dist/esm/imageLoader/wadors/register.js +7 -0
  111. package/dist/esm/imageLoader/wadouri/combineFrameInstanceDataset.d.ts +22 -0
  112. package/dist/esm/imageLoader/wadouri/combineFrameInstanceDataset.js +69 -0
  113. package/dist/esm/imageLoader/wadouri/dataSetCacheManager.d.ts +28 -0
  114. package/dist/esm/imageLoader/wadouri/dataSetCacheManager.js +141 -0
  115. package/dist/esm/imageLoader/wadouri/dataSetCacheManager_test.d.ts +1 -0
  116. package/dist/esm/imageLoader/wadouri/dataSetCacheManager_test.js +10 -0
  117. package/dist/esm/imageLoader/wadouri/dataset-from-partial-content.d.ts +6 -0
  118. package/dist/esm/imageLoader/wadouri/dataset-from-partial-content.js +55 -0
  119. package/dist/esm/imageLoader/wadouri/fileManager.d.ts +11 -0
  120. package/dist/esm/imageLoader/wadouri/fileManager.js +20 -0
  121. package/dist/esm/imageLoader/wadouri/getEncapsulatedImageFrame.d.ts +2 -0
  122. package/dist/esm/imageLoader/wadouri/getEncapsulatedImageFrame.js +31 -0
  123. package/dist/esm/imageLoader/wadouri/getPixelData.d.ts +3 -0
  124. package/dist/esm/imageLoader/wadouri/getPixelData.js +13 -0
  125. package/dist/esm/imageLoader/wadouri/getUncompressedImageFrame.d.ts +3 -0
  126. package/dist/esm/imageLoader/wadouri/getUncompressedImageFrame.js +47 -0
  127. package/dist/esm/imageLoader/wadouri/index.d.ts +56 -0
  128. package/dist/esm/imageLoader/wadouri/index.js +35 -0
  129. package/dist/esm/imageLoader/wadouri/loadFileRequest.d.ts +2 -0
  130. package/dist/esm/imageLoader/wadouri/loadFileRequest.js +17 -0
  131. package/dist/esm/imageLoader/wadouri/loadImage.d.ts +9 -0
  132. package/dist/esm/imageLoader/wadouri/loadImage.js +108 -0
  133. package/dist/esm/imageLoader/wadouri/loadedDataSets.d.ts +7 -0
  134. package/dist/esm/imageLoader/wadouri/loadedDataSets.js +5 -0
  135. package/dist/esm/imageLoader/wadouri/metaData/USHelpers.d.ts +2 -0
  136. package/dist/esm/imageLoader/wadouri/metaData/USHelpers.js +44 -0
  137. package/dist/esm/imageLoader/wadouri/metaData/extractPositioningFromDataset.d.ts +6 -0
  138. package/dist/esm/imageLoader/wadouri/metaData/extractPositioningFromDataset.js +80 -0
  139. package/dist/esm/imageLoader/wadouri/metaData/getImagePixelModule.d.ts +4 -0
  140. package/dist/esm/imageLoader/wadouri/metaData/getImagePixelModule.js +79 -0
  141. package/dist/esm/imageLoader/wadouri/metaData/getLUTs.d.ts +4 -0
  142. package/dist/esm/imageLoader/wadouri/metaData/getLUTs.js +44 -0
  143. package/dist/esm/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.d.ts +3 -0
  144. package/dist/esm/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.js +30 -0
  145. package/dist/esm/imageLoader/wadouri/metaData/getNumberValues.d.ts +3 -0
  146. package/dist/esm/imageLoader/wadouri/metaData/getNumberValues.js +16 -0
  147. package/dist/esm/imageLoader/wadouri/metaData/getOverlayPlaneModule.d.ts +4 -0
  148. package/dist/esm/imageLoader/wadouri/metaData/getOverlayPlaneModule.js +36 -0
  149. package/dist/esm/imageLoader/wadouri/metaData/index.d.ts +5 -0
  150. package/dist/esm/imageLoader/wadouri/metaData/index.js +5 -0
  151. package/dist/esm/imageLoader/wadouri/metaData/metaDataProvider.d.ts +4 -0
  152. package/dist/esm/imageLoader/wadouri/metaData/metaDataProvider.js +228 -0
  153. package/dist/esm/imageLoader/wadouri/parseImageId.d.ts +8 -0
  154. package/dist/esm/imageLoader/wadouri/parseImageId.js +20 -0
  155. package/dist/esm/imageLoader/wadouri/register.d.ts +1 -0
  156. package/dist/esm/imageLoader/wadouri/register.js +9 -0
  157. package/dist/esm/imageLoader/wadouri/retrieveMultiframeDataset.d.ts +17 -0
  158. package/dist/esm/imageLoader/wadouri/retrieveMultiframeDataset.js +57 -0
  159. package/dist/esm/imageLoader/wadouri/unpackBinaryFrame.d.ts +3 -0
  160. package/dist/esm/imageLoader/wadouri/unpackBinaryFrame.js +14 -0
  161. package/dist/esm/index.d.ts +97 -0
  162. package/dist/esm/index.js +38 -0
  163. package/dist/esm/init.d.ts +3 -0
  164. package/dist/esm/init.js +23 -0
  165. package/dist/esm/shared/decoders/decodeBigEndian.d.ts +4 -0
  166. package/dist/esm/shared/decoders/decodeBigEndian.js +28 -0
  167. package/dist/esm/shared/decoders/decodeHTJ2K.d.ts +5 -0
  168. package/dist/esm/shared/decoders/decodeHTJ2K.js +109 -0
  169. package/dist/esm/shared/decoders/decodeJPEG2000.d.ts +5 -0
  170. package/dist/esm/shared/decoders/decodeJPEG2000.js +93 -0
  171. package/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-js.d.ts +6 -0
  172. package/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-js.js +36 -0
  173. package/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.d.ts +1 -0
  174. package/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.js +0 -0
  175. package/dist/esm/shared/decoders/decodeJPEGBaseline8Bit.d.ts +3 -0
  176. package/dist/esm/shared/decoders/decodeJPEGBaseline8Bit.js +62 -0
  177. package/dist/esm/shared/decoders/decodeJPEGLS.d.ts +5 -0
  178. package/dist/esm/shared/decoders/decodeJPEGLS.js +84 -0
  179. package/dist/esm/shared/decoders/decodeJPEGLossless copy.d.ts +6 -0
  180. package/dist/esm/shared/decoders/decodeJPEGLossless copy.js +39 -0
  181. package/dist/esm/shared/decoders/decodeJPEGLossless.d.ts +6 -0
  182. package/dist/esm/shared/decoders/decodeJPEGLossless.js +39 -0
  183. package/dist/esm/shared/decoders/decodeLittleEndian.d.ts +4 -0
  184. package/dist/esm/shared/decoders/decodeLittleEndian.js +29 -0
  185. package/dist/esm/shared/decoders/decodeRLE.d.ts +4 -0
  186. package/dist/esm/shared/decoders/decodeRLE.js +128 -0
  187. package/dist/esm/shared/getMinMax.d.ts +6 -0
  188. package/dist/esm/shared/getMinMax.js +16 -0
  189. package/dist/esm/shared/getMinMax_test.d.ts +1 -0
  190. package/dist/esm/shared/getMinMax_test.js +9 -0
  191. package/dist/esm/shared/getPixelDataTypeFromMinMax.d.ts +3 -0
  192. package/dist/esm/shared/getPixelDataTypeFromMinMax.js +26 -0
  193. package/dist/esm/shared/isColorImage.d.ts +1 -0
  194. package/dist/esm/shared/isColorImage.js +10 -0
  195. package/dist/esm/shared/scaling/bilinear.d.ts +1 -0
  196. package/dist/esm/shared/scaling/bilinear.js +32 -0
  197. package/dist/esm/shared/scaling/replicate.d.ts +1 -0
  198. package/dist/esm/shared/scaling/replicate.js +20 -0
  199. package/dist/esm/shared/scaling/scaleArray.d.ts +2 -0
  200. package/dist/esm/shared/scaling/scaleArray.js +17 -0
  201. package/dist/esm/types/DICOMLoaderDataSetWithFetchMore.d.ts +9 -0
  202. package/dist/esm/types/DICOMLoaderDataSetWithFetchMore.js +0 -0
  203. package/dist/esm/types/DICOMLoaderIImage.d.ts +11 -0
  204. package/dist/esm/types/DICOMLoaderIImage.js +0 -0
  205. package/dist/esm/types/DICOMLoaderImageOptions.d.ts +23 -0
  206. package/dist/esm/types/DICOMLoaderImageOptions.js +0 -0
  207. package/dist/esm/types/LoadRequestFunction.d.ts +1 -0
  208. package/dist/esm/types/LoadRequestFunction.js +0 -0
  209. package/dist/esm/types/LoaderDecodeOptions.d.ts +2 -0
  210. package/dist/esm/types/LoaderDecodeOptions.js +0 -0
  211. package/dist/esm/types/LoaderOptions.d.ts +16 -0
  212. package/dist/esm/types/LoaderOptions.js +0 -0
  213. package/dist/esm/types/LutType.d.ts +6 -0
  214. package/dist/esm/types/LutType.js +0 -0
  215. package/dist/esm/types/WADORSMetaData.d.ts +4 -0
  216. package/dist/esm/types/WADORSMetaData.js +0 -0
  217. package/dist/esm/types/WebWorkerTypes.d.ts +64 -0
  218. package/dist/esm/types/WebWorkerTypes.js +0 -0
  219. package/dist/esm/types/XHRRequest.d.ts +16 -0
  220. package/dist/esm/types/XHRRequest.js +0 -0
  221. package/dist/esm/types/index.d.ts +11 -0
  222. package/dist/esm/types/index.js +0 -0
  223. package/dist/esm/version.d.ts +2 -0
  224. package/dist/esm/version.js +1 -0
  225. package/package.json +134 -0
@@ -0,0 +1,808 @@
1
+ var S = Object.defineProperty;
2
+ var A = (a, t) => {
3
+ for (var e in t) {
4
+ S(a, e, { get: t[e], enumerable: !0 });
5
+ }
6
+ };
7
+ var w = { hSamp: 0, quantTableSel: 0, vSamp: 0 };
8
+ var b = class {
9
+ constructor(t, e, r) {
10
+ (this.buffer = new Uint8Array(t, e, r)), (this.index = 0);
11
+ }
12
+ get16() {
13
+ let t = (this.buffer[this.index] << 8) + this.buffer[this.index + 1];
14
+ return (this.index += 2), t;
15
+ }
16
+ get8() {
17
+ let t = this.buffer[this.index];
18
+ return (this.index += 1), t;
19
+ }
20
+ };
21
+ var x = class {
22
+ constructor() {
23
+ this.dimX = 0;
24
+ this.dimY = 0;
25
+ this.numComp = 0;
26
+ this.precision = 0;
27
+ this.components = [];
28
+ }
29
+ read(t) {
30
+ let e = 0, r, o = t.get16();
31
+ (e += 2),
32
+ (this.precision = t.get8()),
33
+ (e += 1),
34
+ (this.dimY = t.get16()),
35
+ (e += 2),
36
+ (this.dimX = t.get16()),
37
+ (e += 2),
38
+ (this.numComp = t.get8()),
39
+ (e += 1);
40
+ for (let s = 1; s <= this.numComp; s += 1) {
41
+ if (e > o) {
42
+ throw new Error('ERROR: frame format error');
43
+ }
44
+ let i = t.get8();
45
+ if (((e += 1), e >= o)) {
46
+ throw new Error('ERROR: frame format error [c>=Lf]');
47
+ }
48
+ (r = t.get8()),
49
+ (e += 1),
50
+ this.components[i] || (this.components[i] = { ...w }),
51
+ (this.components[i].hSamp = r >> 4),
52
+ (this.components[i].vSamp = r & 15),
53
+ (this.components[i].quantTableSel = t.get8()),
54
+ (e += 1);
55
+ }
56
+ if (e !== o) {
57
+ throw new Error('ERROR: frame format error [Lf!=count]');
58
+ }
59
+ return 1;
60
+ }
61
+ };
62
+ var k = {};
63
+ A(k, {
64
+ crc32: () => L,
65
+ crcTable: () => T,
66
+ createArray: () => c,
67
+ makeCRCTable: () => y,
68
+ });
69
+ var c = (...a) => {
70
+ if (a.length > 1) {
71
+ let t = a[0], e = a.slice(1), r = [];
72
+ for (let o = 0; o < t; o++) {
73
+ r[o] = c(...e);
74
+ }
75
+ return r;
76
+ }
77
+ else {
78
+ return Array(a[0]).fill(void 0);
79
+ }
80
+ }, y = function () {
81
+ let a, t = [];
82
+ for (let e = 0; e < 256; e++) {
83
+ a = e;
84
+ for (let r = 0; r < 8; r++) {
85
+ a = a & 1 ? 3988292384 ^ (a >>> 1) : a >>> 1;
86
+ }
87
+ t[e] = a;
88
+ }
89
+ return t;
90
+ }, T = y(), L = function (a) {
91
+ let t = new Uint8Array(a), e = -1;
92
+ for (let r = 0; r < t.length; r++) {
93
+ e = (e >>> 8) ^ T[(e ^ t[r]) & 255];
94
+ }
95
+ return (e ^ -1) >>> 0;
96
+ };
97
+ var p = class a {
98
+ static { this.MSB = 2147483648; }
99
+ constructor() {
100
+ (this.l = c(4, 2, 16)),
101
+ (this.th = [0, 0, 0, 0]),
102
+ (this.v = c(4, 2, 16, 200)),
103
+ (this.tc = [
104
+ [0, 0],
105
+ [0, 0],
106
+ [0, 0],
107
+ [0, 0],
108
+ ]);
109
+ }
110
+ read(t, e) {
111
+ let r = 0, o, s, i, n, f, u = t.get16();
112
+ for (r += 2; r < u;) {
113
+ if (((o = t.get8()), (r += 1), (s = o & 15), s > 3)) {
114
+ throw new Error('ERROR: Huffman table ID > 3');
115
+ }
116
+ if (((i = o >> 4), i > 2)) {
117
+ throw new Error('ERROR: Huffman table [Table class > 2 ]');
118
+ }
119
+ for (this.th[s] = 1, this.tc[s][i] = 1, n = 0; n < 16; n += 1) {
120
+ (this.l[s][i][n] = t.get8()), (r += 1);
121
+ }
122
+ for (n = 0; n < 16; n += 1) {
123
+ for (f = 0; f < this.l[s][i][n]; f += 1) {
124
+ if (r > u) {
125
+ throw new Error('ERROR: Huffman table format error [count>Lh]');
126
+ }
127
+ (this.v[s][i][n][f] = t.get8()), (r += 1);
128
+ }
129
+ }
130
+ }
131
+ if (r !== u) {
132
+ throw new Error('ERROR: Huffman table format error [count!=Lf]');
133
+ }
134
+ for (n = 0; n < 4; n += 1) {
135
+ for (f = 0; f < 2; f += 1) {
136
+ this.tc[n][f] !== 0 &&
137
+ this.buildHuffTable(e[n][f], this.l[n][f], this.v[n][f]);
138
+ }
139
+ }
140
+ return 1;
141
+ }
142
+ buildHuffTable(t, e, r) {
143
+ let o, s, i, n, f;
144
+ for (s = 0, i = 0; i < 8; i += 1) {
145
+ for (n = 0; n < e[i]; n += 1) {
146
+ for (f = 0; f < 256 >> (i + 1); f += 1) {
147
+ (t[s] = r[i][n] | ((i + 1) << 8)), (s += 1);
148
+ }
149
+ }
150
+ }
151
+ for (i = 1; s < 256; i += 1, s += 1) {
152
+ t[s] = i | a.MSB;
153
+ }
154
+ for (o = 1, s = 0, i = 8; i < 16; i += 1) {
155
+ for (n = 0; n < e[i]; n += 1) {
156
+ for (f = 0; f < 256 >> (i - 7); f += 1) {
157
+ (t[o * 256 + s] = r[i][n] | ((i + 1) << 8)), (s += 1);
158
+ }
159
+ if (s >= 256) {
160
+ if (s > 256) {
161
+ throw new Error('ERROR: Huffman table error(1)!');
162
+ }
163
+ (s = 0), (o += 1);
164
+ }
165
+ }
166
+ }
167
+ }
168
+ };
169
+ var d = class a {
170
+ constructor() {
171
+ this.precision = [];
172
+ this.tq = [0, 0, 0, 0];
173
+ this.quantTables = c(4, 64);
174
+ }
175
+ static { this.enhanceQuantizationTable = function (t, e) {
176
+ for (let r = 0; r < 8; r += 1) {
177
+ (t[e[0 * 8 + r]] *= 90),
178
+ (t[e[4 * 8 + r]] *= 90),
179
+ (t[e[2 * 8 + r]] *= 118),
180
+ (t[e[6 * 8 + r]] *= 49),
181
+ (t[e[5 * 8 + r]] *= 71),
182
+ (t[e[1 * 8 + r]] *= 126),
183
+ (t[e[7 * 8 + r]] *= 25),
184
+ (t[e[3 * 8 + r]] *= 106);
185
+ }
186
+ for (let r = 0; r < 8; r += 1) {
187
+ (t[e[0 + 8 * r]] *= 90),
188
+ (t[e[4 + 8 * r]] *= 90),
189
+ (t[e[2 + 8 * r]] *= 118),
190
+ (t[e[6 + 8 * r]] *= 49),
191
+ (t[e[5 + 8 * r]] *= 71),
192
+ (t[e[1 + 8 * r]] *= 126),
193
+ (t[e[7 + 8 * r]] *= 25),
194
+ (t[e[3 + 8 * r]] *= 106);
195
+ }
196
+ for (let r = 0; r < 64; r += 1) {
197
+ t[r] >>= 6;
198
+ }
199
+ }; }
200
+ read(t, e) {
201
+ let r = 0, o, s, i, n = t.get16();
202
+ for (r += 2; r < n;) {
203
+ if (((o = t.get8()), (r += 1), (s = o & 15), s > 3)) {
204
+ throw new Error('ERROR: Quantization table ID > 3');
205
+ }
206
+ if (((this.precision[s] = o >> 4), this.precision[s] === 0)) {
207
+ this.precision[s] = 8;
208
+ }
209
+ else if (this.precision[s] === 1) {
210
+ this.precision[s] = 16;
211
+ }
212
+ else {
213
+ throw new Error('ERROR: Quantization table precision error');
214
+ }
215
+ if (((this.tq[s] = 1), this.precision[s] === 8)) {
216
+ for (i = 0; i < 64; i += 1) {
217
+ if (r > n) {
218
+ throw new Error('ERROR: Quantization table format error');
219
+ }
220
+ (this.quantTables[s][i] = t.get8()), (r += 1);
221
+ }
222
+ a.enhanceQuantizationTable(this.quantTables[s], e);
223
+ }
224
+ else {
225
+ for (i = 0; i < 64; i += 1) {
226
+ if (r > n) {
227
+ throw new Error('ERROR: Quantization table format error');
228
+ }
229
+ (this.quantTables[s][i] = t.get16()), (r += 2);
230
+ }
231
+ a.enhanceQuantizationTable(this.quantTables[s], e);
232
+ }
233
+ }
234
+ if (r !== n) {
235
+ throw new Error('ERROR: Quantization table error [count!=Lq]');
236
+ }
237
+ return 1;
238
+ }
239
+ };
240
+ var R = { acTabSel: 0, dcTabSel: 0, scanCompSel: 0 };
241
+ var g = class {
242
+ constructor() {
243
+ this.ah = 0;
244
+ this.al = 0;
245
+ this.numComp = 0;
246
+ this.selection = 0;
247
+ this.spectralEnd = 0;
248
+ this.components = [];
249
+ }
250
+ read(t) {
251
+ let e = 0, r, o, s = t.get16();
252
+ for (e += 2, this.numComp = t.get8(), e += 1, r = 0; r < this.numComp; r += 1) {
253
+ if (((this.components[r] = { ...R }), e > s)) {
254
+ throw new Error('ERROR: scan header format error');
255
+ }
256
+ (this.components[r].scanCompSel = t.get8()),
257
+ (e += 1),
258
+ (o = t.get8()),
259
+ (e += 1),
260
+ (this.components[r].dcTabSel = o >> 4),
261
+ (this.components[r].acTabSel = o & 15);
262
+ }
263
+ if (((this.selection = t.get8()),
264
+ (e += 1),
265
+ (this.spectralEnd = t.get8()),
266
+ (e += 1),
267
+ (o = t.get8()),
268
+ (this.ah = o >> 4),
269
+ (this.al = o & 15),
270
+ (e += 1),
271
+ e !== s)) {
272
+ throw new Error('ERROR: scan header format error [count!=Ns]');
273
+ }
274
+ return 1;
275
+ }
276
+ };
277
+ var D = (function () {
278
+ let a = new ArrayBuffer(2);
279
+ return new DataView(a).setInt16(0, 256, !0), new Int16Array(a)[0] === 256;
280
+ })(), E = class a {
281
+ static { this.IDCT_P = [
282
+ 0, 5, 40, 16, 45, 2, 7, 42, 21, 56, 8, 61, 18, 47, 1, 4, 41, 23, 58, 13,
283
+ 32, 24, 37, 10, 63, 17, 44, 3, 6, 43, 20, 57, 15, 34, 29, 48, 53, 26, 39,
284
+ 9, 60, 19, 46, 22, 59, 12, 33, 31, 50, 55, 25, 36, 11, 62, 14, 35, 28, 49,
285
+ 52, 27, 38, 30, 51, 54,
286
+ ]; }
287
+ static { this.TABLE = [
288
+ 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25,
289
+ 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54,
290
+ 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36,
291
+ 48, 49, 57, 58, 62, 63,
292
+ ]; }
293
+ static { this.MAX_HUFFMAN_SUBTREE = 50; }
294
+ static { this.MSB = 2147483648; }
295
+ static { this.RESTART_MARKER_BEGIN = 65488; }
296
+ static { this.RESTART_MARKER_END = 65495; }
297
+ constructor(t, e) {
298
+ this.buffer = null;
299
+ this.stream = null;
300
+ this.frame = new x();
301
+ this.huffTable = new p();
302
+ this.quantTable = new d();
303
+ this.scan = new g();
304
+ this.DU = c(10, 4, 64);
305
+ this.HuffTab = c(4, 2, 50 * 256);
306
+ this.IDCT_Source = [];
307
+ this.nBlock = [];
308
+ this.acTab = c(10, 1);
309
+ this.dcTab = c(10, 1);
310
+ this.qTab = c(10, 1);
311
+ this.marker = 0;
312
+ this.markerIndex = 0;
313
+ this.numComp = 0;
314
+ this.restartInterval = 0;
315
+ this.selection = 0;
316
+ this.xDim = 0;
317
+ this.yDim = 0;
318
+ this.xLoc = 0;
319
+ this.yLoc = 0;
320
+ this.outputData = null;
321
+ this.restarting = !1;
322
+ this.mask = 0;
323
+ this.numBytes = 0;
324
+ this.precision = void 0;
325
+ this.components = [];
326
+ this.getter = null;
327
+ this.setter = null;
328
+ this.output = null;
329
+ this.selector = null;
330
+ (this.buffer = t ?? null), (this.numBytes = e ?? 0);
331
+ }
332
+ decompress(t, e, r) {
333
+ return this.decode(t, e, r).buffer;
334
+ }
335
+ decode(t, e, r, o) {
336
+ let s = 0, i = [], n, f, u = [], l = [], m;
337
+ t && (this.buffer = t),
338
+ o !== void 0 && (this.numBytes = o),
339
+ (this.stream = new b(this.buffer, e, r)),
340
+ (this.buffer = null),
341
+ (this.xLoc = 0),
342
+ (this.yLoc = 0);
343
+ let h = this.stream.get16();
344
+ if (h !== 65496) {
345
+ throw new Error('Not a JPEG file');
346
+ }
347
+ for (h = this.stream.get16(); h >> 4 !== 4092 || h === 65476;) {
348
+ switch (h) {
349
+ case 65476:
350
+ this.huffTable.read(this.stream, this.HuffTab);
351
+ break;
352
+ case 65484:
353
+ throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)");
354
+ case 65499:
355
+ this.quantTable.read(this.stream, a.TABLE);
356
+ break;
357
+ case 65501:
358
+ this.restartInterval = this.readNumber() ?? 0;
359
+ break;
360
+ case 65504:
361
+ case 65505:
362
+ case 65506:
363
+ case 65507:
364
+ case 65508:
365
+ case 65509:
366
+ case 65510:
367
+ case 65511:
368
+ case 65512:
369
+ case 65513:
370
+ case 65514:
371
+ case 65515:
372
+ case 65516:
373
+ case 65517:
374
+ case 65518:
375
+ case 65519:
376
+ this.readApp();
377
+ break;
378
+ case 65534:
379
+ this.readComment();
380
+ break;
381
+ default:
382
+ if (h >> 8 !== 255) {
383
+ throw new Error('ERROR: format throw new IOException! (decode)');
384
+ }
385
+ }
386
+ h = this.stream.get16();
387
+ }
388
+ if (h < 65472 || h > 65479) {
389
+ throw new Error('ERROR: could not handle arithmetic code!');
390
+ }
391
+ this.frame.read(this.stream), (h = this.stream.get16());
392
+ do {
393
+ for (; h !== 65498;) {
394
+ switch (h) {
395
+ case 65476:
396
+ this.huffTable.read(this.stream, this.HuffTab);
397
+ break;
398
+ case 65484:
399
+ throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)");
400
+ case 65499:
401
+ this.quantTable.read(this.stream, a.TABLE);
402
+ break;
403
+ case 65501:
404
+ this.restartInterval = this.readNumber() ?? 0;
405
+ break;
406
+ case 65504:
407
+ case 65505:
408
+ case 65506:
409
+ case 65507:
410
+ case 65508:
411
+ case 65509:
412
+ case 65510:
413
+ case 65511:
414
+ case 65512:
415
+ case 65513:
416
+ case 65514:
417
+ case 65515:
418
+ case 65516:
419
+ case 65517:
420
+ case 65518:
421
+ case 65519:
422
+ this.readApp();
423
+ break;
424
+ case 65534:
425
+ this.readComment();
426
+ break;
427
+ default:
428
+ if (h >> 8 !== 255) {
429
+ throw new Error('ERROR: format throw new IOException! (Parser.decode)');
430
+ }
431
+ }
432
+ h = this.stream.get16();
433
+ }
434
+ switch (((this.precision = this.frame.precision),
435
+ (this.components = this.frame.components),
436
+ this.numBytes ||
437
+ (this.numBytes = Math.round(Math.ceil(this.precision / 8))),
438
+ this.numBytes === 1 ? (this.mask = 255) : (this.mask = 65535),
439
+ this.scan.read(this.stream),
440
+ (this.numComp = this.scan.numComp),
441
+ (this.selection = this.scan.selection),
442
+ this.numBytes === 1
443
+ ? this.numComp === 3
444
+ ? ((this.getter = this.getValueRGB),
445
+ (this.setter = this.setValueRGB),
446
+ (this.output = this.outputRGB))
447
+ : ((this.getter = this.getValue8),
448
+ (this.setter = this.setValue8),
449
+ (this.output = this.outputSingle))
450
+ : ((this.getter = this.getValue8),
451
+ (this.setter = this.setValue8),
452
+ (this.output = this.outputSingle)),
453
+ this.selection)) {
454
+ case 2:
455
+ this.selector = this.select2;
456
+ break;
457
+ case 3:
458
+ this.selector = this.select3;
459
+ break;
460
+ case 4:
461
+ this.selector = this.select4;
462
+ break;
463
+ case 5:
464
+ this.selector = this.select5;
465
+ break;
466
+ case 6:
467
+ this.selector = this.select6;
468
+ break;
469
+ case 7:
470
+ this.selector = this.select7;
471
+ break;
472
+ default:
473
+ this.selector = this.select1;
474
+ break;
475
+ }
476
+ for (n = 0; n < this.numComp; n += 1) {
477
+ (f = this.scan.components[n].scanCompSel),
478
+ (this.qTab[n] =
479
+ this.quantTable.quantTables[this.components[f].quantTableSel]),
480
+ (this.nBlock[n] =
481
+ this.components[f].vSamp * this.components[f].hSamp),
482
+ (this.dcTab[n] = this.HuffTab[this.scan.components[n].dcTabSel][0]),
483
+ (this.acTab[n] = this.HuffTab[this.scan.components[n].acTabSel][1]);
484
+ }
485
+ for (this.xDim = this.frame.dimX,
486
+ this.yDim = this.frame.dimY,
487
+ this.numBytes === 1
488
+ ? (this.outputData = new Uint8Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)))
489
+ : (this.outputData = new Uint16Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp))),
490
+ s += 1;;) {
491
+ for (u[0] = 0, l[0] = 0, n = 0; n < 10; n += 1) {
492
+ i[n] = 1 << (this.precision - 1);
493
+ }
494
+ if (this.restartInterval === 0) {
495
+ for (h = this.decodeUnit(i, u, l); h === 0 && this.xLoc < this.xDim && this.yLoc < this.yDim;) {
496
+ this.output(i), (h = this.decodeUnit(i, u, l));
497
+ }
498
+ break;
499
+ }
500
+ for (m = 0; m < this.restartInterval &&
501
+ ((this.restarting = m === 0),
502
+ (h = this.decodeUnit(i, u, l)),
503
+ this.output(i),
504
+ h === 0); m += 1) {
505
+ let foo = 1;
506
+ }
507
+ if ((h === 0 &&
508
+ (this.markerIndex !== 0
509
+ ? ((h = 65280 | this.marker), (this.markerIndex = 0))
510
+ : (h = this.stream.get16())),
511
+ !(h >= a.RESTART_MARKER_BEGIN && h <= a.RESTART_MARKER_END))) {
512
+ break;
513
+ }
514
+ }
515
+ h === 65500 &&
516
+ s === 1 &&
517
+ (this.readNumber(), (h = this.stream.get16()));
518
+ } while (h !== 65497 &&
519
+ this.xLoc < this.xDim &&
520
+ this.yLoc < this.yDim &&
521
+ s === 0);
522
+ return this.outputData;
523
+ }
524
+ decodeUnit(t, e, r) {
525
+ return this.numComp === 1
526
+ ? this.decodeSingle(t, e, r)
527
+ : this.numComp === 3
528
+ ? this.decodeRGB(t, e, r)
529
+ : -1;
530
+ }
531
+ select1(t) {
532
+ return this.getPreviousX(t);
533
+ }
534
+ select2(t) {
535
+ return this.getPreviousY(t);
536
+ }
537
+ select3(t) {
538
+ return this.getPreviousXY(t);
539
+ }
540
+ select4(t) {
541
+ return (this.getPreviousX(t) + this.getPreviousY(t) - this.getPreviousXY(t));
542
+ }
543
+ select5(t) {
544
+ return (this.getPreviousX(t) +
545
+ ((this.getPreviousY(t) - this.getPreviousXY(t)) >> 1));
546
+ }
547
+ select6(t) {
548
+ return (this.getPreviousY(t) +
549
+ ((this.getPreviousX(t) - this.getPreviousXY(t)) >> 1));
550
+ }
551
+ select7(t) {
552
+ return (this.getPreviousX(t) + this.getPreviousY(t)) / 2;
553
+ }
554
+ decodeRGB(t, e, r) {
555
+ if (this.selector === null) {
556
+ throw new Error("decode hasn't run yet");
557
+ }
558
+ let o, s, i, n, f, u, l;
559
+ for (t[0] = this.selector(0),
560
+ t[1] = this.selector(1),
561
+ t[2] = this.selector(2),
562
+ n = 0; n < this.numComp; n += 1) {
563
+ for (i = this.qTab[n], o = this.acTab[n], s = this.dcTab[n], f = 0; f < this.nBlock[n]; f += 1) {
564
+ for (u = 0; u < this.IDCT_Source.length; u += 1) {
565
+ this.IDCT_Source[u] = 0;
566
+ }
567
+ let m = this.getHuffmanValue(s, e, r);
568
+ if (m >= 65280) {
569
+ return m;
570
+ }
571
+ for (t[n] = this.IDCT_Source[0] = t[n] + this.getn(r, m, e, r),
572
+ this.IDCT_Source[0] *= i[0],
573
+ l = 1; l < 64; l += 1) {
574
+ if (((m = this.getHuffmanValue(o, e, r)), m >= 65280)) {
575
+ return m;
576
+ }
577
+ if (((l += m >> 4), m & 15)) {
578
+ this.IDCT_Source[a.IDCT_P[l]] = this.getn(r, m & 15, e, r) * i[l];
579
+ }
580
+ else if (!(m >> 4)) {
581
+ break;
582
+ }
583
+ }
584
+ }
585
+ }
586
+ return 0;
587
+ }
588
+ decodeSingle(t, e, r) {
589
+ if (this.selector === null) {
590
+ throw new Error("decode hasn't run yet");
591
+ }
592
+ let o, s, i, n;
593
+ for (this.restarting
594
+ ? ((this.restarting = !1), (t[0] = 1 << (this.frame.precision - 1)))
595
+ : (t[0] = this.selector()),
596
+ s = 0; s < this.nBlock[0]; s += 1) {
597
+ if (((o = this.getHuffmanValue(this.dcTab[0], e, r)), o >= 65280)) {
598
+ return o;
599
+ }
600
+ if (((i = this.getn(t, o, e, r)),
601
+ (n = i >> 8),
602
+ n >= a.RESTART_MARKER_BEGIN && n <= a.RESTART_MARKER_END)) {
603
+ return n;
604
+ }
605
+ t[0] += i;
606
+ }
607
+ return 0;
608
+ }
609
+ getHuffmanValue(t, e, r) {
610
+ let o, s;
611
+ if (!this.stream) {
612
+ throw new Error('stream not initialized');
613
+ }
614
+ if ((r[0] < 8
615
+ ? ((e[0] <<= 8),
616
+ (s = this.stream.get8()),
617
+ s === 255 &&
618
+ ((this.marker = this.stream.get8()),
619
+ this.marker !== 0 && (this.markerIndex = 9)),
620
+ (e[0] |= s))
621
+ : (r[0] -= 8),
622
+ (o = t[e[0] >> r[0]]),
623
+ o & a.MSB)) {
624
+ if (this.markerIndex !== 0) {
625
+ return (this.markerIndex = 0), 65280 | this.marker;
626
+ }
627
+ (e[0] &= 65535 >> (16 - r[0])),
628
+ (e[0] <<= 8),
629
+ (s = this.stream.get8()),
630
+ s === 255 &&
631
+ ((this.marker = this.stream.get8()),
632
+ this.marker !== 0 && (this.markerIndex = 9)),
633
+ (e[0] |= s),
634
+ (o = t[(o & 255) * 256 + (e[0] >> r[0])]),
635
+ (r[0] += 8);
636
+ }
637
+ if (((r[0] += 8 - (o >> 8)), r[0] < 0)) {
638
+ throw new Error('index=' +
639
+ r[0] +
640
+ ' temp=' +
641
+ e[0] +
642
+ ' code=' +
643
+ o +
644
+ ' in HuffmanValue()');
645
+ }
646
+ return r[0] < this.markerIndex
647
+ ? ((this.markerIndex = 0), 65280 | this.marker)
648
+ : ((e[0] &= 65535 >> (16 - r[0])), o & 255);
649
+ }
650
+ getn(t, e, r, o) {
651
+ let s, i;
652
+ if (this.stream === null) {
653
+ throw new Error('stream not initialized');
654
+ }
655
+ if (e === 0) {
656
+ return 0;
657
+ }
658
+ if (e === 16) {
659
+ return t[0] >= 0 ? -32768 : 32768;
660
+ }
661
+ if (((o[0] -= e), o[0] >= 0)) {
662
+ if (o[0] < this.markerIndex && !this.isLastPixel()) {
663
+ return (this.markerIndex = 0), (65280 | this.marker) << 8;
664
+ }
665
+ (s = r[0] >> o[0]), (r[0] &= 65535 >> (16 - o[0]));
666
+ }
667
+ else {
668
+ if (((r[0] <<= 8),
669
+ (i = this.stream.get8()),
670
+ i === 255 &&
671
+ ((this.marker = this.stream.get8()),
672
+ this.marker !== 0 && (this.markerIndex = 9)),
673
+ (r[0] |= i),
674
+ (o[0] += 8),
675
+ o[0] < 0)) {
676
+ if (this.markerIndex !== 0) {
677
+ return (this.markerIndex = 0), (65280 | this.marker) << 8;
678
+ }
679
+ (r[0] <<= 8),
680
+ (i = this.stream.get8()),
681
+ i === 255 &&
682
+ ((this.marker = this.stream.get8()),
683
+ this.marker !== 0 && (this.markerIndex = 9)),
684
+ (r[0] |= i),
685
+ (o[0] += 8);
686
+ }
687
+ if (o[0] < 0) {
688
+ throw new Error('index=' + o[0] + ' in getn()');
689
+ }
690
+ if (o[0] < this.markerIndex) {
691
+ return (this.markerIndex = 0), (65280 | this.marker) << 8;
692
+ }
693
+ (s = r[0] >> o[0]), (r[0] &= 65535 >> (16 - o[0]));
694
+ }
695
+ return s < 1 << (e - 1) && (s += (-1 << e) + 1), s;
696
+ }
697
+ getPreviousX(t = 0) {
698
+ if (this.getter === null) {
699
+ throw new Error("decode hasn't run yet");
700
+ }
701
+ return this.xLoc > 0
702
+ ? this.getter(this.yLoc * this.xDim + this.xLoc - 1, t)
703
+ : this.yLoc > 0
704
+ ? this.getPreviousY(t)
705
+ : 1 << (this.frame.precision - 1);
706
+ }
707
+ getPreviousXY(t = 0) {
708
+ if (this.getter === null) {
709
+ throw new Error("decode hasn't run yet");
710
+ }
711
+ return this.xLoc > 0 && this.yLoc > 0
712
+ ? this.getter((this.yLoc - 1) * this.xDim + this.xLoc - 1, t)
713
+ : this.getPreviousY(t);
714
+ }
715
+ getPreviousY(t = 0) {
716
+ if (this.getter === null) {
717
+ throw new Error("decode hasn't run yet");
718
+ }
719
+ return this.yLoc > 0
720
+ ? this.getter((this.yLoc - 1) * this.xDim + this.xLoc, t)
721
+ : this.getPreviousX(t);
722
+ }
723
+ isLastPixel() {
724
+ return this.xLoc === this.xDim - 1 && this.yLoc === this.yDim - 1;
725
+ }
726
+ outputSingle(t) {
727
+ if (this.setter === null) {
728
+ throw new Error("decode hasn't run yet");
729
+ }
730
+ this.xLoc < this.xDim &&
731
+ this.yLoc < this.yDim &&
732
+ (this.setter(this.yLoc * this.xDim + this.xLoc, this.mask & t[0]),
733
+ (this.xLoc += 1),
734
+ this.xLoc >= this.xDim && ((this.yLoc += 1), (this.xLoc = 0)));
735
+ }
736
+ outputRGB(t) {
737
+ if (this.setter === null) {
738
+ throw new Error("decode hasn't run yet");
739
+ }
740
+ let e = this.yLoc * this.xDim + this.xLoc;
741
+ this.xLoc < this.xDim &&
742
+ this.yLoc < this.yDim &&
743
+ (this.setter(e, t[0], 0),
744
+ this.setter(e, t[1], 1),
745
+ this.setter(e, t[2], 2),
746
+ (this.xLoc += 1),
747
+ this.xLoc >= this.xDim && ((this.yLoc += 1), (this.xLoc = 0)));
748
+ }
749
+ setValue8(t, e) {
750
+ if (!this.outputData) {
751
+ throw new Error('output data not ready');
752
+ }
753
+ D
754
+ ? (this.outputData[t] = e)
755
+ : (this.outputData[t] = ((e & 255) << 8) | ((e >> 8) & 255));
756
+ }
757
+ getValue8(t) {
758
+ if (this.outputData === null) {
759
+ throw new Error('output data not ready');
760
+ }
761
+ if (D) {
762
+ return this.outputData[t];
763
+ }
764
+ {
765
+ let e = this.outputData[t];
766
+ return ((e & 255) << 8) | ((e >> 8) & 255);
767
+ }
768
+ }
769
+ setValueRGB(t, e, r = 0) {
770
+ this.outputData !== null && (this.outputData[t * 3 + r] = e);
771
+ }
772
+ getValueRGB(t, e) {
773
+ if (this.outputData === null) {
774
+ throw new Error('output data not ready');
775
+ }
776
+ return this.outputData[t * 3 + e];
777
+ }
778
+ readApp() {
779
+ if (this.stream === null) {
780
+ return null;
781
+ }
782
+ let t = 0, e = this.stream.get16();
783
+ for (t += 2; t < e;) {
784
+ this.stream.get8(), (t += 1);
785
+ }
786
+ return e;
787
+ }
788
+ readComment() {
789
+ if (this.stream === null) {
790
+ return null;
791
+ }
792
+ let t = '', e = 0, r = this.stream.get16();
793
+ for (e += 2; e < r;) {
794
+ (t += this.stream.get8()), (e += 1);
795
+ }
796
+ return t;
797
+ }
798
+ readNumber() {
799
+ if (this.stream === null) {
800
+ return null;
801
+ }
802
+ if (this.stream.get16() !== 4) {
803
+ throw new Error('ERROR: Define number format throw new IOException [Ld!=4]');
804
+ }
805
+ return this.stream.get16();
806
+ }
807
+ };
808
+ export { w as ComponentSpec, b as DataStream, E as Decoder, x as FrameHeader, p as HuffmanTable, d as QuantizationTable, R as ScanComponent, g as ScanHeader, k as Utils, };