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

在 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);

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……]

长度:千

stack overflow Convert uint8list image to a supported Image file(jpg or etc.)
原文答案
author avatar

接受的答案

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

Uint8List imageBytes;
File('image.jpg').writeAsBytes(imageBytes);

答案: