@loaders.gl/images 4.0.0-alpha.22 → 4.0.0-alpha.24

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 (64) hide show
  1. package/dist/dist.min.js +1 -1
  2. package/dist/dist.min.js.map +2 -2
  3. package/dist/es5/image-loader.js +2 -3
  4. package/dist/es5/image-loader.js.map +1 -1
  5. package/dist/es5/lib/parsers/parse-image.js +7 -7
  6. package/dist/es5/lib/parsers/parse-image.js.map +1 -1
  7. package/dist/es5/lib/parsers/parse-to-image-bitmap.js +3 -3
  8. package/dist/es5/lib/parsers/parse-to-image-bitmap.js.map +1 -1
  9. package/dist/es5/lib/parsers/parse-to-image.js +1 -1
  10. package/dist/es5/lib/parsers/parse-to-image.js.map +1 -1
  11. package/dist/es5/lib/parsers/parse-to-node-image.js +1 -1
  12. package/dist/es5/lib/parsers/parse-to-node-image.js.map +1 -1
  13. package/dist/es5/lib/texture-api/load-image.js +3 -3
  14. package/dist/es5/lib/texture-api/load-image.js.map +1 -1
  15. package/dist/es5/lib/utils/version.js +1 -1
  16. package/dist/esm/image-loader.js +1 -1
  17. package/dist/esm/image-loader.js.map +1 -1
  18. package/dist/esm/lib/parsers/parse-image.js +4 -4
  19. package/dist/esm/lib/parsers/parse-image.js.map +1 -1
  20. package/dist/esm/lib/parsers/parse-to-image-bitmap.js +2 -2
  21. package/dist/esm/lib/parsers/parse-to-image-bitmap.js.map +1 -1
  22. package/dist/esm/lib/parsers/parse-to-image.js +1 -1
  23. package/dist/esm/lib/parsers/parse-to-image.js.map +1 -1
  24. package/dist/esm/lib/parsers/parse-to-node-image.js +1 -1
  25. package/dist/esm/lib/parsers/parse-to-node-image.js.map +1 -1
  26. package/dist/esm/lib/texture-api/load-image.js +1 -1
  27. package/dist/esm/lib/texture-api/load-image.js.map +1 -1
  28. package/dist/esm/lib/utils/version.js +1 -1
  29. package/dist/lib/parsers/parse-image.d.ts +1 -1
  30. package/dist/lib/parsers/parse-image.d.ts.map +1 -1
  31. package/dist/lib/parsers/parse-to-image-bitmap.d.ts +1 -1
  32. package/dist/lib/parsers/parse-to-image-bitmap.d.ts.map +1 -1
  33. package/dist/lib/parsers/parse-to-image.d.ts +1 -1
  34. package/dist/lib/parsers/parse-to-image.d.ts.map +1 -1
  35. package/dist/lib/parsers/parse-to-node-image.d.ts +1 -1
  36. package/dist/lib/parsers/parse-to-node-image.d.ts.map +1 -1
  37. package/package.json +3 -3
  38. package/src/image-loader.ts +1 -1
  39. package/src/lib/parsers/parse-image.ts +4 -4
  40. package/src/lib/parsers/parse-to-image-bitmap.ts +2 -2
  41. package/src/lib/parsers/parse-to-image.ts +1 -1
  42. package/src/lib/parsers/parse-to-node-image.ts +1 -1
  43. package/src/lib/texture-api/load-image.ts +1 -1
  44. package/dist/bundle.js +0 -5
  45. package/dist/image-loader.js +0 -44
  46. package/dist/image-writer.js +0 -21
  47. package/dist/index.js +0 -29
  48. package/dist/lib/category-api/binary-image-api.js +0 -161
  49. package/dist/lib/category-api/image-format.js +0 -110
  50. package/dist/lib/category-api/image-type.js +0 -48
  51. package/dist/lib/category-api/parse-isobmff-binary.js +0 -94
  52. package/dist/lib/category-api/parsed-image-api.js +0 -69
  53. package/dist/lib/encoders/encode-image.js +0 -81
  54. package/dist/lib/parsers/parse-image.js +0 -57
  55. package/dist/lib/parsers/parse-to-image-bitmap.js +0 -61
  56. package/dist/lib/parsers/parse-to-image.js +0 -47
  57. package/dist/lib/parsers/parse-to-node-image.js +0 -14
  58. package/dist/lib/parsers/svg-utils.js +0 -42
  59. package/dist/lib/texture-api/async-deep-map.js +0 -56
  60. package/dist/lib/texture-api/deep-load.js +0 -14
  61. package/dist/lib/texture-api/generate-url.js +0 -20
  62. package/dist/lib/texture-api/load-image.js +0 -47
  63. package/dist/lib/utils/version.js +0 -7
  64. package/dist/types.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"parse-to-node-image.js","names":["_loaderUtils","require","_binaryImageApi","parseToNodeImage","_x","_x2","_parseToNodeImage","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","options","_ref","mimeType","_parseImageNode","wrap","_callee$","_context","prev","next","getBinaryImageMetadata","globalThis","assert","abrupt","sent","stop"],"sources":["../../../../src/lib/parsers/parse-to-node-image.ts"],"sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport type {ImageDataType} from '../../types';\nimport {assert} from '@loaders.gl/loader-utils';\nimport {getBinaryImageMetadata} from '../category-api/binary-image-api';\n\n// Note: These types should be consistent with loaders.gl/polyfills\n\ntype NDArray = {\n shape: number[];\n data: Uint8Array;\n width: number;\n height: number;\n components: number;\n layers: number[];\n};\n\ntype ParseImageNode = (arrayBuffer: ArrayBuffer, mimeType: string) => Promise<NDArray>;\n\n// Use polyfills if installed to parsed image using get-pixels\nexport default async function parseToNodeImage(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions\n): Promise<ImageDataType> {\n const {mimeType} = getBinaryImageMetadata(arrayBuffer) || {};\n\n // @ts-ignore\n const _parseImageNode: ParseImageNode = globalThis._parseImageNode;\n assert(_parseImageNode); // '@loaders.gl/polyfills not installed'\n\n // @ts-expect-error TODO should we throw error in this case?\n return await _parseImageNode(arrayBuffer, mimeType);\n}\n"],"mappings":";;;;;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAAwE,SAgB1CE,gBAAgBA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,kBAAA;EAAAA,iBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA/B,SAAAC,QACbC,WAAwB,EACxBC,OAA2B;IAAA,IAAAC,IAAA,EAAAC,QAAA,EAAAC,eAAA;IAAA,OAAAP,YAAA,CAAAD,OAAA,CAAAS,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAP,IAAA,GAER,IAAAQ,sCAAsB,EAACV,WAAW,CAAC,IAAI,CAAC,CAAC,EAArDG,QAAQ,GAAAD,IAAA,CAARC,QAAQ;UAGTC,eAA+B,GAAGO,UAAU,CAACP,eAAe;UAClE,IAAAQ,mBAAM,EAACR,eAAe,CAAC;UAACG,QAAA,CAAAE,IAAA;UAAA,OAGXL,eAAe,CAACJ,WAAW,EAAEG,QAAQ,CAAC;QAAA;UAAA,OAAAI,QAAA,CAAAM,MAAA,WAAAN,QAAA,CAAAO,IAAA;QAAA;QAAA;UAAA,OAAAP,QAAA,CAAAQ,IAAA;MAAA;IAAA,GAAAhB,OAAA;EAAA,CACpD;EAAA,OAAAP,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"file":"parse-to-node-image.js","names":["_loaderUtils","require","_binaryImageApi","parseToNodeImage","_x","_x2","_parseToNodeImage","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","options","_ref","mimeType","_parseImageNode","wrap","_callee$","_context","prev","next","getBinaryImageMetadata","globalThis","assert","abrupt","sent","stop"],"sources":["../../../../src/lib/parsers/parse-to-node-image.ts"],"sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport type {ImageDataType} from '../../types';\nimport {assert} from '@loaders.gl/loader-utils';\nimport {getBinaryImageMetadata} from '../category-api/binary-image-api';\n\n// Note: These types should be consistent with loaders.gl/polyfills\n\ntype NDArray = {\n shape: number[];\n data: Uint8Array;\n width: number;\n height: number;\n components: number;\n layers: number[];\n};\n\ntype ParseImageNode = (arrayBuffer: ArrayBuffer, mimeType: string) => Promise<NDArray>;\n\n// Use polyfills if installed to parsed image using get-pixels\nexport async function parseToNodeImage(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions\n): Promise<ImageDataType> {\n const {mimeType} = getBinaryImageMetadata(arrayBuffer) || {};\n\n // @ts-ignore\n const _parseImageNode: ParseImageNode = globalThis._parseImageNode;\n assert(_parseImageNode); // '@loaders.gl/polyfills not installed'\n\n // @ts-expect-error TODO should we throw error in this case?\n return await _parseImageNode(arrayBuffer, mimeType);\n}\n"],"mappings":";;;;;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAAwE,SAgBlDE,gBAAgBA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,kBAAA;EAAAA,iBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA/B,SAAAC,QACLC,WAAwB,EACxBC,OAA2B;IAAA,IAAAC,IAAA,EAAAC,QAAA,EAAAC,eAAA;IAAA,OAAAP,YAAA,CAAAD,OAAA,CAAAS,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAP,IAAA,GAER,IAAAQ,sCAAsB,EAACV,WAAW,CAAC,IAAI,CAAC,CAAC,EAArDG,QAAQ,GAAAD,IAAA,CAARC,QAAQ;UAGTC,eAA+B,GAAGO,UAAU,CAACP,eAAe;UAClE,IAAAQ,mBAAM,EAACR,eAAe,CAAC;UAACG,QAAA,CAAAE,IAAA;UAAA,OAGXL,eAAe,CAACJ,WAAW,EAAEG,QAAQ,CAAC;QAAA;UAAA,OAAAI,QAAA,CAAAM,MAAA,WAAAN,QAAA,CAAAO,IAAA;QAAA;QAAA;UAAA,OAAAP,QAAA,CAAAQ,IAAA;MAAA;IAAA,GAAAhB,OAAA;EAAA,CACpD;EAAA,OAAAP,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
@@ -11,7 +11,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
11
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
13
  var _loaderUtils = require("@loaders.gl/loader-utils");
14
- var _parseImage = _interopRequireDefault(require("../parsers/parse-image"));
14
+ var _parseImage = require("../parsers/parse-image");
15
15
  var _parsedImageApi = require("../category-api/parsed-image-api");
16
16
  var _generateUrl = require("./generate-url");
17
17
  var _deepLoad = require("./deep-load");
