@cornerstonejs/dicom-image-loader 2.0.0-beta.1 → 2.0.0-beta.11

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 (482) hide show
  1. package/dist/744.bundle.min.js +3 -0
  2. package/dist/744.bundle.min.js.LICENSE.txt +5 -0
  3. package/dist/744.bundle.min.js.map +1 -0
  4. package/dist/cornerstoneDICOMImageLoader.bundle.min.js +1 -1
  5. package/dist/cornerstoneDICOMImageLoader.bundle.min.js.map +1 -1
  6. package/dist/dynamic-import/{65916ef3def695744bda.wasm → 031089e563a18ada8441.wasm} +0 -0
  7. package/dist/dynamic-import/20fc4c659b85ccd2a9c0.wasm +0 -0
  8. package/dist/dynamic-import/584.min.js +2 -0
  9. package/dist/dynamic-import/584.min.js.map +1 -0
  10. package/dist/dynamic-import/595.min.js +2 -0
  11. package/dist/dynamic-import/595.min.js.map +1 -0
  12. package/dist/dynamic-import/610.min.js +2 -0
  13. package/dist/dynamic-import/610.min.js.map +1 -0
  14. package/dist/dynamic-import/958.min.js +3 -0
  15. package/dist/dynamic-import/958.min.js.LICENSE.txt +5 -0
  16. package/dist/dynamic-import/958.min.js.map +1 -0
  17. package/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js +1 -1
  18. package/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js.map +1 -1
  19. package/dist/esm/codecs/jpeg.js +891 -0
  20. package/dist/esm/codecs/jpeg.js.map +1 -0
  21. package/dist/esm/codecs/jpegLossless.js +1220 -0
  22. package/dist/esm/codecs/jpegLossless.js.map +1 -0
  23. package/dist/esm/src/constants/transferSyntaxes.js +47 -0
  24. package/dist/esm/src/constants/transferSyntaxes.js.map +1 -0
  25. package/dist/esm/src/externalModules.js +45 -0
  26. package/dist/esm/src/externalModules.js.map +1 -0
  27. package/dist/esm/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.js +78 -0
  28. package/dist/esm/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.js.map +1 -0
  29. package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.js +22 -0
  30. package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.js.map +1 -0
  31. package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.js +29 -0
  32. package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.js.map +1 -0
  33. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.js +45 -0
  34. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.js.map +1 -0
  35. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.js +34 -0
  36. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.js.map +1 -0
  37. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.js +36 -0
  38. package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.js.map +1 -0
  39. package/dist/esm/src/imageLoader/colorSpaceConverters/index.js +8 -0
  40. package/dist/esm/src/imageLoader/colorSpaceConverters/index.js.map +1 -0
  41. package/dist/esm/src/imageLoader/configure.js +12 -0
  42. package/dist/esm/src/imageLoader/configure.js.map +1 -0
  43. package/dist/esm/src/imageLoader/convertColorSpace.js +41 -0
  44. package/dist/esm/src/imageLoader/convertColorSpace.js.map +1 -0
  45. package/dist/esm/src/imageLoader/createImage.js +249 -0
  46. package/dist/esm/src/imageLoader/createImage.js.map +1 -0
  47. package/dist/esm/src/imageLoader/decodeImageFrame.js +66 -0
  48. package/dist/esm/src/imageLoader/decodeImageFrame.js.map +1 -0
  49. package/dist/esm/src/imageLoader/decodeJPEGBaseline8BitColor.js +65 -0
  50. package/dist/esm/src/imageLoader/decodeJPEGBaseline8BitColor.js.map +1 -0
  51. package/dist/esm/src/imageLoader/getImageFrame.js +27 -0
  52. package/dist/esm/src/imageLoader/getImageFrame.js.map +1 -0
  53. package/dist/esm/src/imageLoader/getInstanceModule.js +41 -0
  54. package/dist/esm/src/imageLoader/getInstanceModule.js.map +1 -0
  55. package/dist/esm/src/imageLoader/getMinMax.js +16 -0
  56. package/dist/esm/src/imageLoader/getMinMax.js.map +1 -0
  57. package/dist/esm/src/imageLoader/getScalingParameters.js +16 -0
  58. package/dist/esm/src/imageLoader/getScalingParameters.js.map +1 -0
  59. package/dist/esm/src/imageLoader/imageIdToURI.js +5 -0
  60. package/dist/esm/src/imageLoader/imageIdToURI.js.map +1 -0
  61. package/dist/esm/src/imageLoader/index.js +37 -0
  62. package/dist/esm/src/imageLoader/index.js.map +1 -0
  63. package/dist/esm/src/imageLoader/internal/index.js +9 -0
  64. package/dist/esm/src/imageLoader/internal/index.js.map +1 -0
  65. package/dist/esm/src/imageLoader/internal/options.js +24 -0
  66. package/dist/esm/src/imageLoader/internal/options.js.map +1 -0
  67. package/dist/esm/src/imageLoader/internal/rangeRequest.js +122 -0
  68. package/dist/esm/src/imageLoader/internal/rangeRequest.js.map +1 -0
  69. package/dist/esm/src/imageLoader/internal/streamRequest.js +93 -0
  70. package/dist/esm/src/imageLoader/internal/streamRequest.js.map +1 -0
  71. package/dist/esm/src/imageLoader/internal/xhrRequest.js +103 -0
  72. package/dist/esm/src/imageLoader/internal/xhrRequest.js.map +1 -0
  73. package/dist/esm/src/imageLoader/isColorConversionRequired.js +23 -0
  74. package/dist/esm/src/imageLoader/isColorConversionRequired.js.map +1 -0
  75. package/dist/esm/src/imageLoader/isJPEGBaseline8BitColor.js +10 -0
  76. package/dist/esm/src/imageLoader/isJPEGBaseline8BitColor.js.map +1 -0
  77. package/dist/esm/src/imageLoader/isNMReconstructable.js +4 -0
  78. package/dist/esm/src/imageLoader/isNMReconstructable.js.map +1 -0
  79. package/dist/esm/src/imageLoader/registerLoaders.js +8 -0
  80. package/dist/esm/src/imageLoader/registerLoaders.js.map +1 -0
  81. package/dist/esm/src/imageLoader/wadors/combineFrameInstance.js +45 -0
  82. package/dist/esm/src/imageLoader/wadors/combineFrameInstance.js.map +1 -0
  83. package/dist/esm/src/imageLoader/wadors/extractMultipart.js +74 -0
  84. package/dist/esm/src/imageLoader/wadors/extractMultipart.js.map +1 -0
  85. package/dist/esm/src/imageLoader/wadors/findIndexOfString.js +33 -0
  86. package/dist/esm/src/imageLoader/wadors/findIndexOfString.js.map +1 -0
  87. package/dist/esm/src/imageLoader/wadors/getImageQualityStatus.js +9 -0
  88. package/dist/esm/src/imageLoader/wadors/getImageQualityStatus.js.map +1 -0
  89. package/dist/esm/src/imageLoader/wadors/getPixelData.js +36 -0
  90. package/dist/esm/src/imageLoader/wadors/getPixelData.js.map +1 -0
  91. package/dist/esm/src/imageLoader/wadors/getTagValue.js +10 -0
  92. package/dist/esm/src/imageLoader/wadors/getTagValue.js.map +1 -0
  93. package/dist/esm/src/imageLoader/wadors/index.js +22 -0
  94. package/dist/esm/src/imageLoader/wadors/index.js.map +1 -0
  95. package/dist/esm/src/imageLoader/wadors/loadImage.js +126 -0
  96. package/dist/esm/src/imageLoader/wadors/loadImage.js.map +1 -0
  97. package/dist/esm/src/imageLoader/wadors/loadImage_test.js +42 -0
  98. package/dist/esm/src/imageLoader/wadors/loadImage_test.js.map +1 -0
  99. package/dist/esm/src/imageLoader/wadors/metaData/NMHelpers.js +39 -0
  100. package/dist/esm/src/imageLoader/wadors/metaData/NMHelpers.js.map +1 -0
  101. package/dist/esm/src/imageLoader/wadors/metaData/USHelpers.js +47 -0
  102. package/dist/esm/src/imageLoader/wadors/metaData/USHelpers.js.map +1 -0
  103. package/dist/esm/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.js +19 -0
  104. package/dist/esm/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.js.map +1 -0
  105. package/dist/esm/src/imageLoader/wadors/metaData/getFirstNumberValue.js +7 -0
  106. package/dist/esm/src/imageLoader/wadors/metaData/getFirstNumberValue.js.map +1 -0
  107. package/dist/esm/src/imageLoader/wadors/metaData/getNumberString.js +10 -0
  108. package/dist/esm/src/imageLoader/wadors/metaData/getNumberString.js.map +1 -0
  109. package/dist/esm/src/imageLoader/wadors/metaData/getNumberValue.js +10 -0
  110. package/dist/esm/src/imageLoader/wadors/metaData/getNumberValue.js.map +1 -0
  111. package/dist/esm/src/imageLoader/wadors/metaData/getNumberValues.js +21 -0
  112. package/dist/esm/src/imageLoader/wadors/metaData/getNumberValues.js.map +1 -0
  113. package/dist/esm/src/imageLoader/wadors/metaData/getOverlayPlaneModule.js +39 -0
  114. package/dist/esm/src/imageLoader/wadors/metaData/getOverlayPlaneModule.js.map +1 -0
  115. package/dist/esm/src/imageLoader/wadors/metaData/getSequenceItems.js +15 -0
  116. package/dist/esm/src/imageLoader/wadors/metaData/getSequenceItems.js.map +1 -0
  117. package/dist/esm/src/imageLoader/wadors/metaData/getValue.js +15 -0
  118. package/dist/esm/src/imageLoader/wadors/metaData/getValue.js.map +1 -0
  119. package/dist/esm/src/imageLoader/wadors/metaData/index.js +8 -0
  120. package/dist/esm/src/imageLoader/wadors/metaData/index.js.map +1 -0
  121. package/dist/esm/src/imageLoader/wadors/metaData/metaDataProvider.js +262 -0
  122. package/dist/esm/src/imageLoader/wadors/metaData/metaDataProvider.js.map +1 -0
  123. package/dist/esm/src/imageLoader/wadors/metaDataManager.js +48 -0
  124. package/dist/esm/src/imageLoader/wadors/metaDataManager.js.map +1 -0
  125. package/dist/esm/src/imageLoader/wadors/register.js +7 -0
  126. package/dist/esm/src/imageLoader/wadors/register.js.map +1 -0
  127. package/dist/esm/src/imageLoader/wadors/retrieveMultiframeMetadata.js +27 -0
  128. package/dist/esm/src/imageLoader/wadors/retrieveMultiframeMetadata.js.map +1 -0
  129. package/dist/esm/src/imageLoader/wadouri/combineFrameInstanceDataset.js +68 -0
  130. package/dist/esm/src/imageLoader/wadouri/combineFrameInstanceDataset.js.map +1 -0
  131. package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager.js +143 -0
  132. package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager.js.map +1 -0
  133. package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager_test.js +11 -0
  134. package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager_test.js.map +1 -0
  135. package/dist/esm/src/imageLoader/wadouri/dataset-from-partial-content.js +57 -0
  136. package/dist/esm/src/imageLoader/wadouri/dataset-from-partial-content.js.map +1 -0
  137. package/dist/esm/src/imageLoader/wadouri/fileManager.js +21 -0
  138. package/dist/esm/src/imageLoader/wadouri/fileManager.js.map +1 -0
  139. package/dist/esm/src/imageLoader/wadouri/getEncapsulatedImageFrame.js +34 -0
  140. package/dist/esm/src/imageLoader/wadouri/getEncapsulatedImageFrame.js.map +1 -0
  141. package/dist/esm/src/imageLoader/wadouri/getPixelData.js +14 -0
  142. package/dist/esm/src/imageLoader/wadouri/getPixelData.js.map +1 -0
  143. package/dist/esm/src/imageLoader/wadouri/getUncompressedImageFrame.js +48 -0
  144. package/dist/esm/src/imageLoader/wadouri/getUncompressedImageFrame.js.map +1 -0
  145. package/dist/esm/src/imageLoader/wadouri/index.js +32 -0
  146. package/dist/esm/src/imageLoader/wadouri/index.js.map +1 -0
  147. package/dist/esm/src/imageLoader/wadouri/loadFileRequest.js +18 -0
  148. package/dist/esm/src/imageLoader/wadouri/loadFileRequest.js.map +1 -0
  149. package/dist/esm/src/imageLoader/wadouri/loadImage.js +105 -0
  150. package/dist/esm/src/imageLoader/wadouri/loadImage.js.map +1 -0
  151. package/dist/esm/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.js +81 -0
  152. package/dist/esm/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.js.map +1 -0
  153. package/dist/esm/src/imageLoader/wadouri/metaData/getImagePixelModule.js +80 -0
  154. package/dist/esm/src/imageLoader/wadouri/metaData/getImagePixelModule.js.map +1 -0
  155. package/dist/esm/src/imageLoader/wadouri/metaData/getLUTs.js +45 -0
  156. package/dist/esm/src/imageLoader/wadouri/metaData/getLUTs.js.map +1 -0
  157. package/dist/esm/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.js +31 -0
  158. package/dist/esm/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.js.map +1 -0
  159. package/dist/esm/src/imageLoader/wadouri/metaData/getNumberValues.js +17 -0
  160. package/dist/esm/src/imageLoader/wadouri/metaData/getNumberValues.js.map +1 -0
  161. package/dist/esm/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.js +37 -0
  162. package/dist/esm/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.js.map +1 -0
  163. package/dist/esm/src/imageLoader/wadouri/metaData/index.js +6 -0
  164. package/dist/esm/src/imageLoader/wadouri/metaData/index.js.map +1 -0
  165. package/dist/esm/src/imageLoader/wadouri/metaData/metaDataProvider.js +211 -0
  166. package/dist/esm/src/imageLoader/wadouri/metaData/metaDataProvider.js.map +1 -0
  167. package/dist/esm/src/imageLoader/wadouri/parseImageId.js +21 -0
  168. package/dist/esm/src/imageLoader/wadouri/parseImageId.js.map +1 -0
  169. package/dist/esm/src/imageLoader/wadouri/register.js +9 -0
  170. package/dist/esm/src/imageLoader/wadouri/register.js.map +1 -0
  171. package/dist/esm/src/imageLoader/wadouri/retrieveMultiframeDataset.js +58 -0
  172. package/dist/esm/src/imageLoader/wadouri/retrieveMultiframeDataset.js.map +1 -0
  173. package/dist/esm/src/imageLoader/wadouri/unpackBinaryFrame.js +15 -0
  174. package/dist/esm/src/imageLoader/wadouri/unpackBinaryFrame.js.map +1 -0
  175. package/dist/esm/src/shared/calculateMinMax.js +25 -0
  176. package/dist/esm/src/shared/calculateMinMax.js.map +1 -0
  177. package/dist/esm/src/shared/calculateMinMax_test.js +39 -0
  178. package/dist/esm/src/shared/calculateMinMax_test.js.map +1 -0
  179. package/dist/esm/src/shared/decodeImageFrame.js +269 -0
  180. package/dist/esm/src/shared/decodeImageFrame.js.map +1 -0
  181. package/dist/esm/src/shared/decoders/decodeBigEndian.js +29 -0
  182. package/dist/esm/src/shared/decoders/decodeBigEndian.js.map +1 -0
  183. package/dist/esm/src/shared/decoders/decodeHTJ2K.js +110 -0
  184. package/dist/esm/src/shared/decoders/decodeHTJ2K.js.map +1 -0
  185. package/dist/esm/src/shared/decoders/decodeJPEG2000.js +94 -0
  186. package/dist/esm/src/shared/decoders/decodeJPEG2000.js.map +1 -0
  187. package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-js.js +35 -0
  188. package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-js.js.map +1 -0
  189. package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.js +2 -0
  190. package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.js.map +1 -0
  191. package/dist/esm/src/shared/decoders/decodeJPEGBaseline8Bit.js +63 -0
  192. package/dist/esm/src/shared/decoders/decodeJPEGBaseline8Bit.js.map +1 -0
  193. package/dist/esm/src/shared/decoders/decodeJPEGLS.js +85 -0
  194. package/dist/esm/src/shared/decoders/decodeJPEGLS.js.map +1 -0
  195. package/dist/esm/src/shared/decoders/decodeJPEGLossless.js +40 -0
  196. package/dist/esm/src/shared/decoders/decodeJPEGLossless.js.map +1 -0
  197. package/dist/esm/src/shared/decoders/decodeLittleEndian.js +30 -0
  198. package/dist/esm/src/shared/decoders/decodeLittleEndian.js.map +1 -0
  199. package/dist/esm/src/shared/decoders/decodeRLE.js +129 -0
  200. package/dist/esm/src/shared/decoders/decodeRLE.js.map +1 -0
  201. package/dist/esm/src/shared/getMinMax.js +17 -0
  202. package/dist/esm/src/shared/getMinMax.js.map +1 -0
  203. package/dist/esm/src/shared/getMinMax_test.js +10 -0
  204. package/dist/esm/src/shared/getMinMax_test.js.map +1 -0
  205. package/dist/esm/src/shared/getPixelDataTypeFromMinMax.js +23 -0
  206. package/dist/esm/src/shared/getPixelDataTypeFromMinMax.js.map +1 -0
  207. package/dist/esm/src/shared/isColorImage.js +11 -0
  208. package/dist/esm/src/shared/isColorImage.js.map +1 -0
  209. package/dist/esm/src/shared/scaling/bilinear.js +33 -0
  210. package/dist/esm/src/shared/scaling/bilinear.js.map +1 -0
  211. package/dist/esm/src/shared/scaling/replicate.js +21 -0
  212. package/dist/esm/src/shared/scaling/replicate.js.map +1 -0
  213. package/dist/esm/src/shared/scaling/scaleArray.js +16 -0
  214. package/dist/esm/src/shared/scaling/scaleArray.js.map +1 -0
  215. package/dist/esm/src/types/DICOMLoaderDataSetWithFetchMore.js +2 -0
  216. package/dist/esm/src/types/DICOMLoaderDataSetWithFetchMore.js.map +1 -0
  217. package/dist/esm/src/types/DICOMLoaderIImage.js +2 -0
  218. package/dist/esm/src/types/DICOMLoaderIImage.js.map +1 -0
  219. package/dist/esm/src/types/DICOMLoaderImageOptions.js +2 -0
  220. package/dist/esm/src/types/DICOMLoaderImageOptions.js.map +1 -0
  221. package/dist/esm/src/types/ImageFrame.js +2 -0
  222. package/dist/esm/src/types/ImageFrame.js.map +1 -0
  223. package/dist/esm/src/types/LoadRequestFunction.js +2 -0
  224. package/dist/esm/src/types/LoadRequestFunction.js.map +1 -0
  225. package/dist/esm/src/types/LoaderDecodeOptions.js +2 -0
  226. package/dist/esm/src/types/LoaderDecodeOptions.js.map +1 -0
  227. package/dist/esm/src/types/LoaderOptions.js +2 -0
  228. package/dist/esm/src/types/LoaderOptions.js.map +1 -0
  229. package/dist/esm/src/types/LutType.js +2 -0
  230. package/dist/esm/src/types/LutType.js.map +1 -0
  231. package/dist/esm/src/types/MetadataModules.js +2 -0
  232. package/dist/esm/src/types/MetadataModules.js.map +1 -0
  233. package/dist/esm/src/types/PixelDataTypedArray.js +2 -0
  234. package/dist/esm/src/types/PixelDataTypedArray.js.map +1 -0
  235. package/dist/esm/src/types/WADORSMetaData.js +2 -0
  236. package/dist/esm/src/types/WADORSMetaData.js.map +1 -0
  237. package/dist/esm/src/types/WebWorkerTypes.js +2 -0
  238. package/dist/esm/src/types/WebWorkerTypes.js.map +1 -0
  239. package/dist/esm/src/types/XHRRequest.js +2 -0
  240. package/dist/esm/src/types/XHRRequest.js.map +1 -0
  241. package/dist/esm/src/types/index.js +2 -0
  242. package/dist/esm/src/types/index.js.map +1 -0
  243. package/dist/esm/src/version.js +2 -0
  244. package/dist/esm/src/version.js.map +1 -0
  245. package/dist/types/codecs/jpeg.d.ts +11 -0
  246. package/dist/types/codecs/jpeg.d.ts.map +1 -0
  247. package/dist/types/codecs/jpegLossless.d.ts +8 -0
  248. package/dist/types/codecs/jpegLossless.d.ts.map +1 -0
  249. package/dist/types/src/constants/transferSyntaxes.d.ts +47 -0
  250. package/dist/types/src/constants/transferSyntaxes.d.ts.map +1 -0
  251. package/dist/types/src/externalModules.d.ts +6 -0
  252. package/dist/types/src/externalModules.d.ts.map +1 -0
  253. package/dist/types/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.d.ts +4 -0
  254. package/dist/types/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.d.ts.map +1 -0
  255. package/dist/types/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.d.ts +3 -0
  256. package/dist/types/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.d.ts.map +1 -0
  257. package/dist/types/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.d.ts +3 -0
  258. package/dist/types/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.d.ts.map +1 -0
  259. package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.d.ts +3 -0
  260. package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.d.ts.map +1 -0
  261. package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.d.ts +3 -0
  262. package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.d.ts.map +1 -0
  263. package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.d.ts +3 -0
  264. package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.d.ts.map +1 -0
  265. package/dist/types/src/imageLoader/colorSpaceConverters/index.d.ts +8 -0
  266. package/dist/types/src/imageLoader/colorSpaceConverters/index.d.ts.map +1 -0
  267. package/dist/types/src/imageLoader/configure.d.ts +4 -0
  268. package/dist/types/src/imageLoader/configure.d.ts.map +1 -0
  269. package/dist/types/src/imageLoader/convertColorSpace.d.ts +2 -0
  270. package/dist/types/src/imageLoader/convertColorSpace.d.ts.map +1 -0
  271. package/dist/types/src/imageLoader/createImage.d.ts +5 -0
  272. package/dist/types/src/imageLoader/createImage.d.ts.map +1 -0
  273. package/dist/types/src/imageLoader/decodeImageFrame.d.ts +4 -0
  274. package/dist/types/src/imageLoader/decodeImageFrame.d.ts.map +1 -0
  275. package/dist/types/src/imageLoader/decodeJPEGBaseline8BitColor.d.ts +5 -0
  276. package/dist/types/src/imageLoader/decodeJPEGBaseline8BitColor.d.ts.map +1 -0
  277. package/dist/types/src/imageLoader/getImageFrame.d.ts +4 -0
  278. package/dist/types/src/imageLoader/getImageFrame.d.ts.map +1 -0
  279. package/dist/types/src/imageLoader/getInstanceModule.d.ts +4 -0
  280. package/dist/types/src/imageLoader/getInstanceModule.d.ts.map +1 -0
  281. package/dist/types/src/imageLoader/getMinMax.d.ts +5 -0
  282. package/dist/types/src/imageLoader/getMinMax.d.ts.map +1 -0
  283. package/dist/types/src/imageLoader/getScalingParameters.d.ts +7 -0
  284. package/dist/types/src/imageLoader/getScalingParameters.d.ts.map +1 -0
  285. package/dist/types/src/imageLoader/imageIdToURI.d.ts +2 -0
  286. package/dist/types/src/imageLoader/imageIdToURI.d.ts.map +1 -0
  287. package/dist/types/src/imageLoader/index.d.ts +95 -0
  288. package/dist/types/src/imageLoader/index.d.ts.map +1 -0
  289. package/dist/types/src/imageLoader/internal/index.d.ts +9 -0
  290. package/dist/types/src/imageLoader/internal/index.d.ts.map +1 -0
  291. package/dist/types/src/imageLoader/internal/options.d.ts +4 -0
  292. package/dist/types/src/imageLoader/internal/options.d.ts.map +1 -0
  293. package/dist/types/src/imageLoader/internal/rangeRequest.d.ts +10 -0
  294. package/dist/types/src/imageLoader/internal/rangeRequest.d.ts.map +1 -0
  295. package/dist/types/src/imageLoader/internal/streamRequest.d.ts +3 -0
  296. package/dist/types/src/imageLoader/internal/streamRequest.d.ts.map +1 -0
  297. package/dist/types/src/imageLoader/internal/xhrRequest.d.ts +4 -0
  298. package/dist/types/src/imageLoader/internal/xhrRequest.d.ts.map +1 -0
  299. package/dist/types/src/imageLoader/isColorConversionRequired.d.ts +2 -0
  300. package/dist/types/src/imageLoader/isColorConversionRequired.d.ts.map +1 -0
  301. package/dist/types/src/imageLoader/isJPEGBaseline8BitColor.d.ts +4 -0
  302. package/dist/types/src/imageLoader/isJPEGBaseline8BitColor.d.ts.map +1 -0
  303. package/dist/types/src/imageLoader/isNMReconstructable.d.ts +2 -0
  304. package/dist/types/src/imageLoader/isNMReconstructable.d.ts.map +1 -0
  305. package/dist/types/src/imageLoader/registerLoaders.d.ts +3 -0
  306. package/dist/types/src/imageLoader/registerLoaders.d.ts.map +1 -0
  307. package/dist/types/src/imageLoader/wadors/combineFrameInstance.d.ts +13 -0
  308. package/dist/types/src/imageLoader/wadors/combineFrameInstance.d.ts.map +1 -0
  309. package/dist/types/src/imageLoader/wadors/extractMultipart.d.ts +24 -0
  310. package/dist/types/src/imageLoader/wadors/extractMultipart.d.ts.map +1 -0
  311. package/dist/types/src/imageLoader/wadors/findIndexOfString.d.ts +3 -0
  312. package/dist/types/src/imageLoader/wadors/findIndexOfString.d.ts.map +1 -0
  313. package/dist/types/src/imageLoader/wadors/getImageQualityStatus.d.ts +3 -0
  314. package/dist/types/src/imageLoader/wadors/getImageQualityStatus.d.ts.map +1 -0
  315. package/dist/types/src/imageLoader/wadors/getPixelData.d.ts +27 -0
  316. package/dist/types/src/imageLoader/wadors/getPixelData.d.ts.map +1 -0
  317. package/dist/types/src/imageLoader/wadors/getTagValue.d.ts +2 -0
  318. package/dist/types/src/imageLoader/wadors/getTagValue.d.ts.map +1 -0
  319. package/dist/types/src/imageLoader/wadors/index.d.ts +26 -0
  320. package/dist/types/src/imageLoader/wadors/index.d.ts.map +1 -0
  321. package/dist/types/src/imageLoader/wadors/loadImage.d.ts +26 -0
  322. package/dist/types/src/imageLoader/wadors/loadImage.d.ts.map +1 -0
  323. package/dist/types/src/imageLoader/wadors/loadImage_test.d.ts +2 -0
  324. package/dist/types/src/imageLoader/wadors/loadImage_test.d.ts.map +1 -0
  325. package/dist/types/src/imageLoader/wadors/metaData/NMHelpers.d.ts +6 -0
  326. package/dist/types/src/imageLoader/wadors/metaData/NMHelpers.d.ts.map +1 -0
  327. package/dist/types/src/imageLoader/wadors/metaData/USHelpers.d.ts +20 -0
  328. package/dist/types/src/imageLoader/wadors/metaData/USHelpers.d.ts.map +1 -0
  329. package/dist/types/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.d.ts +4 -0
  330. package/dist/types/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.d.ts.map +1 -0
  331. package/dist/types/src/imageLoader/wadors/metaData/getFirstNumberValue.d.ts +3 -0
  332. package/dist/types/src/imageLoader/wadors/metaData/getFirstNumberValue.d.ts.map +1 -0
  333. package/dist/types/src/imageLoader/wadors/metaData/getNumberString.d.ts +4 -0
  334. package/dist/types/src/imageLoader/wadors/metaData/getNumberString.d.ts.map +1 -0
  335. package/dist/types/src/imageLoader/wadors/metaData/getNumberValue.d.ts +4 -0
  336. package/dist/types/src/imageLoader/wadors/metaData/getNumberValue.d.ts.map +1 -0
  337. package/dist/types/src/imageLoader/wadors/metaData/getNumberValues.d.ts +4 -0
  338. package/dist/types/src/imageLoader/wadors/metaData/getNumberValues.d.ts.map +1 -0
  339. package/dist/types/src/imageLoader/wadors/metaData/getOverlayPlaneModule.d.ts +5 -0
  340. package/dist/types/src/imageLoader/wadors/metaData/getOverlayPlaneModule.d.ts.map +1 -0
  341. package/dist/types/src/imageLoader/wadors/metaData/getSequenceItems.d.ts +4 -0
  342. package/dist/types/src/imageLoader/wadors/metaData/getSequenceItems.d.ts.map +1 -0
  343. package/dist/types/src/imageLoader/wadors/metaData/getValue.d.ts +4 -0
  344. package/dist/types/src/imageLoader/wadors/metaData/getValue.d.ts.map +1 -0
  345. package/dist/types/src/imageLoader/wadors/metaData/index.d.ts +8 -0
  346. package/dist/types/src/imageLoader/wadors/metaData/index.d.ts.map +1 -0
  347. package/dist/types/src/imageLoader/wadors/metaData/metaDataProvider.d.ts +15 -0
  348. package/dist/types/src/imageLoader/wadors/metaData/metaDataProvider.d.ts.map +1 -0
  349. package/dist/types/src/imageLoader/wadors/metaDataManager.d.ts +15 -0
  350. package/dist/types/src/imageLoader/wadors/metaDataManager.d.ts.map +1 -0
  351. package/dist/types/src/imageLoader/wadors/register.d.ts +2 -0
  352. package/dist/types/src/imageLoader/wadors/register.d.ts.map +1 -0
  353. package/dist/types/src/imageLoader/wadors/retrieveMultiframeMetadata.d.ts +16 -0
  354. package/dist/types/src/imageLoader/wadors/retrieveMultiframeMetadata.d.ts.map +1 -0
  355. package/dist/types/src/imageLoader/wadouri/combineFrameInstanceDataset.d.ts +23 -0
  356. package/dist/types/src/imageLoader/wadouri/combineFrameInstanceDataset.d.ts.map +1 -0
  357. package/dist/types/src/imageLoader/wadouri/dataSetCacheManager.d.ts +32 -0
  358. package/dist/types/src/imageLoader/wadouri/dataSetCacheManager.d.ts.map +1 -0
  359. package/dist/types/src/imageLoader/wadouri/dataSetCacheManager_test.d.ts +2 -0
  360. package/dist/types/src/imageLoader/wadouri/dataSetCacheManager_test.d.ts.map +1 -0
  361. package/dist/types/src/imageLoader/wadouri/dataset-from-partial-content.d.ts +7 -0
  362. package/dist/types/src/imageLoader/wadouri/dataset-from-partial-content.d.ts.map +1 -0
  363. package/dist/types/src/imageLoader/wadouri/fileManager.d.ts +12 -0
  364. package/dist/types/src/imageLoader/wadouri/fileManager.d.ts.map +1 -0
  365. package/dist/types/src/imageLoader/wadouri/getEncapsulatedImageFrame.d.ts +3 -0
  366. package/dist/types/src/imageLoader/wadouri/getEncapsulatedImageFrame.d.ts.map +1 -0
  367. package/dist/types/src/imageLoader/wadouri/getPixelData.d.ts +4 -0
  368. package/dist/types/src/imageLoader/wadouri/getPixelData.d.ts.map +1 -0
  369. package/dist/types/src/imageLoader/wadouri/getUncompressedImageFrame.d.ts +4 -0
  370. package/dist/types/src/imageLoader/wadouri/getUncompressedImageFrame.d.ts.map +1 -0
  371. package/dist/types/src/imageLoader/wadouri/index.d.ts +44 -0
  372. package/dist/types/src/imageLoader/wadouri/index.d.ts.map +1 -0
  373. package/dist/types/src/imageLoader/wadouri/loadFileRequest.d.ts +3 -0
  374. package/dist/types/src/imageLoader/wadouri/loadFileRequest.d.ts.map +1 -0
  375. package/dist/types/src/imageLoader/wadouri/loadImage.d.ts +10 -0
  376. package/dist/types/src/imageLoader/wadouri/loadImage.d.ts.map +1 -0
  377. package/dist/types/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.d.ts +7 -0
  378. package/dist/types/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.d.ts.map +1 -0
  379. package/dist/types/src/imageLoader/wadouri/metaData/getImagePixelModule.d.ts +5 -0
  380. package/dist/types/src/imageLoader/wadouri/metaData/getImagePixelModule.d.ts.map +1 -0
  381. package/dist/types/src/imageLoader/wadouri/metaData/getLUTs.d.ts +5 -0
  382. package/dist/types/src/imageLoader/wadouri/metaData/getLUTs.d.ts.map +1 -0
  383. package/dist/types/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.d.ts +4 -0
  384. package/dist/types/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.d.ts.map +1 -0
  385. package/dist/types/src/imageLoader/wadouri/metaData/getNumberValues.d.ts +4 -0
  386. package/dist/types/src/imageLoader/wadouri/metaData/getNumberValues.d.ts.map +1 -0
  387. package/dist/types/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.d.ts +5 -0
  388. package/dist/types/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.d.ts.map +1 -0
  389. package/dist/types/src/imageLoader/wadouri/metaData/index.d.ts +6 -0
  390. package/dist/types/src/imageLoader/wadouri/metaData/index.d.ts.map +1 -0
  391. package/dist/types/src/imageLoader/wadouri/metaData/metaDataProvider.d.ts +3 -0
  392. package/dist/types/src/imageLoader/wadouri/metaData/metaDataProvider.d.ts.map +1 -0
  393. package/dist/types/src/imageLoader/wadouri/parseImageId.d.ts +9 -0
  394. package/dist/types/src/imageLoader/wadouri/parseImageId.d.ts.map +1 -0
  395. package/dist/types/src/imageLoader/wadouri/register.d.ts +3 -0
  396. package/dist/types/src/imageLoader/wadouri/register.d.ts.map +1 -0
  397. package/dist/types/src/imageLoader/wadouri/retrieveMultiframeDataset.d.ts +19 -0
  398. package/dist/types/src/imageLoader/wadouri/retrieveMultiframeDataset.d.ts.map +1 -0
  399. package/dist/types/src/imageLoader/wadouri/unpackBinaryFrame.d.ts +4 -0
  400. package/dist/types/src/imageLoader/wadouri/unpackBinaryFrame.d.ts.map +1 -0
  401. package/dist/types/src/shared/calculateMinMax.d.ts +3 -0
  402. package/dist/types/src/shared/calculateMinMax.d.ts.map +1 -0
  403. package/dist/types/src/shared/calculateMinMax_test.d.ts +2 -0
  404. package/dist/types/src/shared/calculateMinMax_test.d.ts.map +1 -0
  405. package/dist/types/src/shared/decodeImageFrame.d.ts +2 -0
  406. package/dist/types/src/shared/decodeImageFrame.d.ts.map +1 -0
  407. package/dist/types/src/shared/decoders/decodeBigEndian.d.ts +5 -0
  408. package/dist/types/src/shared/decoders/decodeBigEndian.d.ts.map +1 -0
  409. package/dist/types/src/shared/decoders/decodeHTJ2K.d.ts +6 -0
  410. package/dist/types/src/shared/decoders/decodeHTJ2K.d.ts.map +1 -0
  411. package/dist/types/src/shared/decoders/decodeJPEG2000.d.ts +5 -0
  412. package/dist/types/src/shared/decoders/decodeJPEG2000.d.ts.map +1 -0
  413. package/dist/types/src/shared/decoders/decodeJPEGBaseline12Bit-js.d.ts +6 -0
  414. package/dist/types/src/shared/decoders/decodeJPEGBaseline12Bit-js.d.ts.map +1 -0
  415. package/dist/types/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.d.ts +1 -0
  416. package/dist/types/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.d.ts.map +1 -0
  417. package/dist/types/src/shared/decoders/decodeJPEGBaseline8Bit.d.ts +4 -0
  418. package/dist/types/src/shared/decoders/decodeJPEGBaseline8Bit.d.ts.map +1 -0
  419. package/dist/types/src/shared/decoders/decodeJPEGLS.d.ts +5 -0
  420. package/dist/types/src/shared/decoders/decodeJPEGLS.d.ts.map +1 -0
  421. package/dist/types/src/shared/decoders/decodeJPEGLossless.d.ts +6 -0
  422. package/dist/types/src/shared/decoders/decodeJPEGLossless.d.ts.map +1 -0
  423. package/dist/types/src/shared/decoders/decodeLittleEndian.d.ts +5 -0
  424. package/dist/types/src/shared/decoders/decodeLittleEndian.d.ts.map +1 -0
  425. package/dist/types/src/shared/decoders/decodeRLE.d.ts +5 -0
  426. package/dist/types/src/shared/decoders/decodeRLE.d.ts.map +1 -0
  427. package/dist/types/src/shared/getMinMax.d.ts +7 -0
  428. package/dist/types/src/shared/getMinMax.d.ts.map +1 -0
  429. package/dist/types/src/shared/getMinMax_test.d.ts +2 -0
  430. package/dist/types/src/shared/getMinMax_test.d.ts.map +1 -0
  431. package/dist/types/src/shared/getPixelDataTypeFromMinMax.d.ts +3 -0
  432. package/dist/types/src/shared/getPixelDataTypeFromMinMax.d.ts.map +1 -0
  433. package/dist/types/src/shared/isColorImage.d.ts +2 -0
  434. package/dist/types/src/shared/isColorImage.d.ts.map +1 -0
  435. package/dist/types/src/shared/scaling/bilinear.d.ts +2 -0
  436. package/dist/types/src/shared/scaling/bilinear.d.ts.map +1 -0
  437. package/dist/types/src/shared/scaling/replicate.d.ts +2 -0
  438. package/dist/types/src/shared/scaling/replicate.d.ts.map +1 -0
  439. package/dist/types/src/shared/scaling/scaleArray.d.ts +3 -0
  440. package/dist/types/src/shared/scaling/scaleArray.d.ts.map +1 -0
  441. package/dist/types/src/types/DICOMLoaderDataSetWithFetchMore.d.ts +10 -0
  442. package/dist/types/src/types/DICOMLoaderDataSetWithFetchMore.d.ts.map +1 -0
  443. package/dist/types/src/types/DICOMLoaderIImage.d.ts +14 -0
  444. package/dist/types/src/types/DICOMLoaderIImage.d.ts.map +1 -0
  445. package/dist/types/src/types/DICOMLoaderImageOptions.d.ts +27 -0
  446. package/dist/types/src/types/DICOMLoaderImageOptions.d.ts.map +1 -0
  447. package/dist/types/src/types/ImageFrame.d.ts +44 -0
  448. package/dist/types/src/types/ImageFrame.d.ts.map +1 -0
  449. package/dist/types/src/types/LoadRequestFunction.d.ts +2 -0
  450. package/dist/types/src/types/LoadRequestFunction.d.ts.map +1 -0
  451. package/dist/types/src/types/LoaderDecodeOptions.d.ts +5 -0
  452. package/dist/types/src/types/LoaderDecodeOptions.d.ts.map +1 -0
  453. package/dist/types/src/types/LoaderOptions.d.ts +19 -0
  454. package/dist/types/src/types/LoaderOptions.d.ts.map +1 -0
  455. package/dist/types/src/types/LutType.d.ts +7 -0
  456. package/dist/types/src/types/LutType.d.ts.map +1 -0
  457. package/dist/types/src/types/MetadataModules.d.ts +67 -0
  458. package/dist/types/src/types/MetadataModules.d.ts.map +1 -0
  459. package/dist/types/src/types/PixelDataTypedArray.d.ts +3 -0
  460. package/dist/types/src/types/PixelDataTypedArray.d.ts.map +1 -0
  461. package/dist/types/src/types/WADORSMetaData.d.ts +5 -0
  462. package/dist/types/src/types/WADORSMetaData.d.ts.map +1 -0
  463. package/dist/types/src/types/WebWorkerTypes.d.ts +65 -0
  464. package/dist/types/src/types/WebWorkerTypes.d.ts.map +1 -0
  465. package/dist/types/src/types/XHRRequest.d.ts +17 -0
  466. package/dist/types/src/types/XHRRequest.d.ts.map +1 -0
  467. package/dist/types/src/types/index.d.ts +15 -0
  468. package/dist/types/src/types/index.d.ts.map +1 -0
  469. package/dist/types/src/version.d.ts +3 -0
  470. package/dist/types/src/version.d.ts.map +1 -0
  471. package/package.json +20 -10
  472. package/dist/cornerstoneDICOMImageLoaderNoWebWorkers.bundle.min.js +0 -2
  473. package/dist/cornerstoneDICOMImageLoaderNoWebWorkers.bundle.min.js.map +0 -1
  474. package/dist/dynamic-import/610.min.worker.js +0 -2
  475. package/dist/dynamic-import/610.min.worker.js.map +0 -1
  476. package/dist/dynamic-import/75788f12450d4c5ed494.wasm +0 -0
  477. package/dist/dynamic-import/945.min.worker.js +0 -2
  478. package/dist/dynamic-import/945.min.worker.js.map +0 -1
  479. package/dist/dynamic-import/index.worker.e62ecca63f1a2e124230.worker.js +0 -2
  480. package/dist/dynamic-import/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
  481. package/dist/index.worker.bundle.min.worker.js +0 -2
  482. package/dist/index.worker.bundle.min.worker.js.map +0 -1
