web-dev-qa-db-ja.com

Flutter - ネットワークイメージからui.image(Dart:UI)を取得する方法は?

私は写真レコーダーを使ってキャンバスにイメージを書いています...

drawImageにはDart:UI Image

私は資産イメージを正常にインポートしましたが、ネットワークイメージには以下のエラーが発生しました:

[verbose-2:codec.cc(97)]復号化画像の復号化。データは無効です。また、サポートされていない形式を使用してエンコードされています。

[verbose-2:shell.cc(186)] DARTエラー:未処理の例外:例外:操作失敗0 _RoothandLeunCauturautorror (DART:ASYNC/ZONE.DART:1112:29)1 _MicroTaskLoop(Dart:Async/Schedule_MicroTask.Dart:41:21)2 _StartMicroTaskLoop(Dart:Async/Schedule_MicroTask.Dart:50:5)

コードはこれまでに試してみました。

netImage.obtainKey(new ImageConfiguration()).then((val) {
  var load = netImage.load(val);

  load.addListener((listener, err) async {
    ImageInfo imageInfo;
    setState(() => imageInfo = listener);

    imageInfo.image.toByteData().then((ss) {

      Uint8List lst = new Uint8List.view(ss.buffer);

      ui.instantiateImageCodec(lst).then((val) {
        val.getNextFrame().then((vaal) {
          imagetoDraw = vaal.image;
        });
      });
    });
  });
});
 _
5
UpaJah

から https://github.com/flutter/flutter/issues/23761

    netImage.obtainKey(new ImageConfiguration()).then((val) {
      var load = netImage.load(val);

      load.addListener((listener, err) async {

        setState(() => imageInfo = listener);

//        imageInfo.image.toByteData().then((ss) {
//
//          Uint8List lst = new Uint8List.view(ss.buffer);
//
////          ui.instantiateImageCodec(lst).then((val) {
////            val.getNextFrame().then((vaal) {
////              imagetoDraw = vaal.image;
////            });
////          });
//        });
      });
    });
 _

その後..

c.drawImage(imageInfo.image, offset3, Paint);
 _
0
UpaJah