Сжимайте изображения и скрывайте их, чтобы создать base64 на javascript

#javascript

Вопрос:

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

   this.imgUrl = "";
  const imgs = event.target.files;
  let imgName = imgs[0].name;

  if (imgName.lastIndexOf(".") <= 0) {
    //invalid file
  } else {
    const fileReader = new FileReader();
    fileReader.addEventListener("load", () => {
      this.imgUrl = fileReader.resu<
    });
    fileReader.readAsDataURL(imgs[0]);
  }
 

Я хотел бы услышать ваши мысли. (Кстати, используя Vue)
Спасибо!

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

1. Моя первая мысль заключается в том, что это зависит от используемой вами базы данных. MySQL предоставляет тип столбца, который принимает строки в кодировке base64. Моя следующая мысль заключается в том, что base64 всегда будет прибавлять в весе. Вы должны изучить возможность сохранения изображения в виде двоичных данных (большой двоичный объект)

2. Изображения уже сжаты; повторное сжатие их на стороне клиента трудно и не стоит делать это в качестве первого шага по сравнению с тем, чтобы избегать base64. Как сказал code_monk, вы должны хранить двоичные данные непосредственно в своей базе данных.

3. Я думаю, что это также зависит от типа изображения и сервера, который вы используете. Я бы подумал, что вы загрузите исходное изображение, выполните сжатие, а затем сохраните результат в виде большого двоичного объекта. Затем преобразуйте его в base64 при получении изображения из БД. Более важный вопрос заключается в том, какова ваша общая проблема, которую вы пытаетесь решить?

4. Я отвечу на несколько вопросов. Я использую PostgreSQL, и моя серверная сторона-Spring. главная проблема в том, что мои ответы становятся очень большими из-за изображений, которые я отправляю. в настоящее время я сохраняю изображение в виде строки, которая может быть глупой, но это потому, что я также могу сохранять в этом столбце ссылки на изображения из Интернета.

5. Сохраните их в отдельной колонке…