Как загрузить виджеты изображений из байтовых данных во Flutter

#flutter #flutter-plugin #flutter-image

#flutter #flutter-плагин #flutter-изображение

Вопрос:

multi_image_picker: 2.4.11 Плагин возвращает a List<Asset> , каждый из которых Asset имеет imageData свойство, которое является ByteData .

Как я могу показать их во Flutter?

Ответ №1:

Вы можете использовать Image.memory конструктор.

 List<Asset> assets = ...; // use multi_image_picker to get the assets

return ListView.builder(
  padding: EdgeInsets.all(8.0),
  itemExtent: assets.length,
  itemBuilder: (BuildContext context, int index) {
    return Image.memory(assets[index].imageData.buffer.asUint8List());
  },
);
  

Комментарии:

1. как это сделать для версии 4.6.0 multi_image_picker?

2. AFAICT 4.6.0 по-прежнему возвращает List<Asset> from pickImages . Это должно работать точно так же.

3. если я ввожу assets [index].ImageData.buffer.asUint8List()), это выдает ошибку извините, я новичок в программировании dart, не могли бы вы, пожалуйста, рассказать мне?

4. Просмотр страницы.builder (количество элементов: widget.images. длина, itemBuilder: (BuildContext context, int index) { var asset = widget.images[index].ImageData.buffer.asUint8List(); возвращает контейнер( цвет: Theme.of(context).primaryColor, дочерний элемент: Center(дочерний элемент: Image.memory(asset), ), ); }, ),

5. вот как я это написал.

Ответ №2:

Вот функция, которая преобразует ресурс -> Изображение

   Future<Image> assetThumbToImage(Asset asset) async {
    final ByteData byteData = await asset.getByteData();

    final Image image = Image.memory(byteData.buffer.asUint8List());

    return image;
  }