ネットワークイメージからFlutter Uint8Listを取得するにはどうすればいいですか? 質問する

ネットワークイメージからFlutter Uint8Listを取得するにはどうすればいいですか? 質問する

ネットワーク イメージをファイルに変換しようとしていますが、その最初の部分はそれを Uint8List に変換することです。アセット イメージの 1 つでこれを実行する方法は次のとおりです...

      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);

どうすればいいですかImage.network(imageUrl.com/image)

ベストアンサー1

最も簡単な方法は、画像 URL を使用して http 応答を取得し、response.bodyBytesそこにデータを含めることですUint8List

http.Response response = await http.get(
    'https://flutter.io/images/flutter-mark-square-100.png',
);   
response.bodyBytes //Uint8List

これで、base64エンコードされた文字列に変換するなどの操作が可能になりますbase64.encode(response.bodyBytes);
アップデート: http の新しいバージョンでは、Uri.parse() を追加する必要があります
。例:

http.Response response = await http.get(
    Uri.parse('https://flutter.io/images/flutter-mark-square-100.png'),
);

おすすめ記事