我有一个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/