将 uint8list 图像转换为支持的图像文件(jpg 等)

M.T*_*iri 7 dart flutter uint8array flutter-layout uint8list

在 android 10 和 11(SDK 编号 29 和 30)中,音乐封面(艺术品)格式与以前的版本不同,事实上,它们不能作为受支持的图像文件(例如 jpg 或 png)读取,它们是 uint8lists 和只有 Image.memory 小部件接受并显示它们。

现在,我的问题是我不想将它们作为内存图像读取,我需要 jpg 等文件。

找了很多!读了很多,发现只有 1 个,不起作用的解决方案!这就是将 unit8list 作为字节写入文件中,其路径以“.jpg”结尾。正如我所说,它不起作用。

有人可以帮忙吗?

提前致谢,<3。

final io.File image = File('directory/image.jpg').create();
image.writeAsBytesSync(uint8list);
Run Code Online (Sandbox Code Playgroud)

uint8list 样本:[255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 255, 226, 2, 40, 73, 67, 67, 95, 80, 82 ,...]

长度:数千

Oma*_*att 5

要将 Uint8list 写入文件,您可以使用File(String).writeAsBytes(Uint8list);. 您可以在 File 对象上设置路径和文件扩展名,并在writeAsBytes()上传递图像字节

Uint8List imageBytes;
File('image.jpg').writeAsBytes(imageBytes);
Run Code Online (Sandbox Code Playgroud)