Spokik
@Spokik
дилетант ;)

Как создать картинку из строки base64?

Я кропаю изображения до маленького через либу. Либа возвращает base64. Даже мне нужно отправить это дело в виде файла на сервер.
Я уже находил вопросы, где людям нужно было просто отрисовать, но вопрос именно в том: как конвертировать base64 в js в файл?
  • Вопрос задан
  • 632 просмотра
Решения вопроса 1
Spokik
@Spokik Автор вопроса
дилетант ;)
Я нашел вот такое решение
function dataURLtoFile(dataurl, filename) {
      let arr = dataurl.split(','),
        mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]),
        n = bstr.length,
        u8arr = new Uint8Array(n);
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
      }
      return new File([u8arr], filename, { type: mime });
    }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
zkrvndm
@zkrvndm
Архитектор решений
Это элементарно делается в одну строку через fetch:
blob = await (await fetch('data:image/png;base64,блабла')).blob();

В переменной blob будет лежать файл, его можно спокойно отправить на сервер при помощи FormData.
Ответ написан
AgentSmith
@AgentSmith
Это мой правильный ответ на твой вопрос
что мешает сохранить base64 в файл?
Ответ написан
Ваш ответ на вопрос

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

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