gpt4 book ai didi

flutter - 将多图像选择器与图像裁剪器一起使用

转载 作者:行者123 更新时间:2023-12-03 04:20:12 29 4
gpt4 key购买 nike

我正在使用Multi_Image_Picker插件来获取多个图像。选择多个图像时,Multi_Image_Picker返回List<Asset>文件。如何才能将Multi_Image_Picker与仅接受图像路径的Image_Cropper一起使用?由于资源类型,我无法获取图像的路径。这是我为了达到目的而尝试的方法:
我可以得到图像的路径:

final filePath = await FlutterAbsolutePath.getAbsolutePath(assets.identifier);
这可以工作,但是flutter_absolute_path插件要求最小的android sdk为19。是否可以在不将资源文件转换为图像文件的情况下裁剪图像?
我尝试将 Assets 转换为图像文件:
List<File> images = List<File>();
Directory tempDir = await getTemporaryDirectory();
final path =tempDir.path;
for (int i = 0; i < assets.length; i++) {
images.add(await ProcessImage.assetToFile(
path: "$path/images/img$i",
data: await assets[i].getByteData(quality: 90)));
}
assetToFile():
static Future<File> assetToFile({ByteData data, String path})async {
return File(path).writeAsBytes(
data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes));
}

最佳答案

感谢@pskink的答案。事实证明,您必须将获取的 Assets 字节数据作为文件保存到临时文件夹中,并在裁切器中使用它。

final temp = await Directory.systemTemp.createTemp();
List<File> images = List<File>();
for (int i = 0; i < assets.length; i++) {
final data = await assets[i].getByteData();
images.add(await File('${temp.path}/img$i').writeAsBytes(
data.buffer.asUint8List(
data.offsetInBytes, data.lengthInBytes)));
}

关于flutter - 将多图像选择器与图像裁剪器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63066483/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com