Я хотел сделать сжатие изображений перед загрузкой в мой Firestore и наткнулся на следующий поток: Flutter & Firebase: сжатие перед загрузкой изображения
Загрузка работает совершенно нормально, но я не могу распознать какое-либо сжатие в отношении размера файла ... Даже если я уменьшу качество с 85 до 1, файл все равно будет иметь тот же размер. То же самое, если я загружаю изображение, не вызывая метод сжатия вообще. Вот фрагмент кода:
void compressImage() async {
print('starting compression');
final tempDir = await getTemporaryDirectory();
final path = tempDir.path;
int rand = new Math.Random().nextInt(10000);
Im.Image image = Im.decodeImage(file.readAsBytesSync());
Im.copyResize(image, 500);
// image.format = Im.Image.RGBA;
// Im.Image newim = Im.remapColors(image, alpha: Im.LUMINANCE);
Im.Image smallerImage = Im.copyResize(image, 500); // choose the size here, it will maintain aspect ratio
var newim2 = new File('$path/img_$rand.jpg')
..writeAsBytesSync(Im.encodeJpg(smallerImage, quality: 85));
setState(() {
file = newim2;
});
print('done');
}
Есть идеи, что мне нужно изменить, чтобы компрессия работала?
С наилучшими пожеланиями!