флаттер - как получить ui.Image (дартс: ui) из сетевого образа? - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь записать изображение на холст с помощью устройства записи изображений ...

drawImage требуется dart: ui image

Я успешно импортировал изображение ресурса, но получаю следующую ошибку для сетевого изображения:

[VERBOSE-2: codec.cc (97)] Ошибка декодирования изображения.Данные либо недействительны, либо закодированы в неподдерживаемом формате.

[VERBOSE-2: shell.cc (186)] Ошибка дартс: необработанное исключение: исключение: операция завершилась неудачно 0 _rootHandleUncaughtError.(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;
        });
      });
    });
  });
});

1 Ответ

0 голосов
/ 02 февраля 2019

из 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);
...