По сути, я пытаюсь сделать анимацию, преобразовав изображение в градациях серого в полноцветное изображение. Полноцветное изображение загружается следующим образом:
ByteData bytes = await rootBundle.load("...");
ui.Codec codec = await ui.instantiateImageCodec(bytes.buffer.asUint8List());
ui.FrameInfo fi = await codec.getNextFrame();
return (await fi.image.toByteData()).buffer.asUint8List();
В виджете анимации я просто изменил часть данных изображения на оттенки серого и оставил все остальное. Эта проблема заключается в том, что при преобразовании байтов в виджет изображения следующим образом:
return Image.memory(
imglib.encodePng(imglib.Image.fromBytes(
widget.rawWidth, widget.rawHeight, p)));
p - это модифицированная версия байтов в исходном изображении. Однако на экране ничего не появляется. И вызов
return Image.memory(p);
вызовет исключение на instantiateCode c, не выполненном из-за отсутствия метаданных. Любые идеи о том, как решить эту проблему?