Try Ocr
Try Ocr
function CapturedImages() {
const [images, setImages] = useState([]);
const [selectedIndex, setSelectedIndex] = useState(0);
const [brightness, setBrightness] = useState(100);
const [contrast, setContrast] = useState(100);
const [filteredImage, setFilteredImage] = useState('');
const [message, setMessage] = useState('');
const [extractedTexts, setExtractedTexts] = useState([]); // State for OCR
results
useEffect(() => {
const storedImages = JSON.parse(localStorage.getItem('capturedImages')) || [];
setImages(storedImages);
if (storedImages.length > 0) {
setFilteredImage(storedImages[0]);
}
}, []);
img.src = src;
img.onload = () => {
canvas.width = img.width;
canvas.height = img.height;
context.filter = `brightness(${brightness}%) contrast(${contrast}%)`;
context.drawImage(img, 0, 0, canvas.width, canvas.height);
setFilteredImage(canvas.toDataURL('image/png'));
};
};
if (extractedText) {
setExtractedTexts((prevTexts) => [...prevTexts, extractedText]);
}
};
useEffect(() => {
if (images.length > 0) {
applyFilters(images[selectedIndex]);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [images, selectedIndex]);
return (
<div className={styles.container}>
<h1>Captured Images</h1>
<div className={styles.imageGallery}>
{images.length > 0 && (
<>
<button onClick={prevImage} className={`${styles.arrowButton} $
{styles.left}`}>
❮
</button>
<img src={filteredImage} alt="Selected"
className={styles.capturedImage} />
<button onClick={nextImage} className={`${styles.arrowButton} $
{styles.right}`}>
❯
</button>
</>
)}
</div>
<div className={styles.buttonGroup}>
<button onClick={handleSaveImage}>Save Image</button>
<button onClick={handleDeleteImage}>Delete Image</button>
{/*
Instead of a normal button for Try OCR,
we add a <Link> to your fileUpload page
carrying the selected image as query param.
*/}
<Link
href={{
pathname: '/file-upload', // <-- Adjust this to wherever your
fileUpload route is
query: { imageName: images[selectedIndex] },
}}
>
<button>Try OCR</button>
</Link>
</div>
{message && <p>{message}</p>}