首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文件转换为图像

将文件转换为图像
EN

Stack Overflow用户
提问于 2019-10-03 18:03:42
回答 3查看 2.3K关注 0票数 4

我用ImagePicker拍摄了一张像文件一样保存的照片。我想要的是在上传到FirebaseStorage之前把它转换成png。问题是,当我试图使用这个函数转换它时:

File('test.png').writeAsBytesSync(encodePng(image));

它给了我错误,因为照片是保存像文件,而不是图像。我在googled上搜索了一些插件或函数来将它从文件转换到图像,但是没有发现任何具体的东西。有人能帮我吗,拜托?

编辑:为了确保我清楚地解释了它:我有照片‘Photo1.jpeg’,它像文件一样存储,因为这就是ImagePicker所做的。然后我想把这个文件转换成图像,然后把它转换成.png

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-04 01:37:49

如果要将图像重新编码为PNG,则需要:

  1. 通过File.readAsBytes从文件中读取字节。这将为您提供一个与List<int>).
  2. You兼容的Uint8List,然后需要解码这些字节(例如decodeJpg),将其转换为package:imageImage类型。接下来,需要在Image上使用encodePng。这将给您更多的字节(作为一个List<int>).
  3. Finally,您需要通过File.writeAsBytes.

将这些字节写入文件)。

尽管如此,解码JPEG并将其重新编码为PNG是毫无意义的;您只是在使图像占用比它所需要的更多的空间。

票数 3
EN

Stack Overflow用户

发布于 2020-01-24 12:35:01

使用此功能:

代码语言:javascript
复制
Future<Image> convertFileToImage(File picture) async {
  List<int> imageBase64 = picture.readAsBytesSync();
  String imageAsString = base64Encode(imageBase64);
  Uint8List uint8list = base64.decode(imageAsString);
  Image image = Image.memory(uint8list);
  return image;
}

它以文件格式拍摄图像,并以图像格式返回图像。

不要忘记在调用函数时添加等待

票数 3
EN

Stack Overflow用户

发布于 2019-10-03 18:31:28

下面是如何获取文件的编码路径。

代码语言:javascript
复制
File file = File('test.png);
String encodedImagePath = base64Encode(await file.readAsBytes());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58224596

复制
相关文章

相似问题

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