Flutter Image.memory加载没有显示任何内容



基本上,我试图通过将灰度图像转换为全色图像来制作动画。全色图像以这种方式加载:

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

将在instantiateDec上触发异常,由于缺少元数据而失败。关于如何解决这个问题有什么想法吗?

好吧,我想办法摆脱它。对于上面的问题,我想这是由于图像操作缓慢和显示速度低于60帧/秒造成的。相反,我所做的是通过动画值构建一个具有前图像剪辑的堆栈。

最新更新