Задать вопрос
Daria_V
@Daria_V
Работаю в сфере IT.

Как закодировать изображения в base64 через методы btoa и atob?

Никак не могу понять, как закодировать и раскодировать разные изображения для записи и последующем извлечении их из LocalStorage в html.

Есть написанный код простого приложения для добавления книг через форму, данные которых хранятся в LS.
https://codepen.io/daria-v1985/pen/rNRwrZq

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

Выглядит это так:
- форма для ввода данных с превью изображения
6810d5d7dbd74389659826.png

- вывод карточки с инфой о книге (там где желтый прямоугольник должно быть изображение)
6810d5f0642f2494635980.png

Как это можно сделать с помощью методов btoa и atob?
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
rqdkmndh
@rqdkmndh
Web-разработчик
Тут вам не нужны методы btoa и atob. В вашем коде есть место где можно получить base64 вашего изображения:
const reader = new FileReader();

  reader.onload = (e) => {
    formPreview.innerHTML = `<img src="${e.target.result}" alt="Обложка книги">`
// 
    const base64String = reader.result;
    console.log(base64String); // Вывод base64-строки, можно сохранить ее в LS
  };
  reader.onerror = (e) => alert('Ошибка!');
  reader.readAsDataURL(file);
}

А обратно кодировать ее в бинарный формат не нужно. Если присвоить атрибуту src изображения эту строку (base64String) - то картинка отобразится в html-документе
imgPreview.src = base64String;     // показываем изображение, imgPreview - id тега с img
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы