compressImage static method
Compresses an image and returns the compressed file.
Implementation
static Future<File> compressImage(File file, {int quality = 50}) async {
try {
final dir = await getTemporaryDirectory();
final ext = file.path.toLowerCase().endsWith('.png') ? '.png' : '.jpg';
final format = ext == '.png' ? CompressFormat.png : CompressFormat.jpeg;
final targetPath = '${dir.path}/${const Uuid().v4()}_compressed$ext';
final result = await FlutterImageCompress.compressAndGetFile(
file.absolute.path,
targetPath,
quality: quality,
minWidth: 1024,
minHeight: 1024,
format: format,
);
if (result != null) {
return File(result.path);
}
} catch (e) {
log('Error compressing image: $e');
}
return file;
}