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

问题描述

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

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

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

有人可以帮忙吗?

提前致谢,

final io.File image = File('directory/image.jpg').create();
image.writeAsBytesSync(uint8list);

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

长度:数千

解决方法

您可以使用 .tmp。它的文件扩展名可以是任何东西。

final directory = await getApplicationDocumentsDirectory();
final image = await File('${directory.path}/image.tmp').create();
await image.writeAsBytes(uint8list);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...