Spaces:
Paused
Paused
File size: 725 Bytes
a549a5b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import imageCompression from 'browser-image-compression';
export const compressImage = async (file: File): Promise<File> => {
const options = {
maxSizeMB: 0.5, // Compress to 500KB
maxWidthOrHeight: 1080, // Resize to HD mobile width
useWebWorker: true, // Fast CPU processing
fileType: 'image/webp' // Efficient format
};
try {
const compressedFile = await imageCompression(file, options);
console.log(`Compressed: ${(file.size / 1024 / 1024).toFixed(2)}MB -> ${(compressedFile.size / 1024 / 1024).toFixed(2)}MB`);
return compressedFile;
} catch (error) {
console.error("Compression failed:", error);
return file; // Return original if compression fails
}
};
|