7

In android 10 and 11 (SDK number 29 and 30) music covers (artworks) formats aren't the same as previous versions, in fact, they aren't readable as a supported image file such as jpg or png, they are uint8lists and only Image.memory widget accepts and shows them.

Now, my problem is I don't wanna read them as a memory image, I need files such as jpg or etc.

Searched a lot! Read a lot and found only 1, not working solution! And that was writing unit8list as bytes in a file which it's path is ended with ".jpg". As I said it's not working.

Anyone can help?

Thanks in advance, <3.

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

uint8list sample:[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 ,...]

length: thousands

M.Taha Basiri
  • 612
  • 1
  • 6
  • 14

1 Answers1

5

To write Uint8list as a file, you can use File(String).writeAsBytes(Uint8list);. You can set the path and file extension on the File object and pass the image bytes on writeAsBytes()

Uint8List imageBytes;
File('image.jpg').writeAsBytes(imageBytes);
Omatt
  • 8,564
  • 2
  • 42
  • 144