Flutter Image.memory loading显示无

问题描述 投票:0回答:1

基本上,我试图通过将灰度图像转换为全彩图像来制作一个动画。全彩图像是这样加载的。

    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因缺乏元数据而失败时触发异常。有什么办法可以解决这个问题吗?

flutter flutter-animation
1个回答
0
投票

好吧,我想出了一个办法来摆脱这个问题。对于上面这个问题,我猜测是由于图像运行速度慢,显示帧率低于60造成的。我所做的,是改成按动画值建立一个堆栈与前面的图像剪辑。

© www.soinside.com 2019 - 2024. All rights reserved.