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

时间:2020-04-18 03:00:01

标签: flutter flutter-animation

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

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

将由于缺少元数据而在InstantiateCodec上触发异常失败。 关于如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

好的,我想出一种摆脱它的方法。对于上述问题,我认为这是由于图像操作缓慢以及显示速度低于60帧/秒造成的。我所做的却是通过动画值来构建一个带有前端图像剪辑的堆栈。