Dart / Flutter - правильный способ сохранения большого количества файлов изображений - PullRequest
0 голосов
/ 22 февраля 2019

Я собираюсь начать работу над приложением, похожим на энциклопедию, где я хотел бы, чтобы мой объект Item содержал основное изображение, а также список других изображений для целей галереи.

Я уже провел некоторые исследования о том, как хранить изображения во Flutter, но я в замешательстве - некоторые ответы на вопросы включали:

  1. Активы - но получить доступ к ним, фильтровать, искать будет нелегкои т. д.
  2. SQLite (кодирование / декодирование Base64) - проблемы с производительностью при загрузке и декодировании / кодировании списка объектов изображений
  3. Хранение файлов на диске - более длительное время загрузки

Итак, вопрос в том, каков наилучший подход в этой ситуации?

Любые советы и рекомендации очень ценятся!:)

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Попробуйте, как этот метод получить больше изображений

import 'dart:convert';

import 'dart:typed_data';



Uint8List bytesImage1;

bool bolWithImage1 = false;

try {

  bytesImage1 =

      base64Decode(base64StringFromSql);

  bolWithImage1 = true;

} catch (err) {}
0 голосов
/ 22 февраля 2019
  1. Если вы отправите их статически вместе с приложением, ресурсы будут работать достаточно хорошо.Фильтр, поиск и так далее не должны быть слишком сложными.

  2. Да, все будет храниться в одном файле с некоторыми накладными расходами, что вызовет некоторые проблемы с производительностью.

  3. "Хранение файлов на диске"каждый способ хранит файлы на дисках и время загрузки не избежать.Возможно, вам удастся загрузить изображения в фоновом режиме, чтобы они уже были в памяти, когда пользователь перейдет к виду, в котором они должны быть показаны.

Я бы сохранил их в качестве ресурса, если онистатический (не меняется после отправки приложения или только с обновлениями приложения)

Вы можете использовать SQLite и вести таблицу с мета-информацией об изображениях и поле с именем файла изображения (и путем к нему)при необходимости) использовать возможности запросов к базе данных SQL и наилучшую производительность.

Для получения более подробной информации требуется дополнительная информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...