从URL获取图像并将其转换为base64字符串 - Flutter

4

我有一个包含5个图片url的字符串数组。我正在寻找一种从url获取图像、将图像编码为base64字符串并最终插入到另一个数组中的方法。

这个解决方案应该适用于Flutter中的移动和Web平台。我在寻找解决方案时发现了一些技巧,如使用File.readAsBytes、Image.toBase64String等,但它们都无法在我的环境中正常工作。


1
可能有所帮助 https://dev59.com/blUL5IYBdhLWcg3wopWy - Aamil Silawat
@AR 谢谢,但我已经访问了您提供的链接。那里提出的解决方案并没有像我在问题中提到的那样起作用。 - iAkshay
1个回答

12

最终我找到了使用http包的解决方案

import 'package:http/http.dart' as http;

Future<String> networkImageToBase64(String imageUrl) async {
    http.Response response = await http.get(imageUrl);
    final bytes = response?.bodyBytes;
    return (bytes != null ? base64Encode(bytes) : null);
}

例子:

final imgBase64Str = await networkImageToBase64('IMAGE_URL');
print(imgBase64Str);

这对移动设备和网络端都运作良好。


1
它能够工作,但是会因为错误36而崩溃——文件名太长了。 - Thiago Silva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接