首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤动图像压缩

颤动图像压缩
EN

Stack Overflow用户
提问于 2019-04-01 16:14:07
回答 1查看 4.2K关注 0票数 1

我想在上传到我的Firestore之前做一些图像压缩,并遇到了以下线程:Flutter & Firebase: Compression before upload image

上传工作完全正常,但我无法识别关于文件大小的任何压缩...即使我将质量从85降低到1,文件仍然具有相同的大小。如果我上传图像时根本不调用压缩方法,情况也是一样。以下是代码片段:

代码语言:javascript
复制
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');
  }

你知道我需要做些什么,才能让压缩生效吗?

诚挚的问候!

EN

回答 1

Stack Overflow用户

发布于 2019-05-20 20:02:46

你可以使用下面的插件,同样可以正常工作,没有任何问题,甚至更快,和我期望的一样

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55450615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档