@@ -34,7 +34,7 @@ function _loadImage() {
34
34
  case 3:
35
35
  imageUrls = _context.sent;
36
36
  _context.next = 6;
37
- return (0, _deepLoad.deepLoad)(imageUrls, _parseImage.default, options);
37
+ return (0, _deepLoad.deepLoad)(imageUrls, _parseImage.parseImage, options);
38
38
  case 6:
39
39
  return _context.abrupt("return", _context.sent);
40
40
  case 7:
@@ -98,7 +98,7 @@ function _getMipmappedImageUrls() {
98
98
  lod: 0
99
99
  }));
100
100
  _context3.next = 5;
101
- return (0, _deepLoad.shallowLoad)(url, _parseImage.default, options);
101
+ return (0, _deepLoad.shallowLoad)(url, _parseImage.parseImage, options);
102
102
  case 5:
103
103
  image = _context3.sent;
104
104
  _getImageSize = (0, _parsedImageApi.getImageSize)(image), width = _getImageSize.width, height = _getImageSize.height;
@@ -1 +1 @@
1
- {"version":3,"file":"load-image.js","names":["_loaderUtils","require","_parseImage","_interopRequireDefault","_parsedImageApi","_generateUrl","_deepLoad","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","loadImage","_x","_loadImage","_asyncToGenerator2","_regenerator","mark","_callee","getUrl","options","imageUrls","_args","wrap","_callee$","_context","prev","next","undefined","getImageUrls","sent","deepLoad","parseImage","abrupt","stop","_x2","_x3","_getImageUrls","_callee2","urlOptions","mipLevels","_args2","_callee2$","_context2","image","getMipmappedImageUrls","t0","generateUrl","_x4","_x5","_x6","_x7","_getMipmappedImageUrls","_callee3","urls","url","_getImageSize","width","height","mipLevel","_url","_callee3$","_context3","lod","shallowLoad","getImageSize","getMipLevels","assert","_ref","Math","floor","log2","max"],"sources":["../../../../src/lib/texture-api/load-image.ts"],"sourcesContent":["import {assert} from '@loaders.gl/loader-utils';\nimport parseImage from '../parsers/parse-image';\nimport {getImageSize} from '../category-api/parsed-image-api';\nimport {generateUrl} from './generate-url';\nimport {deepLoad, shallowLoad} from './deep-load';\n\nexport async function loadImage(getUrl, options = {}) {\n const imageUrls = await getImageUrls(getUrl, options);\n return await deepLoad(imageUrls, parseImage, options);\n}\n\nexport async function getImageUrls(getUrl, options, urlOptions = {}) {\n const mipLevels = (options && options.image && options.image.mipLevels) || 0;\n return mipLevels !== 0\n ? await getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions)\n : generateUrl(getUrl, options, urlOptions);\n}\n\nasync function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {\n const urls: string[] = [];\n\n // If no mip levels supplied, we need to load the level 0 image and calculate based on size\n if (mipLevels === 'auto') {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: 0});\n const image = await shallowLoad(url, parseImage, options);\n\n const {width, height} = getImageSize(image);\n mipLevels = getMipLevels({width, height});\n\n // TODO - push image and make `deepLoad` pass through non-url values, avoid loading twice?\n urls.push(url);\n }\n\n // We now know how many mipLevels we need, remaining image urls can now be constructed\n assert(mipLevels > 0);\n\n for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: mipLevel});\n urls.push(url);\n }\n\n return urls;\n}\n\n// Calculates number of mipmaps based on texture size (log2)\nexport function getMipLevels({width, height}) {\n return 1 + Math.floor(Math.log2(Math.max(width, height)));\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"load-image.js","names":["_loaderUtils","require","_parseImage","_parsedImageApi","_generateUrl","_deepLoad","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","loadImage","_x","_loadImage","_asyncToGenerator2","_regenerator","mark","_callee","getUrl","options","imageUrls","_args","wrap","_callee$","_context","prev","next","undefined","getImageUrls","sent","deepLoad","parseImage","abrupt","stop","_x2","_x3","_getImageUrls","_callee2","urlOptions","mipLevels","_args2","_callee2$","_context2","image","getMipmappedImageUrls","t0","generateUrl","_x4","_x5","_x6","_x7","_getMipmappedImageUrls","_callee3","urls","url","_getImageSize","width","height","mipLevel","_url","_callee3$","_context3","lod","shallowLoad","getImageSize","getMipLevels","assert","_ref","Math","floor","log2","max"],"sources":["../../../../src/lib/texture-api/load-image.ts"],"sourcesContent":["import {assert} from '@loaders.gl/loader-utils';\nimport {parseImage} from '../parsers/parse-image';\nimport {getImageSize} from '../category-api/parsed-image-api';\nimport {generateUrl} from './generate-url';\nimport {deepLoad, shallowLoad} from './deep-load';\n\nexport async function loadImage(getUrl, options = {}) {\n const imageUrls = await getImageUrls(getUrl, options);\n return await deepLoad(imageUrls, parseImage, options);\n}\n\nexport async function getImageUrls(getUrl, options, urlOptions = {}) {\n const mipLevels = (options && options.image && options.image.mipLevels) || 0;\n return mipLevels !== 0\n ? await getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions)\n : generateUrl(getUrl, options, urlOptions);\n}\n\nasync function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {\n const urls: string[] = [];\n\n // If no mip levels supplied, we need to load the level 0 image and calculate based on size\n if (mipLevels === 'auto') {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: 0});\n const image = await shallowLoad(url, parseImage, options);\n\n const {width, height} = getImageSize(image);\n mipLevels = getMipLevels({width, height});\n\n // TODO - push image and make `deepLoad` pass through non-url values, avoid loading twice?\n urls.push(url);\n }\n\n // We now know how many mipLevels we need, remaining image urls can now be constructed\n assert(mipLevels > 0);\n\n for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: mipLevel});\n urls.push(url);\n }\n\n return urls;\n}\n\n// Calculates number of mipmaps based on texture size (log2)\nexport function getMipLevels({width, height}) {\n return 1 + Math.floor(Math.log2(Math.max(width, height)));\n}\n"],"mappings":"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"}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.VERSION = void 0;
7
- var VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'latest';
7
+ var VERSION = typeof "4.0.0-alpha.24" !== 'undefined' ? "4.0.0-alpha.24" : 'latest';
8
8
  exports.VERSION = VERSION;
9
9
  //# sourceMappingURL=version.js.map
@@ -1,5 +1,5 @@
1
1
  import { VERSION } from './lib/utils/version';
2
- import parseImage from './lib/parsers/parse-image';
2
+ import { parseImage } from './lib/parsers/parse-image';
3
3
  import { getBinaryImageMetadata } from './lib/category-api/binary-image-api';
4
4
  const EXTENSIONS = ['png', 'jpg', 'jpeg', 'gif', 'webp', 'bmp', 'ico', 'svg', 'avif'];
5
5
  const MIME_TYPES = ['image/png', 'image/jpeg', 'image/gif', 'image/webp', 'image/avif', 'image/bmp', 'image/vnd.microsoft.icon', 'image/svg+xml'];
@@ -1 +1 @@
1
- {"version":3,"file":"image-loader.js","names":["VERSION","parseImage","getBinaryImageMetadata","EXTENSIONS","MIME_TYPES","DEFAULT_IMAGE_LOADER_OPTIONS","image","type","decode","ImageLoader","id","module","name","version","mimeTypes","extensions","parse","tests","arrayBuffer","Boolean","DataView","options"],"sources":["../../src/image-loader.ts"],"sourcesContent":["import type {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {ImageType} from './types';\n// import type { ImageType } from '@loaders.gl/schema';\nimport {VERSION} from './lib/utils/version';\nimport parseImage from './lib/parsers/parse-image';\nimport {getBinaryImageMetadata} from './lib/category-api/binary-image-api';\n\nconst EXTENSIONS = ['png', 'jpg', 'jpeg', 'gif', 'webp', 'bmp', 'ico', 'svg', 'avif'];\nconst MIME_TYPES = [\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/webp',\n 'image/avif',\n 'image/bmp',\n 'image/vnd.microsoft.icon',\n 'image/svg+xml'\n];\n\nexport type ImageLoaderOptions = LoaderOptions & {\n image?: {\n type?: 'auto' | 'data' | 'imagebitmap' | 'image';\n decode?: boolean;\n };\n imagebitmap?: ImageBitmapOptions;\n};\n\nconst DEFAULT_IMAGE_LOADER_OPTIONS: ImageLoaderOptions = {\n image: {\n type: 'auto',\n decode: true // if format is HTML\n }\n // imagebitmap: {} - passes (platform dependent) parameters to ImageBitmap constructor\n};\n\n/**\n * Loads a platform-specific image type\n * Note: This type can be used as input data to WebGL texture creation\n */\nexport const ImageLoader: LoaderWithParser<ImageType, never, ImageLoaderOptions> = {\n id: 'image',\n module: 'images',\n name: 'Images',\n version: VERSION,\n mimeTypes: MIME_TYPES,\n extensions: EXTENSIONS,\n parse: parseImage,\n // TODO: byteOffset, byteLength;\n tests: [(arrayBuffer) => Boolean(getBinaryImageMetadata(new DataView(arrayBuffer)))],\n options: DEFAULT_IMAGE_LOADER_OPTIONS\n};\n"],"mappings":"AAGA,SAAQA,OAAO,QAAO,qBAAqB;AAC3C,OAAOC,UAAU,MAAM,2BAA2B;AAClD,SAAQC,sBAAsB,QAAO,qCAAqC;AAE1E,MAAMC,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;AACrF,MAAMC,UAAU,GAAG,CACjB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,0BAA0B,EAC1B,eAAe,CAChB;AAUD,MAAMC,4BAAgD,GAAG;EACvDC,KAAK,EAAE;IACLC,IAAI,EAAE,MAAM;IACZC,MAAM,EAAE;EACV;AAEF,CAAC;AAMD,OAAO,MAAMC,WAAmE,GAAG;EACjFC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,QAAQ;EACdC,OAAO,EAAEb,OAAO;EAChBc,SAAS,EAAEV,UAAU;EACrBW,UAAU,EAAEZ,UAAU;EACtBa,KAAK,EAAEf,UAAU;EAEjBgB,KAAK,EAAE,CAAEC,WAAW,IAAKC,OAAO,CAACjB,sBAAsB,CAAC,IAAIkB,QAAQ,CAACF,WAAW,CAAC,CAAC,CAAC,CAAC;EACpFG,OAAO,EAAEhB;AACX,CAAC"}
1
+ {"version":3,"file":"image-loader.js","names":["VERSION","parseImage","getBinaryImageMetadata","EXTENSIONS","MIME_TYPES","DEFAULT_IMAGE_LOADER_OPTIONS","image","type","decode","ImageLoader","id","module","name","version","mimeTypes","extensions","parse","tests","arrayBuffer","Boolean","DataView","options"],"sources":["../../src/image-loader.ts"],"sourcesContent":["import type {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {ImageType} from './types';\n// import type { ImageType } from '@loaders.gl/schema';\nimport {VERSION} from './lib/utils/version';\nimport {parseImage} from './lib/parsers/parse-image';\nimport {getBinaryImageMetadata} from './lib/category-api/binary-image-api';\n\nconst EXTENSIONS = ['png', 'jpg', 'jpeg', 'gif', 'webp', 'bmp', 'ico', 'svg', 'avif'];\nconst MIME_TYPES = [\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/webp',\n 'image/avif',\n 'image/bmp',\n 'image/vnd.microsoft.icon',\n 'image/svg+xml'\n];\n\nexport type ImageLoaderOptions = LoaderOptions & {\n image?: {\n type?: 'auto' | 'data' | 'imagebitmap' | 'image';\n decode?: boolean;\n };\n imagebitmap?: ImageBitmapOptions;\n};\n\nconst DEFAULT_IMAGE_LOADER_OPTIONS: ImageLoaderOptions = {\n image: {\n type: 'auto',\n decode: true // if format is HTML\n }\n // imagebitmap: {} - passes (platform dependent) parameters to ImageBitmap constructor\n};\n\n/**\n * Loads a platform-specific image type\n * Note: This type can be used as input data to WebGL texture creation\n */\nexport const ImageLoader: LoaderWithParser<ImageType, never, ImageLoaderOptions> = {\n id: 'image',\n module: 'images',\n name: 'Images',\n version: VERSION,\n mimeTypes: MIME_TYPES,\n extensions: EXTENSIONS,\n parse: parseImage,\n // TODO: byteOffset, byteLength;\n tests: [(arrayBuffer) => Boolean(getBinaryImageMetadata(new DataView(arrayBuffer)))],\n options: DEFAULT_IMAGE_LOADER_OPTIONS\n};\n"],"mappings":"AAGA,SAAQA,OAAO,QAAO,qBAAqB;AAC3C,SAAQC,UAAU,QAAO,2BAA2B;AACpD,SAAQC,sBAAsB,QAAO,qCAAqC;AAE1E,MAAMC,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;AACrF,MAAMC,UAAU,GAAG,CACjB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,0BAA0B,EAC1B,eAAe,CAChB;AAUD,MAAMC,4BAAgD,GAAG;EACvDC,KAAK,EAAE;IACLC,IAAI,EAAE,MAAM;IACZC,MAAM,EAAE;EACV;AAEF,CAAC;AAMD,OAAO,MAAMC,WAAmE,GAAG;EACjFC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,QAAQ;EACdC,OAAO,EAAEb,OAAO;EAChBc,SAAS,EAAEV,UAAU;EACrBW,UAAU,EAAEZ,UAAU;EACtBa,KAAK,EAAEf,UAAU;EAEjBgB,KAAK,EAAE,CAAEC,WAAW,IAAKC,OAAO,CAACjB,sBAAsB,CAAC,IAAIkB,QAAQ,CAACF,WAAW,CAAC,CAAC,CAAC,CAAC;EACpFG,OAAO,EAAEhB;AACX,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { assert } from '@loaders.gl/loader-utils';
2
2
  import { isImageTypeSupported, getDefaultImageType } from '../category-api/image-type';
3
3
  import { getImageData } from '../category-api/parsed-image-api';
4
- import parseToImage from './parse-to-image';
5
- import parseToImageBitmap from './parse-to-image-bitmap';
6
- import parseToNodeImage from './parse-to-node-image';
7
- export default async function parseImage(arrayBuffer, options, context) {
4
+ import { parseToImage } from './parse-to-image';
5
+ import { parseToImageBitmap } from './parse-to-image-bitmap';
6
+ import { parseToNodeImage } from './parse-to-node-image';
7
+ export async function parseImage(arrayBuffer, options, context) {
8
8
  options = options || {};
9
9
  const imageOptions = options.image || {};
10
10
  const imageType = imageOptions.type || 'auto';
@@ -1 +1 @@
1
- {"version":3,"file":"parse-image.js","names":["assert","isImageTypeSupported","getDefaultImageType","getImageData","parseToImage","parseToImageBitmap","parseToNodeImage","parseImage","arrayBuffer","options","context","imageOptions","image","imageType","type","url","loadType","getLoadableImageType"],"sources":["../../../../src/lib/parsers/parse-image.ts"],"sourcesContent":["import type {LoaderContext} from '@loaders.gl/loader-utils';\nimport {assert} from '@loaders.gl/loader-utils';\nimport type {ImageType} from '../../types';\nimport type {ImageLoaderOptions} from '../../image-loader';\nimport {isImageTypeSupported, getDefaultImageType} from '../category-api/image-type';\nimport {getImageData} from '../category-api/parsed-image-api';\nimport parseToImage from './parse-to-image';\nimport parseToImageBitmap from './parse-to-image-bitmap';\nimport parseToNodeImage from './parse-to-node-image';\n\n// Parse to platform defined image type (data on node, ImageBitmap or HTMLImage on browser)\n// eslint-disable-next-line complexity\nexport default async function parseImage(\n arrayBuffer: ArrayBuffer,\n options?: ImageLoaderOptions,\n context?: LoaderContext\n): Promise<ImageType> {\n options = options || {};\n const imageOptions = options.image || {};\n\n // The user can request a specific output format via `options.image.type`\n const imageType = imageOptions.type || 'auto';\n\n const {url} = context || {};\n\n // Note: For options.image.type === `data`, we may still need to load as `image` or `imagebitmap`\n const loadType = getLoadableImageType(imageType);\n\n let image;\n switch (loadType) {\n case 'imagebitmap':\n image = await parseToImageBitmap(arrayBuffer, options, url);\n break;\n case 'image':\n image = await parseToImage(arrayBuffer, options, url);\n break;\n case 'data':\n // Node.js loads imagedata directly\n image = await parseToNodeImage(arrayBuffer, options);\n break;\n default:\n assert(false);\n }\n\n // Browser: if options.image.type === 'data', we can now extract data from the loaded image\n if (imageType === 'data') {\n image = getImageData(image);\n }\n\n return image;\n}\n\n// Get a loadable image type from image type\nfunction getLoadableImageType(type) {\n switch (type) {\n case 'auto':\n case 'data':\n // Browser: For image data we need still need to load using an image format\n // Node: the default image type is `data`.\n return getDefaultImageType();\n default:\n // Throw an error if not supported\n isImageTypeSupported(type);\n return type;\n }\n}\n"],"mappings":"AACA,SAAQA,MAAM,QAAO,0BAA0B;AAG/C,SAAQC,oBAAoB,EAAEC,mBAAmB,QAAO,4BAA4B;AACpF,SAAQC,YAAY,QAAO,kCAAkC;AAC7D,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,kBAAkB,MAAM,yBAAyB;AACxD,OAAOC,gBAAgB,MAAM,uBAAuB;AAIpD,eAAe,eAAeC,UAAUA,CACtCC,WAAwB,EACxBC,OAA4B,EAC5BC,OAAuB,EACH;EACpBD,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EACvB,MAAME,YAAY,GAAGF,OAAO,CAACG,KAAK,IAAI,CAAC,CAAC;EAGxC,MAAMC,SAAS,GAAGF,YAAY,CAACG,IAAI,IAAI,MAAM;EAE7C,MAAM;IAACC;EAAG,CAAC,GAAGL,OAAO,IAAI,CAAC,CAAC;EAG3B,MAAMM,QAAQ,GAAGC,oBAAoB,CAACJ,SAAS,CAAC;EAEhD,IAAID,KAAK;EACT,QAAQI,QAAQ;IACd,KAAK,aAAa;MAChBJ,KAAK,GAAG,MAAMP,kBAAkB,CAACG,WAAW,EAAEC,OAAO,EAAEM,GAAG,CAAC;MAC3D;IACF,KAAK,OAAO;MACVH,KAAK,GAAG,MAAMR,YAAY,CAACI,WAAW,EAAEC,OAAO,EAAEM,GAAG,CAAC;MACrD;IACF,KAAK,MAAM;MAETH,KAAK,GAAG,MAAMN,gBAAgB,CAACE,WAAW,EAAEC,OAAO,CAAC;MACpD;IACF;MACET,MAAM,CAAC,KAAK,CAAC;EACjB;EAGA,IAAIa,SAAS,KAAK,MAAM,EAAE;IACxBD,KAAK,GAAGT,YAAY,CAACS,KAAK,CAAC;EAC7B;EAEA,OAAOA,KAAK;AACd;AAGA,SAASK,oBAAoBA,CAACH,IAAI,EAAE;EAClC,QAAQA,IAAI;IACV,KAAK,MAAM;IACX,KAAK,MAAM;MAGT,OAAOZ,mBAAmB,CAAC,CAAC;IAC9B;MAEED,oBAAoB,CAACa,IAAI,CAAC;MAC1B,OAAOA,IAAI;EACf;AACF"}
1
+ {"version":3,"file":"parse-image.js","names":["assert","isImageTypeSupported","getDefaultImageType","getImageData","parseToImage","parseToImageBitmap","parseToNodeImage","parseImage","arrayBuffer","options","context","imageOptions","image","imageType","type","url","loadType","getLoadableImageType"],"sources":["../../../../src/lib/parsers/parse-image.ts"],"sourcesContent":["import type {LoaderContext} from '@loaders.gl/loader-utils';\nimport {assert} from '@loaders.gl/loader-utils';\nimport type {ImageType} from '../../types';\nimport type {ImageLoaderOptions} from '../../image-loader';\nimport {isImageTypeSupported, getDefaultImageType} from '../category-api/image-type';\nimport {getImageData} from '../category-api/parsed-image-api';\nimport {parseToImage} from './parse-to-image';\nimport {parseToImageBitmap} from './parse-to-image-bitmap';\nimport {parseToNodeImage} from './parse-to-node-image';\n\n// Parse to platform defined image type (data on node, ImageBitmap or HTMLImage on browser)\n// eslint-disable-next-line complexity\nexport async function parseImage(\n arrayBuffer: ArrayBuffer,\n options?: ImageLoaderOptions,\n context?: LoaderContext\n): Promise<ImageType> {\n options = options || {};\n const imageOptions = options.image || {};\n\n // The user can request a specific output format via `options.image.type`\n const imageType = imageOptions.type || 'auto';\n\n const {url} = context || {};\n\n // Note: For options.image.type === `data`, we may still need to load as `image` or `imagebitmap`\n const loadType = getLoadableImageType(imageType);\n\n let image;\n switch (loadType) {\n case 'imagebitmap':\n image = await parseToImageBitmap(arrayBuffer, options, url);\n break;\n case 'image':\n image = await parseToImage(arrayBuffer, options, url);\n break;\n case 'data':\n // Node.js loads imagedata directly\n image = await parseToNodeImage(arrayBuffer, options);\n break;\n default:\n assert(false);\n }\n\n // Browser: if options.image.type === 'data', we can now extract data from the loaded image\n if (imageType === 'data') {\n image = getImageData(image);\n }\n\n return image;\n}\n\n// Get a loadable image type from image type\nfunction getLoadableImageType(type) {\n switch (type) {\n case 'auto':\n case 'data':\n // Browser: For image data we need still need to load using an image format\n // Node: the default image type is `data`.\n return getDefaultImageType();\n default:\n // Throw an error if not supported\n isImageTypeSupported(type);\n return type;\n }\n}\n"],"mappings":"AACA,SAAQA,MAAM,QAAO,0BAA0B;AAG/C,SAAQC,oBAAoB,EAAEC,mBAAmB,QAAO,4BAA4B;AACpF,SAAQC,YAAY,QAAO,kCAAkC;AAC7D,SAAQC,YAAY,QAAO,kBAAkB;AAC7C,SAAQC,kBAAkB,QAAO,yBAAyB;AAC1D,SAAQC,gBAAgB,QAAO,uBAAuB;AAItD,OAAO,eAAeC,UAAUA,CAC9BC,WAAwB,EACxBC,OAA4B,EAC5BC,OAAuB,EACH;EACpBD,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EACvB,MAAME,YAAY,GAAGF,OAAO,CAACG,KAAK,IAAI,CAAC,CAAC;EAGxC,MAAMC,SAAS,GAAGF,YAAY,CAACG,IAAI,IAAI,MAAM;EAE7C,MAAM;IAACC;EAAG,CAAC,GAAGL,OAAO,IAAI,CAAC,CAAC;EAG3B,MAAMM,QAAQ,GAAGC,oBAAoB,CAACJ,SAAS,CAAC;EAEhD,IAAID,KAAK;EACT,QAAQI,QAAQ;IACd,KAAK,aAAa;MAChBJ,KAAK,GAAG,MAAMP,kBAAkB,CAACG,WAAW,EAAEC,OAAO,EAAEM,GAAG,CAAC;MAC3D;IACF,KAAK,OAAO;MACVH,KAAK,GAAG,MAAMR,YAAY,CAACI,WAAW,EAAEC,OAAO,EAAEM,GAAG,CAAC;MACrD;IACF,KAAK,MAAM;MAETH,KAAK,GAAG,MAAMN,gBAAgB,CAACE,WAAW,EAAEC,OAAO,CAAC;MACpD;IACF;MACET,MAAM,CAAC,KAAK,CAAC;EACjB;EAGA,IAAIa,SAAS,KAAK,MAAM,EAAE;IACxBD,KAAK,GAAGT,YAAY,CAACS,KAAK,CAAC;EAC7B;EAEA,OAAOA,KAAK;AACd;AAGA,SAASK,oBAAoBA,CAACH,IAAI,EAAE;EAClC,QAAQA,IAAI;IACV,KAAK,MAAM;IACX,KAAK,MAAM;MAGT,OAAOZ,mBAAmB,CAAC,CAAC;IAC9B;MAEED,oBAAoB,CAACa,IAAI,CAAC;MAC1B,OAAOA,IAAI;EACf;AACF"}
@@ -1,8 +1,8 @@
1
1
  import { isSVG, getBlob } from './svg-utils';
2
- import parseToImage from './parse-to-image';
2
+ import { parseToImage } from './parse-to-image';
3
3
  const EMPTY_OBJECT = {};
4
4
  let imagebitmapOptionsSupported = true;
5
- export default async function parseToImageBitmap(arrayBuffer, options, url) {
5
+ export async function parseToImageBitmap(arrayBuffer, options, url) {
6
6
  let blob;
7
7
  if (isSVG(url)) {
8
8
  const image = await parseToImage(arrayBuffer, options, url);
@@ -1 +1 @@
1
- {"version":3,"file":"parse-to-image-bitmap.js","names":["isSVG","getBlob","parseToImage","EMPTY_OBJECT","imagebitmapOptionsSupported","parseToImageBitmap","arrayBuffer","options","url","blob","image","imagebitmapOptions","imagebitmap","safeCreateImageBitmap","arguments","length","undefined","isEmptyObject","createImageBitmap","error","console","warn","object","key"],"sources":["../../../../src/lib/parsers/parse-to-image-bitmap.ts"],"sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport {isSVG, getBlob} from './svg-utils';\nimport parseToImage from './parse-to-image';\n\nconst EMPTY_OBJECT = {};\n\nlet imagebitmapOptionsSupported = true;\n\n/**\n * Asynchronously parses an array buffer into an ImageBitmap - this contains the decoded data\n * ImageBitmaps are supported on worker threads, but not supported on Edge, IE11 and Safari\n * https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap#Browser_compatibility\n *\n * TODO - createImageBitmap supports source rect (5 param overload), pass through?\n */\nexport default async function parseToImageBitmap(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions,\n url?: string\n): Promise<ImageBitmap> {\n let blob;\n\n // Cannot parse SVG directly to ImageBitmap, parse to Image first\n if (isSVG(url)) {\n // Note: this only works on main thread\n const image = await parseToImage(arrayBuffer, options, url);\n blob = image;\n } else {\n // Create blob from the array buffer\n blob = getBlob(arrayBuffer, url);\n }\n\n const imagebitmapOptions = options && options.imagebitmap;\n\n return await safeCreateImageBitmap(blob, imagebitmapOptions);\n}\n\n/**\n * Safely creates an imageBitmap with options\n * *\n * Firefox crashes if imagebitmapOptions is supplied\n * Avoid supplying if not provided or supported, remember if not supported\n */\nasync function safeCreateImageBitmap(\n blob: Blob,\n imagebitmapOptions: ImageBitmapOptions | null = null\n): Promise<ImageBitmap> {\n if (isEmptyObject(imagebitmapOptions) || !imagebitmapOptionsSupported) {\n imagebitmapOptions = null;\n }\n\n if (imagebitmapOptions) {\n try {\n // @ts-ignore Options\n return await createImageBitmap(blob, imagebitmapOptions);\n } catch (error) {\n console.warn(error); // eslint-disable-line\n imagebitmapOptionsSupported = false;\n }\n }\n\n return await createImageBitmap(blob);\n}\n\nfunction isEmptyObject(object) {\n // @ts-ignore\n for (const key in object || EMPTY_OBJECT) {\n return false;\n }\n return true;\n}\n"],"mappings":"AACA,SAAQA,KAAK,EAAEC,OAAO,QAAO,aAAa;AAC1C,OAAOC,YAAY,MAAM,kBAAkB;AAE3C,MAAMC,YAAY,GAAG,CAAC,CAAC;AAEvB,IAAIC,2BAA2B,GAAG,IAAI;AAStC,eAAe,eAAeC,kBAAkBA,CAC9CC,WAAwB,EACxBC,OAA2B,EAC3BC,GAAY,EACU;EACtB,IAAIC,IAAI;EAGR,IAAIT,KAAK,CAACQ,GAAG,CAAC,EAAE;IAEd,MAAME,KAAK,GAAG,MAAMR,YAAY,CAACI,WAAW,EAAEC,OAAO,EAAEC,GAAG,CAAC;IAC3DC,IAAI,GAAGC,KAAK;EACd,CAAC,MAAM;IAELD,IAAI,GAAGR,OAAO,CAACK,WAAW,EAAEE,GAAG,CAAC;EAClC;EAEA,MAAMG,kBAAkB,GAAGJ,OAAO,IAAIA,OAAO,CAACK,WAAW;EAEzD,OAAO,MAAMC,qBAAqB,CAACJ,IAAI,EAAEE,kBAAkB,CAAC;AAC9D;AAQA,eAAeE,qBAAqBA,CAClCJ,IAAU,EAEY;EAAA,IADtBE,kBAA6C,GAAAG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAEpD,IAAIG,aAAa,CAACN,kBAAkB,CAAC,IAAI,CAACP,2BAA2B,EAAE;IACrEO,kBAAkB,GAAG,IAAI;EAC3B;EAEA,IAAIA,kBAAkB,EAAE;IACtB,IAAI;MAEF,OAAO,MAAMO,iBAAiB,CAACT,IAAI,EAAEE,kBAAkB,CAAC;IAC1D,CAAC,CAAC,OAAOQ,KAAK,EAAE;MACdC,OAAO,CAACC,IAAI,CAACF,KAAK,CAAC;MACnBf,2BAA2B,GAAG,KAAK;IACrC;EACF;EAEA,OAAO,MAAMc,iBAAiB,CAACT,IAAI,CAAC;AACtC;AAEA,SAASQ,aAAaA,CAACK,MAAM,EAAE;EAE7B,KAAK,MAAMC,GAAG,IAAID,MAAM,IAAInB,YAAY,EAAE;IACxC,OAAO,KAAK;EACd;EACA,OAAO,IAAI;AACb"}
1
+ {"version":3,"file":"parse-to-image-bitmap.js","names":["isSVG","getBlob","parseToImage","EMPTY_OBJECT","imagebitmapOptionsSupported","parseToImageBitmap","arrayBuffer","options","url","blob","image","imagebitmapOptions","imagebitmap","safeCreateImageBitmap","arguments","length","undefined","isEmptyObject","createImageBitmap","error","console","warn","object","key"],"sources":["../../../../src/lib/parsers/parse-to-image-bitmap.ts"],"sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport {isSVG, getBlob} from './svg-utils';\nimport {parseToImage} from './parse-to-image';\n\nconst EMPTY_OBJECT = {};\n\nlet imagebitmapOptionsSupported = true;\n\n/**\n * Asynchronously parses an array buffer into an ImageBitmap - this contains the decoded data\n * ImageBitmaps are supported on worker threads, but not supported on Edge, IE11 and Safari\n * https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap#Browser_compatibility\n *\n * TODO - createImageBitmap supports source rect (5 param overload), pass through?\n */\nexport async function parseToImageBitmap(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions,\n url?: string\n): Promise<ImageBitmap> {\n let blob;\n\n // Cannot parse SVG directly to ImageBitmap, parse to Image first\n if (isSVG(url)) {\n // Note: this only works on main thread\n const image = await parseToImage(arrayBuffer, options, url);\n blob = image;\n } else {\n // Create blob from the array buffer\n blob = getBlob(arrayBuffer, url);\n }\n\n const imagebitmapOptions = options && options.imagebitmap;\n\n return await safeCreateImageBitmap(blob, imagebitmapOptions);\n}\n\n/**\n * Safely creates an imageBitmap with options\n * *\n * Firefox crashes if imagebitmapOptions is supplied\n * Avoid supplying if not provided or supported, remember if not supported\n */\nasync function safeCreateImageBitmap(\n blob: Blob,\n imagebitmapOptions: ImageBitmapOptions | null = null\n): Promise<ImageBitmap> {\n if (isEmptyObject(imagebitmapOptions) || !imagebitmapOptionsSupported) {\n imagebitmapOptions = null;\n }\n\n if (imagebitmapOptions) {\n try {\n // @ts-ignore Options\n return await createImageBitmap(blob, imagebitmapOptions);\n } catch (error) {\n console.warn(error); // eslint-disable-line\n imagebitmapOptionsSupported = false;\n }\n }\n\n return await createImageBitmap(blob);\n}\n\nfunction isEmptyObject(object) {\n // @ts-ignore\n for (const key in object || EMPTY_OBJECT) {\n return false;\n }\n return true;\n}\n"],"mappings":"AACA,SAAQA,KAAK,EAAEC,OAAO,QAAO,aAAa;AAC1C,SAAQC,YAAY,QAAO,kBAAkB;AAE7C,MAAMC,YAAY,GAAG,CAAC,CAAC;AAEvB,IAAIC,2BAA2B,GAAG,IAAI;AAStC,OAAO,eAAeC,kBAAkBA,CACtCC,WAAwB,EACxBC,OAA2B,EAC3BC,GAAY,EACU;EACtB,IAAIC,IAAI;EAGR,IAAIT,KAAK,CAACQ,GAAG,CAAC,EAAE;IAEd,MAAME,KAAK,GAAG,MAAMR,YAAY,CAACI,WAAW,EAAEC,OAAO,EAAEC,GAAG,CAAC;IAC3DC,IAAI,GAAGC,KAAK;EACd,CAAC,MAAM;IAELD,IAAI,GAAGR,OAAO,CAACK,WAAW,EAAEE,GAAG,CAAC;EAClC;EAEA,MAAMG,kBAAkB,GAAGJ,OAAO,IAAIA,OAAO,CAACK,WAAW;EAEzD,OAAO,MAAMC,qBAAqB,CAACJ,IAAI,EAAEE,kBAAkB,CAAC;AAC9D;AAQA,eAAeE,qBAAqBA,CAClCJ,IAAU,EAEY;EAAA,IADtBE,kBAA6C,GAAAG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAEpD,IAAIG,aAAa,CAACN,kBAAkB,CAAC,IAAI,CAACP,2BAA2B,EAAE;IACrEO,kBAAkB,GAAG,IAAI;EAC3B;EAEA,IAAIA,kBAAkB,EAAE;IACtB,IAAI;MAEF,OAAO,MAAMO,iBAAiB,CAACT,IAAI,EAAEE,kBAAkB,CAAC;IAC1D,CAAC,CAAC,OAAOQ,KAAK,EAAE;MACdC,OAAO,CAACC,IAAI,CAACF,KAAK,CAAC;MACnBf,2BAA2B,GAAG,KAAK;IACrC;EACF;EAEA,OAAO,MAAMc,iBAAiB,CAACT,IAAI,CAAC;AACtC;AAEA,SAASQ,aAAaA,CAACK,MAAM,EAAE;EAE7B,KAAK,MAAMC,GAAG,IAAID,MAAM,IAAInB,YAAY,EAAE;IACxC,OAAO,KAAK;EACd;EACA,OAAO,IAAI;AACb"}
@@ -1,5 +1,5 @@
1
1
  import { getBlobOrSVGDataUrl } from './svg-utils';
2
- export default async function parseToImage(arrayBuffer, options, url) {
2
+ export async function parseToImage(arrayBuffer, options, url) {
3
3
  const blobOrDataUrl = getBlobOrSVGDataUrl(arrayBuffer, url);
4
4
  const URL = self.URL || self.webkitURL;
5
5
  const objectUrl = typeof blobOrDataUrl !== 'string' && URL.createObjectURL(blobOrDataUrl);
@@ -1 +1 @@
1
- {"version":3,"file":"parse-to-image.js","names":["getBlobOrSVGDataUrl","parseToImage","arrayBuffer","options","url","blobOrDataUrl","URL","self","webkitURL","objectUrl","createObjectURL","loadToImage","revokeObjectURL","image","Image","src","decode","Promise","resolve","reject","onload","onerror","err","Error","concat","error"],"sources":["../../../../src/lib/parsers/parse-to-image.ts"],"sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport {getBlobOrSVGDataUrl} from './svg-utils';\n\n// Parses html image from array buffer\nexport default async function parseToImage(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions,\n url?: string\n): Promise<HTMLImageElement> {\n // Note: image parsing requires conversion to Blob (for createObjectURL).\n // Potentially inefficient for not using `response.blob()` (and for File / Blob inputs)...\n // But presumably not worth adding 'blob' flag to loader objects?\n\n const blobOrDataUrl = getBlobOrSVGDataUrl(arrayBuffer, url);\n const URL = self.URL || self.webkitURL;\n const objectUrl = typeof blobOrDataUrl !== 'string' && URL.createObjectURL(blobOrDataUrl);\n try {\n return await loadToImage(objectUrl || blobOrDataUrl, options);\n } finally {\n if (objectUrl) {\n URL.revokeObjectURL(objectUrl);\n }\n }\n}\n\nexport async function loadToImage(url, options): Promise<HTMLImageElement> {\n const image = new Image();\n image.src = url;\n\n // The `image.onload()` callback does not guarantee that the image has been decoded\n // so a main thread \"freeze\" can be incurred when using the image for the first time.\n // `Image.decode()` returns a promise that completes when image is decoded.\n\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode\n // Note: When calling `img.decode()`, we do not need to wait for `img.onload()`\n // Note: `HTMLImageElement.decode()` is not available in Edge and IE11\n if (options.image && options.image.decode && image.decode) {\n await image.decode();\n return image;\n }\n\n // Create a promise that tracks onload/onerror callbacks\n return await new Promise((resolve, reject) => {\n try {\n image.onload = () => resolve(image);\n image.onerror = (err) => reject(new Error(`Could not load image ${url}: ${err}`));\n } catch (error) {\n reject(error);\n }\n });\n}\n"],"mappings":"AACA,SAAQA,mBAAmB,QAAO,aAAa;AAG/C,eAAe,eAAeC,YAAYA,CACxCC,WAAwB,EACxBC,OAA2B,EAC3BC,GAAY,EACe;EAK3B,MAAMC,aAAa,GAAGL,mBAAmB,CAACE,WAAW,EAAEE,GAAG,CAAC;EAC3D,MAAME,GAAG,GAAGC,IAAI,CAACD,GAAG,IAAIC,IAAI,CAACC,SAAS;EACtC,MAAMC,SAAS,GAAG,OAAOJ,aAAa,KAAK,QAAQ,IAAIC,GAAG,CAACI,eAAe,CAACL,aAAa,CAAC;EACzF,IAAI;IACF,OAAO,MAAMM,WAAW,CAACF,SAAS,IAAIJ,aAAa,EAAEF,OAAO,CAAC;EAC/D,CAAC,SAAS;IACR,IAAIM,SAAS,EAAE;MACbH,GAAG,CAACM,eAAe,CAACH,SAAS,CAAC;IAChC;EACF;AACF;AAEA,OAAO,eAAeE,WAAWA,CAACP,GAAG,EAAED,OAAO,EAA6B;EACzE,MAAMU,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC;EACzBD,KAAK,CAACE,GAAG,GAAGX,GAAG;EASf,IAAID,OAAO,CAACU,KAAK,IAAIV,OAAO,CAACU,KAAK,CAACG,MAAM,IAAIH,KAAK,CAACG,MAAM,EAAE;IACzD,MAAMH,KAAK,CAACG,MAAM,CAAC,CAAC;IACpB,OAAOH,KAAK;EACd;EAGA,OAAO,MAAM,IAAII,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IAC5C,IAAI;MACFN,KAAK,CAACO,MAAM,GAAG,MAAMF,OAAO,CAACL,KAAK,CAAC;MACnCA,KAAK,CAACQ,OAAO,GAAIC,GAAG,IAAKH,MAAM,CAAC,IAAII,KAAK,yBAAAC,MAAA,CAAyBpB,GAAG,QAAAoB,MAAA,CAAKF,GAAG,CAAE,CAAC,CAAC;IACnF,CAAC,CAAC,OAAOG,KAAK,EAAE;MACdN,MAAM,CAACM,KAAK,CAAC;IACf;EACF,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"parse-to-image.js","names":["getBlobOrSVGDataUrl","parseToImage","arrayBuffer","options","url","blobOrDataUrl","URL","self","webkitURL","objectUrl","createObjectURL","loadToImage","revokeObjectURL","image","Image","src","decode","Promise","resolve","reject","onload","onerror","err","Error","concat","error"],"sources":["../../../../src/lib/parsers/parse-to-image.ts"],"sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport {getBlobOrSVGDataUrl} from './svg-utils';\n\n// Parses html image from array buffer\nexport async function parseToImage(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions,\n url?: string\n): Promise<HTMLImageElement> {\n // Note: image parsing requires conversion to Blob (for createObjectURL).\n // Potentially inefficient for not using `response.blob()` (and for File / Blob inputs)...\n // But presumably not worth adding 'blob' flag to loader objects?\n\n const blobOrDataUrl = getBlobOrSVGDataUrl(arrayBuffer, url);\n const URL = self.URL || self.webkitURL;\n const objectUrl = typeof blobOrDataUrl !== 'string' && URL.createObjectURL(blobOrDataUrl);\n try {\n return await loadToImage(objectUrl || blobOrDataUrl, options);\n } finally {\n if (objectUrl) {\n URL.revokeObjectURL(objectUrl);\n }\n }\n}\n\nexport async function loadToImage(url, options): Promise<HTMLImageElement> {\n const image = new Image();\n image.src = url;\n\n // The `image.onload()` callback does not guarantee that the image has been decoded\n // so a main thread \"freeze\" can be incurred when using the image for the first time.\n // `Image.decode()` returns a promise that completes when image is decoded.\n\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode\n // Note: When calling `img.decode()`, we do not need to wait for `img.onload()`\n // Note: `HTMLImageElement.decode()` is not available in Edge and IE11\n if (options.image && options.image.decode && image.decode) {\n await image.decode();\n return image;\n }\n\n // Create a promise that tracks onload/onerror callbacks\n return await new Promise((resolve, reject) => {\n try {\n image.onload = () => resolve(image);\n image.onerror = (err) => reject(new Error(`Could not load image ${url}: ${err}`));\n } catch (error) {\n reject(error);\n }\n });\n}\n"],"mappings":"AACA,SAAQA,mBAAmB,QAAO,aAAa;AAG/C,OAAO,eAAeC,YAAYA,CAChCC,WAAwB,EACxBC,OAA2B,EAC3BC,GAAY,EACe;EAK3B,MAAMC,aAAa,GAAGL,mBAAmB,CAACE,WAAW,EAAEE,GAAG,CAAC;EAC3D,MAAME,GAAG,GAAGC,IAAI,CAACD,GAAG,IAAIC,IAAI,CAACC,SAAS;EACtC,MAAMC,SAAS,GAAG,OAAOJ,aAAa,KAAK,QAAQ,IAAIC,GAAG,CAACI,eAAe,CAACL,aAAa,CAAC;EACzF,IAAI;IACF,OAAO,MAAMM,WAAW,CAACF,SAAS,IAAIJ,aAAa,EAAEF,OAAO,CAAC;EAC/D,CAAC,SAAS;IACR,IAAIM,SAAS,EAAE;MACbH,GAAG,CAACM,eAAe,CAACH,SAAS,CAAC;IAChC;EACF;AACF;AAEA,OAAO,eAAeE,WAAWA,CAACP,GAAG,EAAED,OAAO,EAA6B;EACzE,MAAMU,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC;EACzBD,KAAK,CAACE,GAAG,GAAGX,GAAG;EASf,IAAID,OAAO,CAACU,KAAK,IAAIV,OAAO,CAACU,KAAK,CAACG,MAAM,IAAIH,KAAK,CAACG,MAAM,EAAE;IACzD,MAAMH,KAAK,CAACG,MAAM,CAAC,CAAC;IACpB,OAAOH,KAAK;EACd;EAGA,OAAO,MAAM,IAAII,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IAC5C,IAAI;MACFN,KAAK,CAACO,MAAM,GAAG,MAAMF,OAAO,CAACL,KAAK,CAAC;MACnCA,KAAK,CAACQ,OAAO,GAAIC,GAAG,IAAKH,MAAM,CAAC,IAAII,KAAK,yBAAAC,MAAA,CAAyBpB,GAAG,QAAAoB,MAAA,CAAKF,GAAG,CAAE,CAAC,CAAC;IACnF,CAAC,CAAC,OAAOG,KAAK,EAAE;MACdN,MAAM,CAACM,KAAK,CAAC;IACf;EACF,CAAC,CAAC;AACJ"}
@@ -1,6 +1,6 @@
1
1
  import { assert } from '@loaders.gl/loader-utils';
2
2
  import { getBinaryImageMetadata } from '../category-api/binary-image-api';
3
- export default async function parseToNodeImage(arrayBuffer, options) {
3
+ export async function parseToNodeImage(arrayBuffer, options) {
4
4
  const {
5
5
  mimeType
6
6
  } = getBinaryImageMetadata(arrayBuffer) || {};
@@ -1 +1 @@
1
- {"version":3,"file":"parse-to-node-image.js","names":["assert","getBinaryImageMetadata","parseToNodeImage","arrayBuffer","options","mimeType","_parseImageNode","globalThis"],"sources":["../../../../src/lib/parsers/parse-to-node-image.ts"],"sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport type {ImageDataType} from '../../types';\nimport {assert} from '@loaders.gl/loader-utils';\nimport {getBinaryImageMetadata} from '../category-api/binary-image-api';\n\n// Note: These types should be consistent with loaders.gl/polyfills\n\ntype NDArray = {\n shape: number[];\n data: Uint8Array;\n width: number;\n height: number;\n components: number;\n layers: number[];\n};\n\ntype ParseImageNode = (arrayBuffer: ArrayBuffer, mimeType: string) => Promise<NDArray>;\n\n// Use polyfills if installed to parsed image using get-pixels\nexport default async function parseToNodeImage(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions\n): Promise<ImageDataType> {\n const {mimeType} = getBinaryImageMetadata(arrayBuffer) || {};\n\n // @ts-ignore\n const _parseImageNode: ParseImageNode = globalThis._parseImageNode;\n assert(_parseImageNode); // '@loaders.gl/polyfills not installed'\n\n // @ts-expect-error TODO should we throw error in this case?\n return await _parseImageNode(arrayBuffer, mimeType);\n}\n"],"mappings":"AAEA,SAAQA,MAAM,QAAO,0BAA0B;AAC/C,SAAQC,sBAAsB,QAAO,kCAAkC;AAgBvE,eAAe,eAAeC,gBAAgBA,CAC5CC,WAAwB,EACxBC,OAA2B,EACH;EACxB,MAAM;IAACC;EAAQ,CAAC,GAAGJ,sBAAsB,CAACE,WAAW,CAAC,IAAI,CAAC,CAAC;EAG5D,MAAMG,eAA+B,GAAGC,UAAU,CAACD,eAAe;EAClEN,MAAM,CAACM,eAAe,CAAC;EAGvB,OAAO,MAAMA,eAAe,CAACH,WAAW,EAAEE,QAAQ,CAAC;AACrD"}
1
+ {"version":3,"file":"parse-to-node-image.js","names":["assert","getBinaryImageMetadata","parseToNodeImage","arrayBuffer","options","mimeType","_parseImageNode","globalThis"],"sources":["../../../../src/lib/parsers/parse-to-node-image.ts"],"sourcesContent":["import type {ImageLoaderOptions} from '../../image-loader';\nimport type {ImageDataType} from '../../types';\nimport {assert} from '@loaders.gl/loader-utils';\nimport {getBinaryImageMetadata} from '../category-api/binary-image-api';\n\n// Note: These types should be consistent with loaders.gl/polyfills\n\ntype NDArray = {\n shape: number[];\n data: Uint8Array;\n width: number;\n height: number;\n components: number;\n layers: number[];\n};\n\ntype ParseImageNode = (arrayBuffer: ArrayBuffer, mimeType: string) => Promise<NDArray>;\n\n// Use polyfills if installed to parsed image using get-pixels\nexport async function parseToNodeImage(\n arrayBuffer: ArrayBuffer,\n options: ImageLoaderOptions\n): Promise<ImageDataType> {\n const {mimeType} = getBinaryImageMetadata(arrayBuffer) || {};\n\n // @ts-ignore\n const _parseImageNode: ParseImageNode = globalThis._parseImageNode;\n assert(_parseImageNode); // '@loaders.gl/polyfills not installed'\n\n // @ts-expect-error TODO should we throw error in this case?\n return await _parseImageNode(arrayBuffer, mimeType);\n}\n"],"mappings":"AAEA,SAAQA,MAAM,QAAO,0BAA0B;AAC/C,SAAQC,sBAAsB,QAAO,kCAAkC;AAgBvE,OAAO,eAAeC,gBAAgBA,CACpCC,WAAwB,EACxBC,OAA2B,EACH;EACxB,MAAM;IAACC;EAAQ,CAAC,GAAGJ,sBAAsB,CAACE,WAAW,CAAC,IAAI,CAAC,CAAC;EAG5D,MAAMG,eAA+B,GAAGC,UAAU,CAACD,eAAe;EAClEN,MAAM,CAACM,eAAe,CAAC;EAGvB,OAAO,MAAMA,eAAe,CAACH,WAAW,EAAEE,QAAQ,CAAC;AACrD"}
@@ -1,5 +1,5 @@
1
1
  import { assert } from '@loaders.gl/loader-utils';
2
- import parseImage from '../parsers/parse-image';
2
+ import { parseImage } from '../parsers/parse-image';
3
3
  import { getImageSize } from '../category-api/parsed-image-api';
4
4
  import { generateUrl } from './generate-url';
5
5
  import { deepLoad, shallowLoad } from './deep-load';
@@ -1 +1 @@
1
- {"version":3,"file":"load-image.js","names":["assert","parseImage","getImageSize","generateUrl","deepLoad","shallowLoad","loadImage","getUrl","options","arguments","length","undefined","imageUrls","getImageUrls","urlOptions","mipLevels","image","getMipmappedImageUrls","urls","url","lod","width","height","getMipLevels","push","mipLevel","_ref","Math","floor","log2","max"],"sources":["../../../../src/lib/texture-api/load-image.ts"],"sourcesContent":["import {assert} from '@loaders.gl/loader-utils';\nimport parseImage from '../parsers/parse-image';\nimport {getImageSize} from '../category-api/parsed-image-api';\nimport {generateUrl} from './generate-url';\nimport {deepLoad, shallowLoad} from './deep-load';\n\nexport async function loadImage(getUrl, options = {}) {\n const imageUrls = await getImageUrls(getUrl, options);\n return await deepLoad(imageUrls, parseImage, options);\n}\n\nexport async function getImageUrls(getUrl, options, urlOptions = {}) {\n const mipLevels = (options && options.image && options.image.mipLevels) || 0;\n return mipLevels !== 0\n ? await getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions)\n : generateUrl(getUrl, options, urlOptions);\n}\n\nasync function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {\n const urls: string[] = [];\n\n // If no mip levels supplied, we need to load the level 0 image and calculate based on size\n if (mipLevels === 'auto') {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: 0});\n const image = await shallowLoad(url, parseImage, options);\n\n const {width, height} = getImageSize(image);\n mipLevels = getMipLevels({width, height});\n\n // TODO - push image and make `deepLoad` pass through non-url values, avoid loading twice?\n urls.push(url);\n }\n\n // We now know how many mipLevels we need, remaining image urls can now be constructed\n assert(mipLevels > 0);\n\n for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: mipLevel});\n urls.push(url);\n }\n\n return urls;\n}\n\n// Calculates number of mipmaps based on texture size (log2)\nexport function getMipLevels({width, height}) {\n return 1 + Math.floor(Math.log2(Math.max(width, height)));\n}\n"],"mappings":"AAAA,SAAQA,MAAM,QAAO,0BAA0B;AAC/C,OAAOC,UAAU,MAAM,wBAAwB;AAC/C,SAAQC,YAAY,QAAO,kCAAkC;AAC7D,SAAQC,WAAW,QAAO,gBAAgB;AAC1C,SAAQC,QAAQ,EAAEC,WAAW,QAAO,aAAa;AAEjD,OAAO,eAAeC,SAASA,CAACC,MAAM,EAAgB;EAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAClD,MAAMG,SAAS,GAAG,MAAMC,YAAY,CAACN,MAAM,EAAEC,OAAO,CAAC;EACrD,OAAO,MAAMJ,QAAQ,CAACQ,SAAS,EAAEX,UAAU,EAAEO,OAAO,CAAC;AACvD;AAEA,OAAO,eAAeK,YAAYA,CAACN,MAAM,EAAEC,OAAO,EAAmB;EAAA,IAAjBM,UAAU,GAAAL,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACjE,MAAMM,SAAS,GAAIP,OAAO,IAAIA,OAAO,CAACQ,KAAK,IAAIR,OAAO,CAACQ,KAAK,CAACD,SAAS,IAAK,CAAC;EAC5E,OAAOA,SAAS,KAAK,CAAC,GAClB,MAAME,qBAAqB,CAACV,MAAM,EAAEQ,SAAS,EAAEP,OAAO,EAAEM,UAAU,CAAC,GACnEX,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAEM,UAAU,CAAC;AAC9C;AAEA,eAAeG,qBAAqBA,CAACV,MAAM,EAAEQ,SAAS,EAAEP,OAAO,EAAEM,UAAU,EAAE;EAC3E,MAAMI,IAAc,GAAG,EAAE;EAGzB,IAAIH,SAAS,KAAK,MAAM,EAAE;IACxB,MAAMI,GAAG,GAAGhB,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAE;MAAC,GAAGM,UAAU;MAAEM,GAAG,EAAE;IAAC,CAAC,CAAC;IACjE,MAAMJ,KAAK,GAAG,MAAMX,WAAW,CAACc,GAAG,EAAElB,UAAU,EAAEO,OAAO,CAAC;IAEzD,MAAM;MAACa,KAAK;MAAEC;IAAM,CAAC,GAAGpB,YAAY,CAACc,KAAK,CAAC;IAC3CD,SAAS,GAAGQ,YAAY,CAAC;MAACF,KAAK;MAAEC;IAAM,CAAC,CAAC;IAGzCJ,IAAI,CAACM,IAAI,CAACL,GAAG,CAAC;EAChB;EAGAnB,MAAM,CAACe,SAAS,GAAG,CAAC,CAAC;EAErB,KAAK,IAAIU,QAAQ,GAAGP,IAAI,CAACR,MAAM,EAAEe,QAAQ,GAAGV,SAAS,EAAE,EAAEU,QAAQ,EAAE;IACjE,MAAMN,GAAG,GAAGhB,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAE;MAAC,GAAGM,UAAU;MAAEM,GAAG,EAAEK;IAAQ,CAAC,CAAC;IACxEP,IAAI,CAACM,IAAI,CAACL,GAAG,CAAC;EAChB;EAEA,OAAOD,IAAI;AACb;AAGA,OAAO,SAASK,YAAYA,CAAAG,IAAA,EAAkB;EAAA,IAAjB;IAACL,KAAK;IAAEC;EAAM,CAAC,GAAAI,IAAA;EAC1C,OAAO,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,IAAI,CAACF,IAAI,CAACG,GAAG,CAACT,KAAK,EAAEC,MAAM,CAAC,CAAC,CAAC;AAC3D"}
1
+ {"version":3,"file":"load-image.js","names":["assert","parseImage","getImageSize","generateUrl","deepLoad","shallowLoad","loadImage","getUrl","options","arguments","length","undefined","imageUrls","getImageUrls","urlOptions","mipLevels","image","getMipmappedImageUrls","urls","url","lod","width","height","getMipLevels","push","mipLevel","_ref","Math","floor","log2","max"],"sources":["../../../../src/lib/texture-api/load-image.ts"],"sourcesContent":["import {assert} from '@loaders.gl/loader-utils';\nimport {parseImage} from '../parsers/parse-image';\nimport {getImageSize} from '../category-api/parsed-image-api';\nimport {generateUrl} from './generate-url';\nimport {deepLoad, shallowLoad} from './deep-load';\n\nexport async function loadImage(getUrl, options = {}) {\n const imageUrls = await getImageUrls(getUrl, options);\n return await deepLoad(imageUrls, parseImage, options);\n}\n\nexport async function getImageUrls(getUrl, options, urlOptions = {}) {\n const mipLevels = (options && options.image && options.image.mipLevels) || 0;\n return mipLevels !== 0\n ? await getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions)\n : generateUrl(getUrl, options, urlOptions);\n}\n\nasync function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {\n const urls: string[] = [];\n\n // If no mip levels supplied, we need to load the level 0 image and calculate based on size\n if (mipLevels === 'auto') {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: 0});\n const image = await shallowLoad(url, parseImage, options);\n\n const {width, height} = getImageSize(image);\n mipLevels = getMipLevels({width, height});\n\n // TODO - push image and make `deepLoad` pass through non-url values, avoid loading twice?\n urls.push(url);\n }\n\n // We now know how many mipLevels we need, remaining image urls can now be constructed\n assert(mipLevels > 0);\n\n for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: mipLevel});\n urls.push(url);\n }\n\n return urls;\n}\n\n// Calculates number of mipmaps based on texture size (log2)\nexport function getMipLevels({width, height}) {\n return 1 + Math.floor(Math.log2(Math.max(width, height)));\n}\n"],"mappings":"AAAA,SAAQA,MAAM,QAAO,0BAA0B;AAC/C,SAAQC,UAAU,QAAO,wBAAwB;AACjD,SAAQC,YAAY,QAAO,kCAAkC;AAC7D,SAAQC,WAAW,QAAO,gBAAgB;AAC1C,SAAQC,QAAQ,EAAEC,WAAW,QAAO,aAAa;AAEjD,OAAO,eAAeC,SAASA,CAACC,MAAM,EAAgB;EAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAClD,MAAMG,SAAS,GAAG,MAAMC,YAAY,CAACN,MAAM,EAAEC,OAAO,CAAC;EACrD,OAAO,MAAMJ,QAAQ,CAACQ,SAAS,EAAEX,UAAU,EAAEO,OAAO,CAAC;AACvD;AAEA,OAAO,eAAeK,YAAYA,CAACN,MAAM,EAAEC,OAAO,EAAmB;EAAA,IAAjBM,UAAU,GAAAL,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACjE,MAAMM,SAAS,GAAIP,OAAO,IAAIA,OAAO,CAACQ,KAAK,IAAIR,OAAO,CAACQ,KAAK,CAACD,SAAS,IAAK,CAAC;EAC5E,OAAOA,SAAS,KAAK,CAAC,GAClB,MAAME,qBAAqB,CAACV,MAAM,EAAEQ,SAAS,EAAEP,OAAO,EAAEM,UAAU,CAAC,GACnEX,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAEM,UAAU,CAAC;AAC9C;AAEA,eAAeG,qBAAqBA,CAACV,MAAM,EAAEQ,SAAS,EAAEP,OAAO,EAAEM,UAAU,EAAE;EAC3E,MAAMI,IAAc,GAAG,EAAE;EAGzB,IAAIH,SAAS,KAAK,MAAM,EAAE;IACxB,MAAMI,GAAG,GAAGhB,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAE;MAAC,GAAGM,UAAU;MAAEM,GAAG,EAAE;IAAC,CAAC,CAAC;IACjE,MAAMJ,KAAK,GAAG,MAAMX,WAAW,CAACc,GAAG,EAAElB,UAAU,EAAEO,OAAO,CAAC;IAEzD,MAAM;MAACa,KAAK;MAAEC;IAAM,CAAC,GAAGpB,YAAY,CAACc,KAAK,CAAC;IAC3CD,SAAS,GAAGQ,YAAY,CAAC;MAACF,KAAK;MAAEC;IAAM,CAAC,CAAC;IAGzCJ,IAAI,CAACM,IAAI,CAACL,GAAG,CAAC;EAChB;EAGAnB,MAAM,CAACe,SAAS,GAAG,CAAC,CAAC;EAErB,KAAK,IAAIU,QAAQ,GAAGP,IAAI,CAACR,MAAM,EAAEe,QAAQ,GAAGV,SAAS,EAAE,EAAEU,QAAQ,EAAE;IACjE,MAAMN,GAAG,GAAGhB,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAE;MAAC,GAAGM,UAAU;MAAEM,GAAG,EAAEK;IAAQ,CAAC,CAAC;IACxEP,IAAI,CAACM,IAAI,CAACL,GAAG,CAAC;EAChB;EAEA,OAAOD,IAAI;AACb;AAGA,OAAO,SAASK,YAAYA,CAAAG,IAAA,EAAkB;EAAA,IAAjB;IAACL,KAAK;IAAEC;EAAM,CAAC,GAAAI,IAAA;EAC1C,OAAO,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,IAAI,CAACF,IAAI,CAACG,GAAG,CAACT,KAAK,EAAEC,MAAM,CAAC,CAAC,CAAC;AAC3D"}
@@ -1,2 +1,2 @@
1
- export const VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'latest';
1
+ export const VERSION = typeof "4.0.0-alpha.24" !== 'undefined' ? "4.0.0-alpha.24" : 'latest';
2
2
  //# sourceMappingURL=version.js.map
@@ -1,5 +1,5 @@
1
1
  import type { LoaderContext } from '@loaders.gl/loader-utils';
2
2
  import type { ImageType } from '../../types';
3
3
  import type { ImageLoaderOptions } from '../../image-loader';
4
- export default function parseImage(arrayBuffer: ArrayBuffer, options?: ImageLoaderOptions, context?: LoaderContext): Promise<ImageType>;
4
+ export declare function parseImage(arrayBuffer: ArrayBuffer, options?: ImageLoaderOptions, context?: LoaderContext): Promise<ImageType>;
5
5
  //# sourceMappingURL=parse-image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-image.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAS3D,wBAA8B,UAAU,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,SAAS,CAAC,CAkCpB"}
1
+ {"version":3,"file":"parse-image.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAS3D,wBAAsB,UAAU,CAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,SAAS,CAAC,CAkCpB"}
@@ -6,5 +6,5 @@ import type { ImageLoaderOptions } from '../../image-loader';
6
6
  *
7
7
  * TODO - createImageBitmap supports source rect (5 param overload), pass through?
8
8
  */
9
- export default function parseToImageBitmap(arrayBuffer: ArrayBuffer, options: ImageLoaderOptions, url?: string): Promise<ImageBitmap>;
9
+ export declare function parseToImageBitmap(arrayBuffer: ArrayBuffer, options: ImageLoaderOptions, url?: string): Promise<ImageBitmap>;
10
10
  //# sourceMappingURL=parse-to-image-bitmap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-to-image-bitmap.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-to-image-bitmap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAQ3D;;;;;;GAMG;AACH,wBAA8B,kBAAkB,CAC9C,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,kBAAkB,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,CAAC,CAgBtB"}
1
+ {"version":3,"file":"parse-to-image-bitmap.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-to-image-bitmap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAQ3D;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,kBAAkB,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,CAAC,CAgBtB"}
@@ -1,4 +1,4 @@
1
1
  import type { ImageLoaderOptions } from '../../image-loader';
2
- export default function parseToImage(arrayBuffer: ArrayBuffer, options: ImageLoaderOptions, url?: string): Promise<HTMLImageElement>;
2
+ export declare function parseToImage(arrayBuffer: ArrayBuffer, options: ImageLoaderOptions, url?: string): Promise<HTMLImageElement>;
3
3
  export declare function loadToImage(url: any, options: any): Promise<HTMLImageElement>;
4
4
  //# sourceMappingURL=parse-to-image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-to-image.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-to-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAI3D,wBAA8B,YAAY,CACxC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,kBAAkB,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAe3B;AAED,wBAAsB,WAAW,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyBzE"}
1
+ {"version":3,"file":"parse-to-image.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-to-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAI3D,wBAAsB,YAAY,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,kBAAkB,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAe3B;AAED,wBAAsB,WAAW,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyBzE"}
@@ -1,4 +1,4 @@
1
1
  import type { ImageLoaderOptions } from '../../image-loader';
2
2
  import type { ImageDataType } from '../../types';
3
- export default function parseToNodeImage(arrayBuffer: ArrayBuffer, options: ImageLoaderOptions): Promise<ImageDataType>;
3
+ export declare function parseToNodeImage(arrayBuffer: ArrayBuffer, options: ImageLoaderOptions): Promise<ImageDataType>;
4
4
  //# sourceMappingURL=parse-to-node-image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-to-node-image.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-to-node-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAkB/C,wBAA8B,gBAAgB,CAC5C,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,aAAa,CAAC,CASxB"}
1
+ {"version":3,"file":"parse-to-node-image.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-to-node-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAkB/C,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,aAAa,CAAC,CASxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/images",
3
- "version": "4.0.0-alpha.22",
3
+ "version": "4.0.0-alpha.24",
4
4
  "description": "Framework-independent loaders and writers for images (PNG, JPG, ...)",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -32,9 +32,9 @@
32
32
  "build-bundle": "esbuild src/bundle.ts --outfile=dist/dist.min.js --bundle --minify --sourcemap"
33
33
  },
34
34
  "dependencies": {
35
- "@loaders.gl/loader-utils": "4.0.0-alpha.22"
35
+ "@loaders.gl/loader-utils": "4.0.0-alpha.24"
36
36
  },
37
- "gitHead": "0da838c506d1275383f2fd3d244d9c72b25397d2",
37
+ "gitHead": "97a8990595c132fb14e3445a8768d9f4cb98ff05",
38
38
  "devDependencies": {
39
39
  "@types/get-pixels": "^3.3.2"
40
40
  }
@@ -2,7 +2,7 @@ import type {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
2
2
  import type {ImageType} from './types';
3
3
  // import type { ImageType } from '@loaders.gl/schema';
4
4
  import {VERSION} from './lib/utils/version';
5
- import parseImage from './lib/parsers/parse-image';
5
+ import {parseImage} from './lib/parsers/parse-image';
6
6
  import {getBinaryImageMetadata} from './lib/category-api/binary-image-api';
7
7
 
8
8
  const EXTENSIONS = ['png', 'jpg', 'jpeg', 'gif', 'webp', 'bmp', 'ico', 'svg', 'avif'];
@@ -4,13 +4,13 @@ import type {ImageType} from '../../types';
4
4
  import type {ImageLoaderOptions} from '../../image-loader';
5
5
  import {isImageTypeSupported, getDefaultImageType} from '../category-api/image-type';
6
6
  import {getImageData} from '../category-api/parsed-image-api';
7
- import parseToImage from './parse-to-image';
8
- import parseToImageBitmap from './parse-to-image-bitmap';
9
- import parseToNodeImage from './parse-to-node-image';
7
+ import {parseToImage} from './parse-to-image';
8
+ import {parseToImageBitmap} from './parse-to-image-bitmap';
9
+ import {parseToNodeImage} from './parse-to-node-image';
10
10
 
11
11
  // Parse to platform defined image type (data on node, ImageBitmap or HTMLImage on browser)
12
12
  // eslint-disable-next-line complexity
13
- export default async function parseImage(
13
+ export async function parseImage(
14
14
  arrayBuffer: ArrayBuffer,
15
15
  options?: ImageLoaderOptions,
16
16
  context?: LoaderContext
@@ -1,6 +1,6 @@
1
1
  import type {ImageLoaderOptions} from '../../image-loader';
2
2
  import {isSVG, getBlob} from './svg-utils';
3
- import parseToImage from './parse-to-image';
3
+ import {parseToImage} from './parse-to-image';
4
4
 
5
5
  const EMPTY_OBJECT = {};
6
6
 
@@ -13,7 +13,7 @@ let imagebitmapOptionsSupported = true;
13
13
  *
14
14
  * TODO - createImageBitmap supports source rect (5 param overload), pass through?
15
15
  */
16
- export default async function parseToImageBitmap(
16
+ export async function parseToImageBitmap(
17
17
  arrayBuffer: ArrayBuffer,
18
18
  options: ImageLoaderOptions,
19
19
  url?: string
@@ -2,7 +2,7 @@ import type {ImageLoaderOptions} from '../../image-loader';
2
2
  import {getBlobOrSVGDataUrl} from './svg-utils';
3
3
 
4
4
  // Parses html image from array buffer
5
- export default async function parseToImage(
5
+ export async function parseToImage(
6
6
  arrayBuffer: ArrayBuffer,
7
7
  options: ImageLoaderOptions,
8
8
  url?: string
@@ -17,7 +17,7 @@ type NDArray = {
17
17
  type ParseImageNode = (arrayBuffer: ArrayBuffer, mimeType: string) => Promise<NDArray>;
18
18
 
19
19
  // Use polyfills if installed to parsed image using get-pixels
20
- export default async function parseToNodeImage(
20
+ export async function parseToNodeImage(
21
21
  arrayBuffer: ArrayBuffer,
22
22
  options: ImageLoaderOptions
23
23
  ): Promise<ImageDataType> {
@@ -1,5 +1,5 @@
1
1
  import {assert} from '@loaders.gl/loader-utils';
2
- import parseImage from '../parsers/parse-image';
2
+ import {parseImage} from '../parsers/parse-image';
3
3
  import {getImageSize} from '../category-api/parsed-image-api';
4
4
  import {generateUrl} from './generate-url';
5
5
  import {deepLoad, shallowLoad} from './deep-load';
package/dist/bundle.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
- // @ts-nocheck
3
- const moduleExports = require('./index');
4
- globalThis.loaders = globalThis.loaders || {};
5
- module.exports = Object.assign(globalThis.loaders, moduleExports);
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ImageLoader = void 0;
7
- // import type { ImageType } from '@loaders.gl/schema';
8
- const version_1 = require("./lib/utils/version");
9
- const parse_image_1 = __importDefault(require("./lib/parsers/parse-image"));
10
- const binary_image_api_1 = require("./lib/category-api/binary-image-api");
11
- const EXTENSIONS = ['png', 'jpg', 'jpeg', 'gif', 'webp', 'bmp', 'ico', 'svg', 'avif'];
12
- const MIME_TYPES = [
13
- 'image/png',
14
- 'image/jpeg',
15
- 'image/gif',
16
- 'image/webp',
17
- 'image/avif',
18
- 'image/bmp',
19
- 'image/vnd.microsoft.icon',
20
- 'image/svg+xml'
21
- ];
22
- const DEFAULT_IMAGE_LOADER_OPTIONS = {
23
- image: {
24
- type: 'auto',
25
- decode: true // if format is HTML
26
- }
27
- // imagebitmap: {} - passes (platform dependent) parameters to ImageBitmap constructor
28
- };
29
- /**
30
- * Loads a platform-specific image type
31
- * Note: This type can be used as input data to WebGL texture creation
32
- */
33
- exports.ImageLoader = {
34
- id: 'image',
35
- module: 'images',
36
- name: 'Images',
37
- version: version_1.VERSION,
38
- mimeTypes: MIME_TYPES,
39
- extensions: EXTENSIONS,
40
- parse: parse_image_1.default,
41
- // TODO: byteOffset, byteLength;
42
- tests: [(arrayBuffer) => Boolean((0, binary_image_api_1.getBinaryImageMetadata)(new DataView(arrayBuffer)))],
43
- options: DEFAULT_IMAGE_LOADER_OPTIONS
44
- };
@@ -1,21 +0,0 @@
1
- "use strict";
2
- // loaders.gl, MIT license
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ImageWriter = void 0;
5
- const version_1 = require("./lib/utils/version");
6
- const encode_image_1 = require("./lib/encoders/encode-image");
7
- /** Writer for image data */
8
- exports.ImageWriter = {
9
- name: 'Images',
10
- id: 'image',
11
- module: 'images',
12
- version: version_1.VERSION,
13
- extensions: ['jpeg'],
14
- options: {
15
- image: {
16
- mimeType: 'image/png',
17
- jpegQuality: null
18
- }
19
- },
20
- encode: encode_image_1.encodeImage
21
- };
package/dist/index.js DELETED
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadImage = exports.isImageFormatSupported = exports.getSupportedImageFormats = exports.getImageData = exports.getImageSize = exports.getImageType = exports.isImage = exports.getDefaultImageType = exports.isImageTypeSupported = exports.getBinaryImageMetadata = exports.ImageWriter = exports.ImageLoader = void 0;
4
- // LOADERS AND WRITERS
5
- var image_loader_1 = require("./image-loader");
6
- Object.defineProperty(exports, "ImageLoader", { enumerable: true, get: function () { return image_loader_1.ImageLoader; } });
7
- var image_writer_1 = require("./image-writer");
8
- Object.defineProperty(exports, "ImageWriter", { enumerable: true, get: function () { return image_writer_1.ImageWriter; } });
9
- // IMAGE CATEGORY API
10
- // Binary Image API
11
- var binary_image_api_1 = require("./lib/category-api/binary-image-api");
12
- Object.defineProperty(exports, "getBinaryImageMetadata", { enumerable: true, get: function () { return binary_image_api_1.getBinaryImageMetadata; } });
13
- // Parsed Image API
14
- var image_type_1 = require("./lib/category-api/image-type");
15
- Object.defineProperty(exports, "isImageTypeSupported", { enumerable: true, get: function () { return image_type_1.isImageTypeSupported; } });
16
- Object.defineProperty(exports, "getDefaultImageType", { enumerable: true, get: function () { return image_type_1.getDefaultImageType; } });
17
- var parsed_image_api_1 = require("./lib/category-api/parsed-image-api");
18
- Object.defineProperty(exports, "isImage", { enumerable: true, get: function () { return parsed_image_api_1.isImage; } });
19
- Object.defineProperty(exports, "getImageType", { enumerable: true, get: function () { return parsed_image_api_1.getImageType; } });
20
- Object.defineProperty(exports, "getImageSize", { enumerable: true, get: function () { return parsed_image_api_1.getImageSize; } });
21
- Object.defineProperty(exports, "getImageData", { enumerable: true, get: function () { return parsed_image_api_1.getImageData; } });
22
- // EXPERIMENTAL
23
- var image_format_1 = require("./lib/category-api/image-format");
24
- Object.defineProperty(exports, "getSupportedImageFormats", { enumerable: true, get: function () { return image_format_1.getSupportedImageFormats; } });
25
- var image_format_2 = require("./lib/category-api/image-format");
26
- Object.defineProperty(exports, "isImageFormatSupported", { enumerable: true, get: function () { return image_format_2.isImageFormatSupported; } });
27
- // DEPRECATED - Remove in V4 (fix dependency in luma.gl)
28
- var load_image_1 = require("./lib/texture-api/load-image");
29
- Object.defineProperty(exports, "loadImage", { enumerable: true, get: function () { return load_image_1.loadImage; } });