Реагирование (собственное) сохранение / выборка изображений

Мой вариант использования - это мобильное приложение с реакцией native, но я думаю, что это очень распространенная практика.

Я хочу, чтобы в приложении можно было сделать снимок (из камеры или галереи) и сохранить его, чтобы его можно было выбрать с даты его добавления или какого-то метаконверса ImageSchema = {name: 'Image', properties: {path: 'string', created: 'Date', modified: 'Date?', Tags: 'Tag []'}}; const TagSchema = {name: 'Tag', properties: {name: 'string', images: {type: 'linkingObjects', objectType: 'Image', свойство: 'tags'}}}; добавленный пользователем.

Теория кажется довольно простой, способ сделать это может быть:

  • Используйте любую библиотеку (например, эту замечательную ), чтобы получить изображение,
  • Храните изображение как base64 и метаданные, скажем, RealmJS (некоторая внутренняя БД),
  • Запросите эту БД, чтобы получить то, что я хочу.

Это должно работать и должно быть довольно простым в реализации. Но мне интересно о нескольких вещах:

  • Согласно производительности камеры смартфона, разве это не стыдно хранить ее как base64 (и никакой контрольной суммы, больше используемой памяти ...)?
  • Этот формат base64 - неплохая идея для хранения изображений?
  • Это хорошая идея сохранить изображение в RealmJS, так как это будет болью для пользователя, чтобы повторно использовать изображение (поделиться им на facebook ...), но, с другой стороны, если бы я написал его на смартфон и хранилище URI, это может привести к множеству проблем (отсутствующий файл, если пользователь удаляет его, должен получить доступ к памяти, ...)
  • Является ли этот подход «чистым» (нормально работает, но ...)?

Если у вас есть опыт, советы или хорошая практика, я буду рад поговорить об этом :)

reactjs,image,react-native,realm,

0

Ответов: 1


1

Вы можете хранить двоичные данные (изображения) в Realm. Но если вы используете Realm локально (не синхронизирован), я предлагаю вам сохранить изображение в файловой системе и сохранить путь в Realm. Ваша модель может быть примерно такой:

data

То есть для каждого изображения сохраняется временная метка для его создания. Кроме того, он имеет необязательную метку времени, если изображение было изменено. Свойство path- это место, где можно найти изображение. Если вы предпочитаете хранить изображение, dataвместо этого вы можете использовать свойство типа . Чтобы найти изображение меньше, чем неделю, вы можете использовать realm.objects('Image').filtered('created >= $1', new Date(Date.now()-7*24*60*60)).

Просто для удовольствия я добавил список ссылок для объектов для каждого изображения. TagВ Tagпозволяет найти все изображения , которые имеют тег конкретного , например, realm.objects('Tag').filtered('@links.Tag.name == "Dog"').

reactjs, образ, реагируют родной, область,
Похожие вопросы