颤动图像压缩

时间:2019-04-01 08:14:07

标签: image dart flutter compression image-compression

我想先进行一些图像压缩,然后再上传到Firestore并遇到以下线程:Flutter & Firebase: Compression before upload image

上传完全正常,但是我无法识别有关文件大小的任何压缩...即使将质量从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');
  }

您知道我要改变什么才能使压缩正常工作吗?

最诚挚的问候!

1 个答案:

答案 0 :(得分:1)

您可以使用以下插件,同样可以正常工作,没有任何问题,甚至更快,而且我期望的是

https://github.com/btastic/flutter_native_image.git

以上链接中提供的步骤和方法。