在flutter中将内存图像(如Uint8list)保存为图像文件
Posted
技术标签:
【中文标题】在flutter中将内存图像(如Uint8list)保存为图像文件【英文标题】:Save a memory image (such as Uint8list) as image file in flutter 【发布时间】:2021-03-17 04:13:13 【问题描述】:我有一些 Uint8lists,我想将它们保存为 jpg 文件。 我在网上搜索了很多,但一无所获! 有人可以帮忙吗?
谢谢,
【问题讨论】:
File
来自dart.io
的类具有保存该列表的方法
我不想保存列表
“我想将它们保存在存储空间中” - 那么你到底想做什么呢?
抱歉解释不好!现已编辑。
这个问题很难理解。更好地解释你的问题
【参考方案1】:
“存储”是指写入文件吗?你真的不需要“颤抖”来做到这一点。只需使用 dart 提供的库即可。这是一个下载我的 gravatar 的示例,您可以将其作为 Uin8List
获取,然后将其保存到文件中。
import 'dart:io';
import 'dart:typed_data';
import 'package:http/http.dart' as http;
void main()
http.get('https://www.gravatar.com/avatar/e944138e1114aefe4b08848a46465589').then((response)
Uint8List bodyBytes = response.bodyBytes;
File('my_image.jpg').writeAsBytes(bodyBytes);
);
【讨论】:
'my_image.jpg',它将存储在哪里?我们如何设置特定的文件夹来存储文件? 您可以保存到特定路径,例如final dir = await getExternalStorageDirectory(); final myImagePath = dir!.path + "/myimg.png"; File imageFile = File(myImagePath); if(! await imageFile.exists()) imageFile.create(recursive: true); imageFile.writeAsBytes(image);
@djalmafreestyler - 它将存储在您运行程序的“当前工作目录”中。以上是关于在flutter中将内存图像(如Uint8list)保存为图像文件的主要内容,如果未能解决你的问题,请参考以下文章
从 Flutter 中的 Uint8List 数据更改图像大小
Flutter 将 Uint8List 传递给 iOS Objective-c