我有一个包含5个图片url的字符串数组。我正在寻找一种从url获取图像、将图像编码为base64字符串并最终插入到另一个数组中的方法。
这个解决方案应该适用于Flutter中的移动和Web平台。我在寻找解决方案时发现了一些技巧,如使用File.readAsBytes、Image.toBase64String等,但它们都无法在我的环境中正常工作。
我有一个包含5个图片url的字符串数组。我正在寻找一种从url获取图像、将图像编码为base64字符串并最终插入到另一个数组中的方法。
这个解决方案应该适用于Flutter中的移动和Web平台。我在寻找解决方案时发现了一些技巧,如使用File.readAsBytes、Image.toBase64String等,但它们都无法在我的环境中正常工作。
最终我找到了使用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);
这对移动设备和网络端都运作良好。