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

Fetch image from URL and convert it to base64 string - Flutter

我有一个包含 5 个图像 url 的字符串数组。我正在寻找一种方法来从 url 获取图像,然后将图像编码为 base64 字符串,最后将其插入另一个数组。

该解决方案应该适用于 flutter 中的移动设备和 Web。我正在四处寻找解决方案,并使用 File.readAsBytes、Image.toBase64String 等获得了一些技巧,但其中 none 对我有效。

最后我找到了使用 http package

的解决方案
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);

这对移动和网络都非常有效。