Analyze, understand, and purify your images.
Picturify is a modern and secure web application dedicated to managing image metadata (EXIF). It enables users to visualize hidden data (GPS, Device, Dates), filter it using smart templates, or completely remove it for privacy.
Built with Flask and Bulma, it offers a premium, responsive glassmorphism UI with robust batch processing capabilities.
- Drag & Drop: Upload multiple images (up to 10) simultaneously.
- Batch Grid: View all uploaded images in a card grid with status indicators.
- Global Actions:
- Purify All: Remove metadata from all images in one click.
- Apply Smart Templates: Apply "Flickr Mode" or "Basic Clean" to the entire batch.
- Individual Control: Delete specific images from the batch dynamically.
- Management: Reset the session with "Start Over" or Download All as a ZIP.
- Smart Privacy: Prompt to immediately clean files from the server after downloading.
- Interactive Map: Visualize GPS coordinates on a Leaflet map.
- Metadata Viewer: clear display of Device, Lens, Aperture, ISO, and Date.
- Raw Data: Access the full EXIF key-value pairings.
- Editor: Modify Copyright, Artist, Description, and Software fields.
- GPS Editor: Set, Change, or Remove GPS location by clicking on the map.
- Smart Templates:
- Flickr Mode: Keeps Title, Description, Artist, Copyright, GPS, and Technical stats.
- Copyright Only: Strips everything except Copyright and Artist.
- Basic Clean: Removes GPS and sensitive info but keeps technical data.
- Deep Clean: Removes all metadata (EXIF, XMP, IPTC, Photoshop) by re-encoding the image.
- Lossless Handling: Prevents image degradation while ensuring files are scrubbed clean.
Tune the application via config.py variables:
IMAGE_QUALITY: JPEG output quality (1-100). Default100(Max quality). Set to85for smaller files.IMAGE_SUBSAMPLING: Color sampling.0(4:4:4 Best),2(4:2:0 Standard).
MAX_BATCH_SIZE: Files per session (Default: 10).MAX_CONTENT_LENGTH: Upload size limit (Default: 150 MB).MAX_FILE_AGE_SECONDS: Auto-cleanup age (Default: 600s).CLEANUP_PROBABILITY: Chance of triggering cleanup on request (0.0-1.0).
Prerequisites: Docker Engine
- Clone and run:
git clone https://github.com/ClementLG/Picturify.git cd Picturify docker compose up --build - Access:
http://localhost:5000
- Install dependencies:
pip install -r requirements.txt - Run:
python run.py
Control the mode via docker-compose.yml FLASK_ENV:
production: Uses Gunicorn (high performance).development: Uses Flask Debug Server (hot reload).
- Auto-Cleanup: Stale files are automatically deleted to prevent storage overflow.
- Secure Handling: Filenames are sanitized; uploads are validated via PIL.
- Headers: HSTS and security headers enabled via
Flask-Talisman. - CSRF: All forms protected by
Flask-WTF.