utopia-ui/src/Utils/getImageDimensions.ts
2025-06-10 12:59:43 +02:00

31 lines
762 B
TypeScript

export const getImageDimensions = (
file: File,
): Promise<{
width: number
height: number
}> =>
// eslint-disable-next-line promise/avoid-new
new Promise((resolve, reject) => {
try {
const fileReader = new FileReader()
fileReader.onload = () => {
try {
const img = new Image()
img.onload = () => resolve({ width: img.width, height: img.height })
img.src = fileReader.result as string // is the data URL because called with readAsDataURL
} catch (error) {
reject(error)
throw new Error('Error loading image')
}
}
fileReader.readAsDataURL(file)
} catch (error) {
reject(error)
throw new Error('Error reading image file')
}
})