flutter 压缩图片,修改图片尺寸,修改图片格式

最近需要用到flutter压缩图片

网上大部分教程基于 image_compression_flutter , flutter_image_compress

这两个扩展不好用,他们只能压缩图片质量(不能修改图片尺寸),这样压缩效果不好.其实移动端不需要分辨率太高的图片,

在网上找到了一篇文章

https://juejin.cn/post/7231080269502431291

https://pub.dev/packages/image

介绍了dart的 image扩展,这是dart扩展所以可以在所有平台使用

Uint8List image = File(path).readAsBytesSync();
ImgCompression.Image? img = ImgCompression.decodeImage(image);
int width = img.width;
height = 1000 * height ~/ width;

//修改尺寸
ImgCompression.Image resizedImage = ImgCompression.copyResize(img, width: 1000, height: height);
//压缩图片 质量 70
Uint8List image2 = ImgCompression.encodeJpg(resizedImage,quality: 70);
//使用 encodePng 等函数 可以修改图片格式

Flutter提供了多种方式来进行图片压缩,以下是其中几种常用的方法: 1. 使用flutter_image_compress库:这是一个Flutter插件,可以用于对图片进行压缩。你可以通过在pubspec.yaml文件中添加依赖来使用该库。使用该库的示例代码如下: ```dart import 'package:flutter_image_compress/flutter_image_compress.dart'; Future<void> compressImage(String imagePath) async { final result = await FlutterImageCompress.compressWithFile( imagePath, quality: 85, // 设置压缩质量,范围为0-100 ); if (result != null) { // 压缩成功,result为压缩后的图片数据 // 可以将result保存到文件或上传到服务器 } else { // 压缩失败 } } ``` 2. 使用flutter_native_image库:这是另一个Flutter插件,可以用于对图片进行压缩和调整大小。你可以通过在pubspec.yaml文件中添加依赖来使用该库。使用该库的示例代码如下: ```dart import 'package:flutter_native_image/flutter_native_image.dart'; Future<void> compressImage(String imagePath) async { final compressedFile = await FlutterNativeImage.compressImage( imagePath, quality: 85, // 设置压缩质量,范围为0-100 ); if (compressedFile != null) { // 压缩成功,compressedFile为压缩后的图片文件 // 可以将compressedFile保存到文件或上传到服务器 } else { // 压缩失败 } } ``` 3. 使用第三方云存储服务:你还可以使用第三方云存储服务,如七牛云、阿里云等,它们提供了图片处理的API,可以通过调用API来实现图片压缩
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值