import when from "../ThirdParty/when.js"; import Check from "./Check.js"; import defaultValue from "./defaultValue.js"; import defined from "./defined.js"; import Resource from "./Resource.js"; /** * @private */ function loadImageFromTypedArray(options) { var uint8Array = options.uint8Array; var format = options.format; var request = options.request; var flipY = defaultValue(options.flipY, false); var skipColorSpaceConversion = defaultValue( options.skipColorSpaceConversion, false ); //>>includeStart('debug', pragmas.debug); Check.typeOf.object("uint8Array", uint8Array); Check.typeOf.string("format", format); //>>includeEnd('debug'); var blob = new Blob([uint8Array], { type: format, }); var blobUrl; return Resource.supportsImageBitmapOptions() .then(function (result) { if (result) { return when( Resource.createImageBitmapFromBlob(blob, { flipY: flipY, premultiplyAlpha: false, skipColorSpaceConversion: skipColorSpaceConversion, }) ); } blobUrl = window.URL.createObjectURL(blob); var resource = new Resource({ url: blobUrl, request: request, }); return resource.fetchImage({ flipY: flipY, skipColorSpaceConversion: skipColorSpaceConversion, }); }) .then(function (result) { if (defined(blobUrl)) { window.URL.revokeObjectURL(blobUrl); } return result; }) .otherwise(function (error) { if (defined(blobUrl)) { window.URL.revokeObjectURL(blobUrl); } return when.reject(error); }); } export default loadImageFromTypedArray;