我正在try 在Flutter 中压缩图像,并将其zoom 为特定格式(16/9) 对于压缩,我使用库FlutterImageCompress. 然而,这给了我一个零的返回值. 文件中写道: "有时,压缩会返回NULL.您应该判断是否可以读/写该文件,并且目标文件的父文件夹必须存在.
例如,使用PATH_PROVIDER插件访问一些应用程序文件夹,并使用权限插件请求在Android/iOS上访问SD卡的权限."https://pub.dev/packages/flutter_image_compress#troubleshooting
因此,我try 在压缩之前创建文件夹.然后,我的代码如下所示:
final appDocDir = await getApplicationDocumentsDirectory();
pickedFile = File(filepath); //retrieved with filepicker
Directory tempDir = Directory('${appDocDir.path}/temp/');
if (!tempDir.existsSync()) {
tempDir.createSync(recursive: true);
}
pickedFile = await FlutterImageCompress.compressAndGetFile(
pickedFile.absolute.path,
"${appDocDir.absolute}/temp.jpg",
quality: 5,
);
File file = File("${appDocDir.absolute}/temp.jpg");
print("File Size: ${file.lengthSync()}");
我的目标是文件文件在最后包含压缩文件,这样我就可以上传它.
我已经try 创建手动写入结果的文件夹,但这并没有改变任何事情.我也不关心图像在压缩后会在哪里结束,因为文件上传后会再次删除.