Как конвертировать файл обратно в актив
Я использую пакет выбора нескольких файлов на
pub.dev
ссылка находится ниже https://pub.dev/packages/multi_image_picker в сочетании с пакетом обрезки изображений от
Yalantis
https://pub.dev/packages/image_cropper, чтобы мой пользователь мог выбирать несколько изображений, а затем обрезать их по своему желанию.
Я использую этот код, чтобы преобразовать свой актив в файл и передать его в обрезку. И это работает.
final temp = await Directory.systemTemp.createTemp();
final data = await finalList[index].getByteData();
File failo = await File('${temp.path}/img').writeAsBytes(
data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes));
print("The path is ${temp.path}");
File croppedFailo = await ImageCropper.cropImage(
sourcePath: failo.path,
androidUiSettings: AndroidUiSettings(toolbarTitle: "My App"),
);
Сложность состоит в том, чтобы преобразовать его обратно в актив, чтобы я мог заменить старый
uncropped
актив с этим новым обрезанным... Я прочитал документацию по активу пакета и попробовал это, но это привело к сбою моего приложения
Asset croppedPic = new Asset(
croppedFailo.path,
DateTime.now().millisecondsSinceEpoch.toString(),
300,
300,
);
finalList.replaceRange(index, index + 1, [croppedPic]);
РЕДАКТИРОВАТЬ: когда я говорю "актив", я не имею в виду изображения, которые я вручную добавил в папку assets / images в приложении. Плагин для выбора нескольких изображений имеет тип файла, называемый активом, в котором он возвращает изображения. Это тип, в который я хочу преобразовать свой файл обратно.
1 ответ
Ничего. Я подумал, что это слишком сложно сделать. Поэтому я просто переформатировал весь свой код, чтобы обрабатывать изображения как файлы, а не ресурсы. И это действительно сделало мою жизнь намного проще. Coz-файлы дают вам больше универсальности и меньше проблем, чем ресурсы.