UNPKG

cesium

Version:

CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.

58 lines (52 loc) 1.84 kB
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); //>>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 })); } blobUrl = window.URL.createObjectURL(blob); var resource = new Resource({ url: blobUrl, request: request }); return resource.fetchImage({ flipY : flipY }); }) .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;