J'essaie de convertir une image réseau en fichier et la première partie de cela est de la convertir en Uint8List. Voici comment je fais cela avec 1 de mes images d'actif ...
final ByteData bytes = await rootBundle.load('assests/logo');
final Uint8List list = bytes.buffer.asUint8List();
final tempDir = await getTemporaryDirectory();
final file = await new File('${tempDir.path}/image.jpg').create();
file.writeAsBytesSync(list);
Comment puis-je faire cela avec Image.network(imageUrl.com/image)
void initState() {
super.initState();
var sunImage = new NetworkImage(
"https://resources.ninghao.org/images/childhood-in-a-picture.jpg");
sunImage.obtainKey(new ImageConfiguration()).then((val) {
var load = sunImage.load(val);
load.addListener((listener, err) async {
setState(() => image = listener);
});
});
}
Voir aussi https://github.com/flutter/flutter/issues/23761#issuecomment-43460668
Ensuite, vous pouvez utiliser image.toByteData().buffer.asUInt8List()
Voir aussi https://docs.flutter.io/flutter/Dart-ui/Image/toByteData.html
La manière la plus simple semble obtenir la réponse http en utilisant l'url de l'image et response.bodyBytes
Contiendrait les données dans Uint8List
.
http.Response response = await http.get(
'https://flutter.io/images/flutter-mark-square-100.png',
);
response.bodyBytes //Uint8List
Maintenant, vous pouvez faire des choses comme la conversion en chaîne encodée en base64 base64.encode(response.bodyBytes);