Flutter 使用flutter_image_compress 对图片进行压缩处理

6 min read

Flutter中可以使用flutter_image_compress插件对图片进行压缩处理。以下为一个示例:

首先,在pubspec.yaml文件中添加flutter_image_compress插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_image_compress: ^0.8.0

然后,在需要压缩图片的地方导入flutter_image_compress插件:

import 'package:flutter_image_compress/flutter_image_compress.dart';

接下来,使用flutter_image_compress对图片进行压缩处理,可以使用以下代码:

Future<void> compressImage(String imagePath) async {
  // 获取图片文件
  File imageFile = File(imagePath);

  // 获取图片文件的类型
  String imageType = imagePath.split('.').last;

  // 压缩图片
  List<int> result = await FlutterImageCompress.compressWithFile(
    imageFile.path,
    quality: 80, // 设置图片质量(0 - 100)
    formatted: false,
    keepExif: false,
  );

  // 保存压缩后的图片
  File compressedImage = File('${imageFile.path}.${imageType}');
  await compressedImage.writeAsBytes(result);
}

以上代码将根据指定的图片路径进行压缩处理,可以通过修改quality参数来控制图片质量,quality的值范围是0到100,0表示最低质量,100表示最高质量。

最后,调用compressImage函数并传入需要压缩的图片路径即可实现图片压缩处理。

需要注意的是,压缩后的图片会生成一个新的文件,原始图片文件不会受到影响。