基本上,我正在尝试通过将灰度图像转换为全彩色图像来制作动画。 全彩色图像以这种方式加载:
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上触发异常失败。 关于如何解决此问题的任何想法?
答案 0 :(得分:0)
好的,我想出一种摆脱它的方法。对于上述问题,我认为这是由于图像操作缓慢以及显示速度低于60帧/秒造成的。我所做的却是通过动画值来构建一个带有前端图像剪辑的堆栈。