@@ -0,0 +1,891 @@
1
+ "use strict";
2
+ var ColorSpace = { Unkown: 0, Grayscale: 1, AdobeRGB: 2, RGB: 3, CYMK: 4 };
3
+ var JpegImage = (function jpegImage() {
4
+ 'use strict';
5
+ var dctZigZag = new Int32Array([
6
+ 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40,
7
+ 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36,
8
+ 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61,
9
+ 54, 47, 55, 62, 63,
10
+ ]);
11
+ var dctCos1 = 4017;
12
+ var dctSin1 = 799;
13
+ var dctCos3 = 3406;
14
+ var dctSin3 = 2276;
15
+ var dctCos6 = 1567;
16
+ var dctSin6 = 3784;
17
+ var dctSqrt2 = 5793;
18
+ var dctSqrt1d2 = 2896;
19
+ function buildHuffmanTable(codeLengths, values) {
20
+ var k = 0, code = [], i, j, length = 16;
21
+ while (length > 0 && !codeLengths[length - 1])
22
+ length--;
23
+ code.push({ children: [], index: 0 });
24
+ var p = code[0], q;
25
+ for (i = 0; i < length; i++) {
26
+ for (j = 0; j < codeLengths[i]; j++) {
27
+ p = code.pop();
28
+ p.children[p.index] = values[k];
29
+ while (p.index > 0) {
30
+ p = code.pop();
31
+ }
32
+ p.index++;
33
+ code.push(p);
34
+ while (code.length <= i) {
35
+ code.push((q = { children: [], index: 0 }));
36
+ p.children[p.index] = q.children;
37
+ p = q;
38
+ }
39
+ k++;
40
+ }
41
+ if (i + 1 < length) {
42
+ code.push((q = { children: [], index: 0 }));
43
+ p.children[p.index] = q.children;
44
+ p = q;
45
+ }
46
+ }
47
+ return code[0].children;
48
+ }
49
+ function getBlockBufferOffset(component, row, col) {
50
+ return 64 * ((component.blocksPerLine + 1) * row + col);
51
+ }
52
+ function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) {
53
+ var precision = frame.precision;
54
+ var samplesPerLine = frame.samplesPerLine;
55
+ var scanLines = frame.scanLines;
56
+ var mcusPerLine = frame.mcusPerLine;
57
+ var progressive = frame.progressive;
58
+ var maxH = frame.maxH, maxV = frame.maxV;
59
+ var startOffset = offset, bitsData = 0, bitsCount = 0;
60
+ function readBit() {
61
+ if (bitsCount > 0) {
62
+ bitsCount--;
63
+ return (bitsData >> bitsCount) & 1;
64
+ }
65
+ bitsData = data[offset++];
66
+ if (bitsData == 0xff) {
67
+ var nextByte = data[offset++];
68
+ if (nextByte) {
69
+ throw ('unexpected marker: ' + ((bitsData << 8) | nextByte).toString(16));
70
+ }
71
+ }
72
+ bitsCount = 7;
73
+ return bitsData >>> 7;
74
+ }
75
+ function decodeHuffman(tree) {
76
+ var node = tree;
77
+ var bit;
78
+ while ((bit = readBit()) !== null) {
79
+ node = node[bit];
80
+ if (typeof node === 'number')
81
+ return node;
82
+ if (typeof node !== 'object')
83
+ throw 'invalid huffman sequence';
84
+ }
85
+ return null;
86
+ }
87
+ function receive(length) {
88
+ var n = 0;
89
+ while (length > 0) {
90
+ var bit = readBit();
91
+ if (bit === null)
92
+ return;
93
+ n = (n << 1) | bit;
94
+ length--;
95
+ }
96
+ return n;
97
+ }
98
+ function receiveAndExtend(length) {
99
+ var n = receive(length);
100
+ if (n >= 1 << (length - 1))
101
+ return n;
102
+ return n + (-1 << length) + 1;
103
+ }
104
+ function decodeBaseline(component, offset) {
105
+ var t = decodeHuffman(component.huffmanTableDC);
106
+ var diff = t === 0 ? 0 : receiveAndExtend(t);
107
+ component.blockData[offset] = component.pred += diff;
108
+ var k = 1;
109
+ while (k < 64) {
110
+ var rs = decodeHuffman(component.huffmanTableAC);
111
+ var s = rs & 15, r = rs >> 4;
112
+ if (s === 0) {
113
+ if (r < 15)
114
+ break;
115
+ k += 16;
116
+ continue;
117
+ }
118
+ k += r;
119
+ var z = dctZigZag[k];
120
+ component.blockData[offset + z] = receiveAndExtend(s);
121
+ k++;
122
+ }
123
+ }
124
+ function decodeDCFirst(component, offset) {
125
+ var t = decodeHuffman(component.huffmanTableDC);
126
+ var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;
127
+ component.blockData[offset] = component.pred += diff;
128
+ }
129
+ function decodeDCSuccessive(component, offset) {
130
+ component.blockData[offset] |= readBit() << successive;
131
+ }
132
+ var eobrun = 0;
133
+ function decodeACFirst(component, offset) {
134
+ if (eobrun > 0) {
135
+ eobrun--;
136
+ return;
137
+ }
138
+ var k = spectralStart, e = spectralEnd;
139
+ while (k <= e) {
140
+ var rs = decodeHuffman(component.huffmanTableAC);
141
+ var s = rs & 15, r = rs >> 4;
142
+ if (s === 0) {
143
+ if (r < 15) {
144
+ eobrun = receive(r) + (1 << r) - 1;
145
+ break;
146
+ }
147
+ k += 16;
148
+ continue;
149
+ }
150
+ k += r;
151
+ var z = dctZigZag[k];
152
+ component.blockData[offset + z] =
153
+ receiveAndExtend(s) * (1 << successive);
154
+ k++;
155
+ }
156
+ }
157
+ var successiveACState = 0, successiveACNextValue;
158
+ function decodeACSuccessive(component, offset) {
159
+ var k = spectralStart, e = spectralEnd, r = 0;
160
+ while (k <= e) {
161
+ var z = dctZigZag[k];
162
+ switch (successiveACState) {
163
+ case 0:
164
+ var rs = decodeHuffman(component.huffmanTableAC);
165
+ var s = rs & 15;
166
+ r = rs >> 4;
167
+ if (s === 0) {
168
+ if (r < 15) {
169
+ eobrun = receive(r) + (1 << r);
170
+ successiveACState = 4;
171
+ }
172
+ else {
173
+ r = 16;
174
+ successiveACState = 1;
175
+ }
176
+ }
177
+ else {
178
+ if (s !== 1)
179
+ throw 'invalid ACn encoding';
180
+ successiveACNextValue = receiveAndExtend(s);
181
+ successiveACState = r ? 2 : 3;
182
+ }
183
+ continue;
184
+ case 1:
185
+ case 2:
186
+ if (component.blockData[offset + z]) {
187
+ component.blockData[offset + z] += readBit() << successive;
188
+ }
189
+ else {
190
+ r--;
191
+ if (r === 0)
192
+ successiveACState = successiveACState == 2 ? 3 : 0;
193
+ }
194
+ break;
195
+ case 3:
196
+ if (component.blockData[offset + z]) {
197
+ component.blockData[offset + z] += readBit() << successive;
198
+ }
199
+ else {
200
+ component.blockData[offset + z] =
201
+ successiveACNextValue << successive;
202
+ successiveACState = 0;
203
+ }
204
+ break;
205
+ case 4:
206
+ if (component.blockData[offset + z]) {
207
+ component.blockData[offset + z] += readBit() << successive;
208
+ }
209
+ break;
210
+ }
211
+ k++;
212
+ }
213
+ if (successiveACState === 4) {
214
+ eobrun--;
215
+ if (eobrun === 0)
216
+ successiveACState = 0;
217
+ }
218
+ }
219
+ function decodeMcu(component, decode, mcu, row, col) {
220
+ var mcuRow = (mcu / mcusPerLine) | 0;
221
+ var mcuCol = mcu % mcusPerLine;
222
+ var blockRow = mcuRow * component.v + row;
223
+ var blockCol = mcuCol * component.h + col;
224
+ var offset = getBlockBufferOffset(component, blockRow, blockCol);
225
+ decode(component, offset);
226
+ }
227
+ function decodeBlock(component, decode, mcu) {
228
+ var blockRow = (mcu / component.blocksPerLine) | 0;
229
+ var blockCol = mcu % component.blocksPerLine;
230
+ var offset = getBlockBufferOffset(component, blockRow, blockCol);
231
+ decode(component, offset);
232
+ }
233
+ var componentsLength = components.length;
234
+ var component, i, j, k, n;
235
+ var decodeFn;
236
+ if (progressive) {
237
+ if (spectralStart === 0)
238
+ decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;
239
+ else
240
+ decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;
241
+ }
242
+ else {
243
+ decodeFn = decodeBaseline;
244
+ }
245
+ var mcu = 0, marker;
246
+ var mcuExpected;
247
+ if (componentsLength == 1) {
248
+ mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;
249
+ }
250
+ else {
251
+ mcuExpected = mcusPerLine * frame.mcusPerColumn;
252
+ }
253
+ if (!resetInterval) {
254
+ resetInterval = mcuExpected;
255
+ }
256
+ var h, v;
257
+ while (mcu < mcuExpected) {
258
+ for (i = 0; i < componentsLength; i++) {
259
+ components[i].pred = 0;
260
+ }
261
+ eobrun = 0;
262
+ if (componentsLength == 1) {
263
+ component = components[0];
264
+ for (n = 0; n < resetInterval; n++) {
265
+ decodeBlock(component, decodeFn, mcu);
266
+ mcu++;
267
+ }
268
+ }
269
+ else {
270
+ for (n = 0; n < resetInterval; n++) {
271
+ for (i = 0; i < componentsLength; i++) {
272
+ component = components[i];
273
+ h = component.h;
274
+ v = component.v;
275
+ for (j = 0; j < v; j++) {
276
+ for (k = 0; k < h; k++) {
277
+ decodeMcu(component, decodeFn, mcu, j, k);
278
+ }
279
+ }
280
+ }
281
+ mcu++;
282
+ }
283
+ }
284
+ bitsCount = 0;
285
+ marker = (data[offset] << 8) | data[offset + 1];
286
+ if (marker <= 0xff00) {
287
+ throw 'marker was not found';
288
+ }
289
+ if (marker >= 0xffd0 && marker <= 0xffd7) {
290
+ offset += 2;
291
+ }
292
+ else {
293
+ break;
294
+ }
295
+ }
296
+ return offset - startOffset;
297
+ }
298
+ function quantizeAndInverse(component, blockBufferOffset, p) {
299
+ var qt = component.quantizationTable;
300
+ var v0, v1, v2, v3, v4, v5, v6, v7, t;
301
+ var i;
302
+ for (i = 0; i < 64; i++) {
303
+ p[i] = component.blockData[blockBufferOffset + i] * qt[i];
304
+ }
305
+ for (i = 0; i < 8; ++i) {
306
+ var row = 8 * i;
307
+ if (p[1 + row] === 0 &&
308
+ p[2 + row] === 0 &&
309
+ p[3 + row] === 0 &&
310
+ p[4 + row] === 0 &&
311
+ p[5 + row] === 0 &&
312
+ p[6 + row] === 0 &&
313
+ p[7 + row] === 0) {
314
+ t = (dctSqrt2 * p[0 + row] + 512) >> 10;
315
+ p[0 + row] = t;
316
+ p[1 + row] = t;
317
+ p[2 + row] = t;
318
+ p[3 + row] = t;
319
+ p[4 + row] = t;
320
+ p[5 + row] = t;
321
+ p[6 + row] = t;
322
+ p[7 + row] = t;
323
+ continue;
324
+ }
325
+ v0 = (dctSqrt2 * p[0 + row] + 128) >> 8;
326
+ v1 = (dctSqrt2 * p[4 + row] + 128) >> 8;
327
+ v2 = p[2 + row];
328
+ v3 = p[6 + row];
329
+ v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8;
330
+ v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8;
331
+ v5 = p[3 + row] << 4;
332
+ v6 = p[5 + row] << 4;
333
+ t = (v0 - v1 + 1) >> 1;
334
+ v0 = (v0 + v1 + 1) >> 1;
335
+ v1 = t;
336
+ t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;
337
+ v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;
338
+ v3 = t;
339
+ t = (v4 - v6 + 1) >> 1;
340
+ v4 = (v4 + v6 + 1) >> 1;
341
+ v6 = t;
342
+ t = (v7 + v5 + 1) >> 1;
343
+ v5 = (v7 - v5 + 1) >> 1;
344
+ v7 = t;
345
+ t = (v0 - v3 + 1) >> 1;
346
+ v0 = (v0 + v3 + 1) >> 1;
347
+ v3 = t;
348
+ t = (v1 - v2 + 1) >> 1;
349
+ v1 = (v1 + v2 + 1) >> 1;
350
+ v2 = t;
351
+ t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;
352
+ v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;
353
+ v7 = t;
354
+ t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;
355
+ v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;
356
+ v6 = t;
357
+ p[0 + row] = v0 + v7;
358
+ p[7 + row] = v0 - v7;
359
+ p[1 + row] = v1 + v6;
360
+ p[6 + row] = v1 - v6;
361
+ p[2 + row] = v2 + v5;
362
+ p[5 + row] = v2 - v5;
363
+ p[3 + row] = v3 + v4;
364
+ p[4 + row] = v3 - v4;
365
+ }
366
+ for (i = 0; i < 8; ++i) {
367
+ var col = i;
368
+ if (p[1 * 8 + col] === 0 &&
369
+ p[2 * 8 + col] === 0 &&
370
+ p[3 * 8 + col] === 0 &&
371
+ p[4 * 8 + col] === 0 &&
372
+ p[5 * 8 + col] === 0 &&
373
+ p[6 * 8 + col] === 0 &&
374
+ p[7 * 8 + col] === 0) {
375
+ t = (dctSqrt2 * p[i + 0] + 8192) >> 14;
376
+ p[0 * 8 + col] = t;
377
+ p[1 * 8 + col] = t;
378
+ p[2 * 8 + col] = t;
379
+ p[3 * 8 + col] = t;
380
+ p[4 * 8 + col] = t;
381
+ p[5 * 8 + col] = t;
382
+ p[6 * 8 + col] = t;
383
+ p[7 * 8 + col] = t;
384
+ continue;
385
+ }
386
+ v0 = (dctSqrt2 * p[0 * 8 + col] + 2048) >> 12;
387
+ v1 = (dctSqrt2 * p[4 * 8 + col] + 2048) >> 12;
388
+ v2 = p[2 * 8 + col];
389
+ v3 = p[6 * 8 + col];
390
+ v4 = (dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048) >> 12;
391
+ v7 = (dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048) >> 12;
392
+ v5 = p[3 * 8 + col];
393
+ v6 = p[5 * 8 + col];
394
+ t = (v0 - v1 + 1) >> 1;
395
+ v0 = (v0 + v1 + 1) >> 1;
396
+ v1 = t;
397
+ t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;
398
+ v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;
399
+ v3 = t;
400
+ t = (v4 - v6 + 1) >> 1;
401
+ v4 = (v4 + v6 + 1) >> 1;
402
+ v6 = t;
403
+ t = (v7 + v5 + 1) >> 1;
404
+ v5 = (v7 - v5 + 1) >> 1;
405
+ v7 = t;
406
+ t = (v0 - v3 + 1) >> 1;
407
+ v0 = (v0 + v3 + 1) >> 1;
408
+ v3 = t;
409
+ t = (v1 - v2 + 1) >> 1;
410
+ v1 = (v1 + v2 + 1) >> 1;
411
+ v2 = t;
412
+ t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;
413
+ v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;
414
+ v7 = t;
415
+ t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;
416
+ v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;
417
+ v6 = t;
418
+ p[0 * 8 + col] = v0 + v7;
419
+ p[7 * 8 + col] = v0 - v7;
420
+ p[1 * 8 + col] = v1 + v6;
421
+ p[6 * 8 + col] = v1 - v6;
422
+ p[2 * 8 + col] = v2 + v5;
423
+ p[5 * 8 + col] = v2 - v5;
424
+ p[3 * 8 + col] = v3 + v4;
425
+ p[4 * 8 + col] = v3 - v4;
426
+ }
427
+ for (i = 0; i < 64; ++i) {
428
+ var index = blockBufferOffset + i;
429
+ var q = p[i];
430
+ q =
431
+ q <= -2056 / component.bitConversion
432
+ ? 0
433
+ : q >= 2024 / component.bitConversion
434
+ ? 255 / component.bitConversion
435
+ : (q + 2056 / component.bitConversion) >> 4;
436
+ component.blockData[index] = q;
437
+ }
438
+ }
439
+ function buildComponentData(frame, component) {
440
+ var lines = [];
441
+ var blocksPerLine = component.blocksPerLine;
442
+ var blocksPerColumn = component.blocksPerColumn;
443
+ var samplesPerLine = blocksPerLine << 3;
444
+ var computationBuffer = new Int32Array(64);
445
+ var i, j, ll = 0;
446
+ for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {
447
+ for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {
448
+ var offset = getBlockBufferOffset(component, blockRow, blockCol);
449
+ quantizeAndInverse(component, offset, computationBuffer);
450
+ }
451
+ }
452
+ return component.blockData;
453
+ }
454
+ function clampToUint8(a) {
455
+ return a <= 0 ? 0 : a >= 255 ? 255 : a | 0;
456
+ }
457
+ class JpegImage {
458
+ }
459
+ Object.setPrototypeOf(JpegImage.prototype, {
460
+ load: function load(path) {
461
+ var handleData = function (data) {
462
+ this.parse(data);
463
+ if (this.onload)
464
+ this.onload();
465
+ }.bind(this);
466
+ if (path.indexOf('data:') > -1) {
467
+ var offset = path.indexOf('base64,') + 7;
468
+ var data = atob(path.substring(offset));
469
+ var arr = new Uint8Array(data.length);
470
+ for (var i = data.length - 1; i >= 0; i--) {
471
+ arr[i] = data.charCodeAt(i);
472
+ }
473
+ handleData(data);
474
+ }
475
+ else {
476
+ var xhr = new XMLHttpRequest();
477
+ xhr.open('GET', path, true);
478
+ xhr.responseType = 'arraybuffer';
479
+ xhr.onload = function () {
480
+ var data = new Uint8Array(xhr.response);
481
+ handleData(data);
482
+ }.bind(this);
483
+ xhr.send(null);
484
+ }
485
+ },
486
+ parse: function parse(data) {
487
+ function readUint16() {
488
+ var value = (data[offset] << 8) | data[offset + 1];
489
+ offset += 2;
490
+ return value;
491
+ }
492
+ function readDataBlock() {
493
+ var length = readUint16();
494
+ var array = data.subarray(offset, offset + length - 2);
495
+ offset += array.length;
496
+ return array;
497
+ }
498
+ function prepareComponents(frame) {
499
+ var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);
500
+ var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);
501
+ for (var i = 0; i < frame.components.length; i++) {
502
+ component = frame.components[i];
503
+ var blocksPerLine = Math.ceil((Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH);
504
+ var blocksPerColumn = Math.ceil((Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV);
505
+ var blocksPerLineForMcu = mcusPerLine * component.h;
506
+ var blocksPerColumnForMcu = mcusPerColumn * component.v;
507
+ var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);
508
+ component.blockData = new Int16Array(blocksBufferSize);
509
+ component.blocksPerLine = blocksPerLine;
510
+ component.blocksPerColumn = blocksPerColumn;
511
+ }
512
+ frame.mcusPerLine = mcusPerLine;
513
+ frame.mcusPerColumn = mcusPerColumn;
514
+ }
515
+ var offset = 0, length = data.length;
516
+ var jfif = null;
517
+ var adobe = null;
518
+ var pixels = null;
519
+ var frame, resetInterval;
520
+ var quantizationTables = [];
521
+ var huffmanTablesAC = [], huffmanTablesDC = [];
522
+ var fileMarker = readUint16();
523
+ if (fileMarker != 0xffd8) {
524
+ throw 'SOI not found';
525
+ }
526
+ fileMarker = readUint16();
527
+ while (fileMarker != 0xffd9) {
528
+ var i, j, l;
529
+ switch (fileMarker) {
530
+ case 0xffe0:
531
+ case 0xffe1:
532
+ case 0xffe2:
533
+ case 0xffe3:
534
+ case 0xffe4:
535
+ case 0xffe5:
536
+ case 0xffe6:
537
+ case 0xffe7:
538
+ case 0xffe8:
539
+ case 0xffe9:
540
+ case 0xffea:
541
+ case 0xffeb:
542
+ case 0xffec:
543
+ case 0xffed:
544
+ case 0xffee:
545
+ case 0xffef:
546
+ case 0xfffe:
547
+ var appData = readDataBlock();
548
+ if (fileMarker === 0xffe0) {
549
+ if (appData[0] === 0x4a &&
550
+ appData[1] === 0x46 &&
551
+ appData[2] === 0x49 &&
552
+ appData[3] === 0x46 &&
553
+ appData[4] === 0) {
554
+ jfif = {
555
+ version: { major: appData[5], minor: appData[6] },
556
+ densityUnits: appData[7],
557
+ xDensity: (appData[8] << 8) | appData[9],
558
+ yDensity: (appData[10] << 8) | appData[11],
559
+ thumbWidth: appData[12],
560
+ thumbHeight: appData[13],
561
+ thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]),
562
+ };
563
+ }
564
+ }
565
+ if (fileMarker === 0xffee) {
566
+ if (appData[0] === 0x41 &&
567
+ appData[1] === 0x64 &&
568
+ appData[2] === 0x6f &&
569
+ appData[3] === 0x62 &&
570
+ appData[4] === 0x65 &&
571
+ appData[5] === 0) {
572
+ adobe = {
573
+ version: appData[6],
574
+ flags0: (appData[7] << 8) | appData[8],
575
+ flags1: (appData[9] << 8) | appData[10],
576
+ transformCode: appData[11],
577
+ };
578
+ }
579
+ }
580
+ break;
581
+ case 0xffdb:
582
+ var quantizationTablesLength = readUint16();
583
+ var quantizationTablesEnd = quantizationTablesLength + offset - 2;
584
+ while (offset < quantizationTablesEnd) {
585
+ var quantizationTableSpec = data[offset++];
586
+ var tableData = new Int32Array(64);
587
+ if (quantizationTableSpec >> 4 === 0) {
588
+ for (j = 0; j < 64; j++) {
589
+ var z = dctZigZag[j];
590
+ tableData[z] = data[offset++];
591
+ }
592
+ }
593
+ else if (quantizationTableSpec >> 4 === 1) {
594
+ for (j = 0; j < 64; j++) {
595
+ var zz = dctZigZag[j];
596
+ tableData[zz] = readUint16();
597
+ }
598
+ }
599
+ else
600
+ throw 'DQT: invalid table spec';
601
+ quantizationTables[quantizationTableSpec & 15] = tableData;
602
+ }
603
+ break;
604
+ case 0xffc0:
605
+ case 0xffc1:
606
+ case 0xffc2:
607
+ if (frame) {
608
+ throw 'Only single frame JPEGs supported';
609
+ }
610
+ readUint16();
611
+ frame = {};
612
+ frame.extended = fileMarker === 0xffc1;
613
+ frame.progressive = fileMarker === 0xffc2;
614
+ frame.precision = data[offset++];
615
+ frame.scanLines = readUint16();
616
+ frame.samplesPerLine = readUint16();
617
+ frame.components = [];
618
+ frame.componentIds = {};
619
+ var componentsCount = data[offset++], componentId;
620
+ var maxH = 0, maxV = 0;
621
+ for (i = 0; i < componentsCount; i++) {
622
+ componentId = data[offset];
623
+ var h = data[offset + 1] >> 4;
624
+ var v = data[offset + 1] & 15;
625
+ if (maxH < h)
626
+ maxH = h;
627
+ if (maxV < v)
628
+ maxV = v;
629
+ var qId = data[offset + 2];
630
+ l = frame.components.push({
631
+ h: h,
632
+ v: v,
633
+ quantizationTable: quantizationTables[qId],
634
+ quantizationTableId: qId,
635
+ bitConversion: 255 / ((1 << frame.precision) - 1),
636
+ });
637
+ frame.componentIds[componentId] = l - 1;
638
+ offset += 3;
639
+ }
640
+ frame.maxH = maxH;
641
+ frame.maxV = maxV;
642
+ prepareComponents(frame);
643
+ break;
644
+ case 0xffc4:
645
+ var huffmanLength = readUint16();
646
+ for (i = 2; i < huffmanLength;) {
647
+ var huffmanTableSpec = data[offset++];
648
+ var codeLengths = new Uint8Array(16);
649
+ var codeLengthSum = 0;
650
+ for (j = 0; j < 16; j++, offset++)
651
+ codeLengthSum += codeLengths[j] = data[offset];
652
+ var huffmanValues = new Uint8Array(codeLengthSum);
653
+ for (j = 0; j < codeLengthSum; j++, offset++)
654
+ huffmanValues[j] = data[offset];
655
+ i += 17 + codeLengthSum;
656
+ (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);
657
+ }
658
+ break;
659
+ case 0xffdd:
660
+ readUint16();
661
+ resetInterval = readUint16();
662
+ break;
663
+ case 0xffda:
664
+ var scanLength = readUint16();
665
+ var selectorsCount = data[offset++];
666
+ var components = [], component;
667
+ for (i = 0; i < selectorsCount; i++) {
668
+ var componentIndex = frame.componentIds[data[offset++]];
669
+ component = frame.components[componentIndex];
670
+ var tableSpec = data[offset++];
671
+ component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];
672
+ component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];
673
+ components.push(component);
674
+ }
675
+ var spectralStart = data[offset++];
676
+ var spectralEnd = data[offset++];
677
+ var successiveApproximation = data[offset++];
678
+ var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);
679
+ offset += processed;
680
+ break;
681
+ case 0xffff:
682
+ if (data[offset] !== 0xff) {
683
+ offset--;
684
+ }
685
+ break;
686
+ default:
687
+ if (data[offset - 3] == 0xff &&
688
+ data[offset - 2] >= 0xc0 &&
689
+ data[offset - 2] <= 0xfe) {
690
+ offset -= 3;
691
+ break;
692
+ }
693
+ throw 'unknown JPEG marker ' + fileMarker.toString(16);
694
+ }
695
+ fileMarker = readUint16();
696
+ }
697
+ this.width = frame.samplesPerLine;
698
+ this.height = frame.scanLines;
699
+ this.jfif = jfif;
700
+ this.adobe = adobe;
701
+ this.components = [];
702
+ switch (frame.components.length) {
703
+ case 1:
704
+ this.colorspace = ColorSpace.Grayscale;
705
+ break;
706
+ case 3:
707
+ if (this.adobe)
708
+ this.colorspace = ColorSpace.AdobeRGB;
709
+ else
710
+ this.colorspace = ColorSpace.RGB;
711
+ break;
712
+ case 4:
713
+ this.colorspace = ColorSpace.CYMK;
714
+ break;
715
+ default:
716
+ this.colorspace = ColorSpace.Unknown;
717
+ }
718
+ for (var i = 0; i < frame.components.length; i++) {
719
+ var component = frame.components[i];
720
+ if (!component.quantizationTable &&
721
+ component.quantizationTableId !== null)
722
+ component.quantizationTable =
723
+ quantizationTables[component.quantizationTableId];
724
+ this.components.push({
725
+ output: buildComponentData(frame, component),
726
+ scaleX: component.h / frame.maxH,
727
+ scaleY: component.v / frame.maxV,
728
+ blocksPerLine: component.blocksPerLine,
729
+ blocksPerColumn: component.blocksPerColumn,
730
+ bitConversion: component.bitConversion,
731
+ });
732
+ }
733
+ },
734
+ getData16: function getData16(width, height) {
735
+ if (this.components.length !== 1)
736
+ throw 'Unsupported color mode';
737
+ var scaleX = this.width / width, scaleY = this.height / height;
738
+ var component, componentScaleX, componentScaleY;
739
+ var x, y, i;
740
+ var offset = 0;
741
+ var numComponents = this.components.length;
742
+ var dataLength = width * height * numComponents;
743
+ var data = new Uint16Array(dataLength);
744
+ var componentLine;
745
+ var lineData = new Uint16Array((this.components[0].blocksPerLine << 3) *
746
+ this.components[0].blocksPerColumn *
747
+ 8);
748
+ for (i = 0; i < numComponents; i++) {
749
+ component = this.components[i];
750
+ var blocksPerLine = component.blocksPerLine;
751
+ var blocksPerColumn = component.blocksPerColumn;
752
+ var samplesPerLine = blocksPerLine << 3;
753
+ var j, k, ll = 0;
754
+ var lineOffset = 0;
755
+ for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {
756
+ var scanLine = blockRow << 3;
757
+ for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {
758
+ var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol);
759
+ var offset = 0, sample = blockCol << 3;
760
+ for (j = 0; j < 8; j++) {
761
+ var lineOffset = (scanLine + j) * samplesPerLine;
762
+ for (k = 0; k < 8; k++) {
763
+ lineData[lineOffset + sample + k] =
764
+ component.output[bufferOffset + offset++];
765
+ }
766
+ }
767
+ }
768
+ }
769
+ componentScaleX = component.scaleX * scaleX;
770
+ componentScaleY = component.scaleY * scaleY;
771
+ offset = i;
772
+ var cx, cy;
773
+ var index;
774
+ for (y = 0; y < height; y++) {
775
+ for (x = 0; x < width; x++) {
776
+ cy = 0 | (y * componentScaleY);
777
+ cx = 0 | (x * componentScaleX);
778
+ index = cy * samplesPerLine + cx;
779
+ data[offset] = lineData[index];
780
+ offset += numComponents;
781
+ }
782
+ }
783
+ }
784
+ return data;
785
+ },
786
+ getData: function getData(width, height) {
787
+ var scaleX = this.width / width, scaleY = this.height / height;
788
+ var component, componentScaleX, componentScaleY;
789
+ var x, y, i;
790
+ var offset = 0;
791
+ var Y, Cb, Cr, K, C, M, Ye, R, G, B;
792
+ var colorTransform;
793
+ var numComponents = this.components.length;
794
+ var dataLength = width * height * numComponents;
795
+ var data = new Uint8Array(dataLength);
796
+ var componentLine;
797
+ var lineData = new Uint8Array((this.components[0].blocksPerLine << 3) *
798
+ this.components[0].blocksPerColumn *
799
+ 8);
800
+ for (i = 0; i < numComponents; i++) {
801
+ component = this.components[i];
802
+ var blocksPerLine = component.blocksPerLine;
803
+ var blocksPerColumn = component.blocksPerColumn;
804
+ var samplesPerLine = blocksPerLine << 3;
805
+ var j, k, ll = 0;
806
+ var lineOffset = 0;
807
+ for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {
808
+ var scanLine = blockRow << 3;
809
+ for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {
810
+ var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol);
811
+ var offset = 0, sample = blockCol << 3;
812
+ for (j = 0; j < 8; j++) {
813
+ var lineOffset = (scanLine + j) * samplesPerLine;
814
+ for (k = 0; k < 8; k++) {
815
+ lineData[lineOffset + sample + k] =
816
+ component.output[bufferOffset + offset++] *
817
+ component.bitConversion;
818
+ }
819
+ }
820
+ }
821
+ }
822
+ componentScaleX = component.scaleX * scaleX;
823
+ componentScaleY = component.scaleY * scaleY;
824
+ offset = i;
825
+ var cx, cy;
826
+ var index;
827
+ for (y = 0; y < height; y++) {
828
+ for (x = 0; x < width; x++) {
829
+ cy = 0 | (y * componentScaleY);
830
+ cx = 0 | (x * componentScaleX);
831
+ index = cy * samplesPerLine + cx;
832
+ data[offset] = lineData[index];
833
+ offset += numComponents;
834
+ }
835
+ }
836
+ }
837
+ switch (numComponents) {
838
+ case 1:
839
+ case 2:
840
+ break;
841
+ case 3:
842
+ colorTransform = true;
843
+ if (this.adobe && this.adobe.transformCode)
844
+ colorTransform = true;
845
+ else if (typeof this.colorTransform !== 'undefined')
846
+ colorTransform = !!this.colorTransform;
847
+ if (colorTransform) {
848
+ for (i = 0; i < dataLength; i += numComponents) {
849
+ Y = data[i];
850
+ Cb = data[i + 1];
851
+ Cr = data[i + 2];
852
+ R = clampToUint8(Y - 179.456 + 1.402 * Cr);
853
+ G = clampToUint8(Y + 135.459 - 0.344 * Cb - 0.714 * Cr);
854
+ B = clampToUint8(Y - 226.816 + 1.772 * Cb);
855
+ data[i] = R;
856
+ data[i + 1] = G;
857
+ data[i + 2] = B;
858
+ }
859
+ }
860
+ break;
861
+ case 4:
862
+ if (!this.adobe)
863
+ throw 'Unsupported color mode (4 components)';
864
+ colorTransform = false;
865
+ if (this.adobe && this.adobe.transformCode)
866
+ colorTransform = true;
867
+ else if (typeof this.colorTransform !== 'undefined')
868
+ colorTransform = !!this.colorTransform;
869
+ if (colorTransform) {
870
+ for (i = 0; i < dataLength; i += numComponents) {
871
+ Y = data[i];
872
+ Cb = data[i + 1];
873
+ Cr = data[i + 2];
874
+ C = clampToUint8(434.456 - Y - 1.402 * Cr);
875
+ M = clampToUint8(119.541 - Y + 0.344 * Cb + 0.714 * Cr);
876
+ Y = clampToUint8(481.816 - Y - 1.772 * Cb);
877
+ data[i] = C;
878
+ data[i + 1] = M;
879
+ data[i + 2] = Y;
880
+ }
881
+ }
882
+ break;
883
+ default:
884
+ throw 'Unsupported color mode';
885
+ }
886
+ return data;
887
+ },
888
+ });
889
+ return JpegImage;
890
+ })();
891
+ //# sourceMappingURL=jpeg.js.map