基本上,我试图通过将灰度图像转换为全色图像来制作动画。以这种方式加载全色图像:
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上触发异常失败。对如何解决这个问题有什么想法吗?
发布于 2020-04-23 10:17:25
好吧,我想了个办法摆脱它。对于上面的问题,我猜是由于图像操作和显示速度在60帧/秒以下造成的。我所做的是用前面的图像按动画值构建一个堆栈。
https://stackoverflow.com/questions/61283724
复制相似问题