
正文
flutter图片压缩后变模糊 flutter_image_compress
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
flutter 图片缓存
Flutter的图片缓存机制有问题(可能是我使用的版本1.12.13有问题)
网络图片会默认缓存到本地,但是不管图片是不是完整的或者损坏的,导致页面在下次进入的时候会优先从缓存里读取图片。有些图片是没有加载完成的,或者损坏的,导致图片无法显示。UI效果就是显示成白色的。
一种解决方式:加载前或者退出后清理图片缓存
ImageCache imageCache = PaintingBinding.instance.imageCache;
imageCache.clear();
缺点就是每次图片都想要从网络上获取,增加服务器负担
相关问答
Q1: flutter 图片压缩
原以为很难的东西,东找找西找找,只有一个鲁班压缩,但都不怎么维护状态最终找到好的办法,可以通过multi_image_picker库的二进制压缩
80就是压缩比例,默认为100
Assets为获取到的图片类型
上传的时候可以通过
multiImages就是存放Assets类型的图片数组,然后通过for循环遍历来批量添加图片
用dio批量上传
Q2: Flutter 图片不显示
打开 pubspec.yaml 文件,找到 assets: 开头的Key,将其注释放开并配置正确路径
Q3: flutter图片内存优化
按照给定尺寸进行图片的解码,而不是解码整个图片的尺寸,用来减少内存的占用。
官方文档:
官方说明:
Instructs Flutter to decode the image at the specified dimensions instead of at its native size.
This allows finer control of the size of the image in ImageCache and is generally used to reduce the memory footprint of ImageCache .
The decoded image may still be displayed at sizes other than the cached size provided here.
使用:
三方库: cached_network_image 限2.5.0之后版本才可用
设定最大的缓存宽度和高度 this.maxWidthDiskCache 、 this.maxHeightDiskCache
使用:
从相册选取图片,展示时使用指定尺寸宽高进行处理。
使用三方库:
使用自定义 provider 来指定所需图片的宽高:
AssetEntityImageProvider 传入宽高和图片原图 AssetEntity 数据。
provider 中 key.entity.thumbDataWithSize 方法:
进入 entity 中 thumbDataWithSize 方法:
进入 _getThumbDataWithId 方法中,
进入getThumb:
调用iOS原生的获取图片方法,
进入 getThumbWithId 方法,
原生实现获取置顶宽高缩略图方法实现:
使用 iOS 原生类 PHImageManager 的
来获取缩略图。
flutter图片压缩后变模糊的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于flutter_image_compress、flutter图片压缩后变模糊的信息别忘了在本站进行查找喔。







