|  | @@ -11,6 +11,23 @@ export function getRadianAngle(degreeValue: number) {
 | 
	
		
			
				|  |  |    return (degreeValue * Math.PI) / 180
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +export function getMimeType(fileName: string): string {
 | 
	
		
			
				|  |  | +  const extension = fileName.split('.').pop()?.toLowerCase()
 | 
	
		
			
				|  |  | +  switch (extension) {
 | 
	
		
			
				|  |  | +    case 'png':
 | 
	
		
			
				|  |  | +      return 'image/png'
 | 
	
		
			
				|  |  | +    case 'jpg':
 | 
	
		
			
				|  |  | +    case 'jpeg':
 | 
	
		
			
				|  |  | +      return 'image/jpeg'
 | 
	
		
			
				|  |  | +    case 'gif':
 | 
	
		
			
				|  |  | +      return 'image/gif'
 | 
	
		
			
				|  |  | +    case 'webp':
 | 
	
		
			
				|  |  | +      return 'image/webp'
 | 
	
		
			
				|  |  | +    default:
 | 
	
		
			
				|  |  | +      return 'image/jpeg'
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * Returns the new bounding area of a rotated rectangle.
 | 
	
		
			
				|  |  |   */
 | 
	
	
		
			
				|  | @@ -31,12 +48,14 @@ export function rotateSize(width: number, height: number, rotation: number) {
 | 
	
		
			
				|  |  |  export default async function getCroppedImg(
 | 
	
		
			
				|  |  |    imageSrc: string,
 | 
	
		
			
				|  |  |    pixelCrop: { x: number; y: number; width: number; height: number },
 | 
	
		
			
				|  |  | +  fileName: string,
 | 
	
		
			
				|  |  |    rotation = 0,
 | 
	
		
			
				|  |  |    flip = { horizontal: false, vertical: false },
 | 
	
		
			
				|  |  |  ): Promise<Blob> {
 | 
	
		
			
				|  |  |    const image = await createImage(imageSrc)
 | 
	
		
			
				|  |  |    const canvas = document.createElement('canvas')
 | 
	
		
			
				|  |  |    const ctx = canvas.getContext('2d')
 | 
	
		
			
				|  |  | +  const mimeType = getMimeType(fileName)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if (!ctx)
 | 
	
		
			
				|  |  |      throw new Error('Could not create a canvas context')
 | 
	
	
		
			
				|  | @@ -93,6 +112,6 @@ export default async function getCroppedImg(
 | 
	
		
			
				|  |  |          resolve(file)
 | 
	
		
			
				|  |  |        else
 | 
	
		
			
				|  |  |          reject(new Error('Could not create a blob'))
 | 
	
		
			
				|  |  | -    }, 'image/jpeg')
 | 
	
		
			
				|  |  | +    }, mimeType)
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  |  }
 |