我有一个RawImage小部件,但实际上需要一个图像提供程序(例如AssetImage或MemoryImage),以便可以从中构建一个DecorationImage。那可能吗?我已经尝试了很多事情,包括尝试从原始字节值构造一个MemoryImage,但是到目前为止没有任何效果。

任何帮助将不胜感激!

最佳答案

最简单的方法是通过PNG,该PNG对原始图像的像素和几何形状进行编码。例如:

Future<MemoryImage> convert(RawImage rawImage) async {
  var byteData = await rawImage.image.toByteData(
    format: ui.ImageByteFormat.png,
  );
  return MemoryImage(byteData.buffer.asUint8List());
}

这具有不必要的压缩/解压缩的缺点,但对于较小的图像不会引起注意。为避免这种情况,请使用ui.ImageByteFormat.rawRgba并在BMP文件头之前添加。 (文件头用于将几何传递到内存图像解码器。)

关于flutter - Flutter:将RawImage转换为可扩展ImageProvider <>的东西吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58350389/

10-09 04:21