Untitled

 avatar
unknown
plain_text
a year ago
1.0 kB
5
Indexable
import React from 'react';
import ImageCompressor from 'image-compressor';

const ImageUploader = () => {
  const handleImageChange = async (e) => {
    const files = e.target.files;
    const newImages = Array.from(files);

    const compressedImages = await Promise.all(newImages.map(compressImage));

    // Convert compressed images to base64 strings
    const base64Images = compressedImages.map(image => URL.createObjectURL(image));

    // Store base64 strings in local storage
    localStorage.setItem('uploadedImages', JSON.stringify(base64Images));
  };

  const compressImage = async (file) => {
    if (file.size > 2 * 1024 * 1024) { // 2MB in bytes
      // Compress the image if it exceeds 2MB
      const compressedImage = await new ImageCompressor(file, { quality: 0.6 }).compress();
      return compressedImage;
    } else {
      return file;
    }
  };

  return (
    <div>
      <input type="file" onChange={handleImageChange} multiple />
    </div>
  );
};

export default ImageUploader;
Editor is loading...
Leave a Comment