在过去的几天里,我一直在与这个错误作斗争,而且我似乎在网上找不到任何有用的答案,所以如果有任何帮助,我们将不胜感激!
我正在使用Flutter Web,由于网络上不支持dart:io,我正在使用universal_io包。在Image包的帮助下,我正在将文件从Jpg转换为Png,并尝试将转换后的文件的收到Unit8List
转换为File
变量。然而,这似乎并不奏效。
我一直收到这个错误:
Error: FormatException: Unexpected extension byte (at offset 0)
完整错误截图
我在做什么:
我正在尝试将Unit8List转换为文件变量,行为:File convertedFile = File.fromRawPath(png);
,png
为Unit8List。
完整代码:
convertFiles() async {
//1. Requesting file from the internet [✓ works]
http.Response response = await http.get(
Uri.parse(folderFiles[openFileIndex.value]["link"]),
);
//2. Decoding WEBP image with "Image" package [✓ works]
var image = img.decodeWebP(response.bodyBytes);
//3. Encoding decoded WEBP file as an PNG [✓ works]
Uint8List png = img.encodePng(image!) as Uint8List;
//4. Trying to convert file bytes(Unit8List) to a File Variable [✗ throws an error]
File convertedFile = File.fromRawPath(png);
}
VSCode屏幕截图
我尝试了什么:
我已经尝试了我在互联网上看到的一切,包括转到Master
频道和升级Flutter,但这些都没有解决问题。
颤振医生:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.5.0-4.0.pre.23, on macOS 12.6 21G115 darwin-arm64, locale en-SI)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.71.2)
[✓] Connected device (2 available)
[✓] HTTP Host Availability
• No issues found!
终端屏幕截图
这是一个与universal.io包有关的问题,已经有一个打开的问题,您可以在这里跟踪进度-Flutter Web:无法将uint8list转换为File。
同时你可以检查这个构造函数是否可以帮助你-Image.memory