Untitled

 avatar
unknown
plain_text
2 years ago
1.4 kB
4
Indexable
import React, { useEffect, useState } from 'react';
import imageCompressor from 'image-compressor';
import './ImageFetcher.css';

const ImageFetcher = () => {
  const [fetchedImages, setFetchedImages] = useState([]);

  useEffect(() => {
    const fetchAndDecompressImages = async () => {
      // Fetch stored images from local storage
      const storedImages = localStorage.getItem('uploadedImages');

      // Parse stored base64 strings
      if (storedImages) {
        const base64Images = JSON.parse(storedImages);
        const decompressedImages = await Promise.all(base64Images.map(decompressImage));
        setFetchedImages(decompressedImages);
      }
    };

    fetchAndDecompressImages();
  }, []);

  const decompressImage = async (base64String) => {
    const compressedImageBlob = await fetch(base64String).then((res) => res.blob());
    const decompressedImage = await imageCompressor(compressedImageBlob, { quality: 1 });
    return URL.createObjectURL(decompressedImage);
  };

  return (
    <div className="image-grid-container">
      <h2>Fetched Images</h2>
      <div className="image-grid">
        {fetchedImages.map((imageSrc, index) => (
          <div key={index} className="image-item">
            <img src={imageSrc} alt={`Uploaded ${index}`} />
          </div>
        ))}
      </div>
    </div>
  );
};

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