Методы преобразования изображений в Base64 с максимальным размером 4 МБ

Чтобы преобразовать изображение в строку Base64 с максимальным размером 4 МБ, вы можете использовать несколько методов. Вот несколько вариантов:

  1. JavaScript:

    • Используйте элемент HTML5 Canvas и метод toDataURL, чтобы преобразовать изображение в строку Base64. При необходимости вы можете изменить размер изображения, чтобы его размер не превышал ограничения в 4 МБ.
    • Вот пример фрагмента кода:
      const fileInput = document.getElementById('fileInput');
      const canvas = document.createElement('canvas');
      const ctx = canvas.getContext('2d');
      fileInput.addEventListener('change', (event) => {
      const file = event.target.files[0];
      const reader = new FileReader();
      reader.onload = (readerEvent) => {
       const image = new Image();
       image.onload = () => {
         const MAX_SIZE = 4 * 1024 * 1024; // 4MB
         let width = image.width;
         let height = image.height;
         if (width * height > MAX_SIZE) {
           const ratio = Math.sqrt(MAX_SIZE / (width * height));
           width *= ratio;
           height *= ratio;
         }
         canvas.width = width;
         canvas.height = height;
         ctx.drawImage(image, 0, 0, width, height);
         const base64Data = canvas.toDataURL('image/jpeg');
         console.log(base64Data);
       };
       image.src = readerEvent.target.result;
      };
      reader.readAsDataURL(file);
      });
    • В приведенном выше примере мы используем элемент ввода с идентификатором fileInputдля выбора файла изображения. Результирующая строка Base64 будет записана в консоль.
  2. Питон:

    • Вы можете использовать библиотеку Pillow в Python, чтобы открывать изображение и манипулировать им, а затем преобразовать его в строку Base64.
    • Вот пример фрагмента кода:
      from PIL import Image
      import base64
      def image_to_base64(image_path):
       with open(image_path, 'rb') as image_file:
           image_data = image_file.read()
           base64_data = base64.b64encode(image_data)
           return base64_data.decode('utf-8')
      # Usage example:
      image_path = 'path/to/your/image.jpg'
      base64_string = image_to_base64(image_path)
      print(base64_string)
    • Замените 'path/to/your/image.jpg'фактическим путем к файлу изображения. Результирующая строка Base64 будет выведена на консоль.