expo-asset
Version:
An Expo universal module to download assets and pass them into other APIs
31 lines (27 loc) • 731 B
text/typescript
/* eslint-env browser */
import { getFilename } from './AssetUris';
type ImageInfo = {
name: string;
width: number;
height: number;
};
export function isImageType(type: string): boolean {
return /^(jpeg|jpg|gif|png|bmp|webp|heic)$/i.test(type);
}
export function getImageInfoAsync(url: string): Promise<ImageInfo> {
if (typeof window === 'undefined') {
return Promise.resolve({ name: getFilename(url), width: 0, height: 0 });
}
return new Promise((resolve, reject) => {
const img = new Image();
img.onerror = reject;
img.onload = () => {
resolve({
name: getFilename(url),
width: img.naturalWidth,
height: img.naturalHeight,
});
};
img.src = url;
});
}