'Flutter Converting network image into byteData

Is there any better way to convert network image to byteData? I am trying to convert network image from firebase url to byteData and here is my code:

Future<Uint8List> _loadNetworkImage() async {
    try {
      final response = await http.get(imageUrl);
      return response.bodyBytes;
    } catch (_) {
      throw "Couldn't resolve network Image.";
    }
  }

Currently it takes almost 20+ seconds for a 7mb photo to be converted.



Solution 1:[1]

Here is how I ended up doing it.

Future<Uint8List?> _loadNetworkImage(String path) async {
    final completer = Completer<ImageInfo>();
    var img = NetworkImage(path);
    img.resolve(const ImageConfiguration()).addListener(
        ImageStreamListener((info, _) => completer.complete(info)));
    final imageInfo = await completer.future;
    final byteData =
        await imageInfo.image.toByteData(format: ui.ImageByteFormat.png);
    return byteData?.buffer.asUint8List();
  }

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Zero Live