Как конвертировать файл обратно в актив

Я использую пакет выбора нескольких файлов на pub.devссылка находится ниже https://pub.dev/packages/multi_image_picker в сочетании с пакетом обрезки изображений от Yalantishttps://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-файлы дают вам больше универсальности и меньше проблем, чем ресурсы.

Другие вопросы по тегам