π Privacy-First Image Metadata Tool β v1.0.0-beta - Production Ready
A complete, cross-platform utility for viewing and stripping metadata from image files. Features both CLI and GUI interfaces for privacy-focused image processing. Ready-to-use Windows executables included - no installation required!
- π Metadata Viewing: Comprehensive EXIF, IPTC, and XMP data display
- π§Ή Privacy Protection: Remove all metadata or GPS/location data only
- π Batch Processing: Process multiple files and directories
- πΎ Safe Operations: Automatic backups with pixel data integrity verification
- π₯οΈ Dual Interface: Command-line tool and user-friendly GUI
- π¦ Ready-to-Run: Windows executables included, no installation needed
- π Fast & Lightweight: Instant processing for typical images
- π Privacy-First: Local processing only, no network connectivity
Download the latest release and extract the zip file:
ExifAnalyzer-GUI.exe- User-friendly graphical interfaceExifAnalyzer-CLI.exe- Command-line interface
# Run the GUI
ExifAnalyzer-GUI.exe
# 1. Click "File" to select an image
# 2. View metadata in the tree display
# 3. Use "Strip All Metadata" or "Strip GPS Only" buttons
# 4. Privacy warnings highlight sensitive data in red# View metadata from an image
ExifAnalyzer-CLI.exe view image.jpg
# Strip all metadata
ExifAnalyzer-CLI.exe strip image.jpg
# Remove only GPS/location data
ExifAnalyzer-CLI.exe strip --gps-only image.jpg
# Batch process multiple files
ExifAnalyzer-CLI.exe strip *.jpg
# Get help
ExifAnalyzer-CLI.exe --helpgit clone https://github.com/BentWorks/ExifAnalyzer.git
cd ExifAnalyzer
pip install -r requirements.txt
python cli_launcher.py --help # CLI
python gui_launcher.py # GUI| Format | View | Strip | Notes |
|---|---|---|---|
| JPEG | β | β | Complete EXIF, IPTC, XMP support |
| PNG | β | β | Text chunks and XMP metadata |
| TIFF | π§ | π§ | Planned for v1.1 |
| WebP | π§ | π§ | Planned for v1.1 |
ExifAnalyzer uses a modular architecture with format-specific adapters:
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β CLI/GUI ββββββ Metadata Engine ββββββ File Safety β
β Interface β β Orchestrator β β Manager β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β
βββββββββββΌββββββββββ
β β β
ββββββββΌββββ βββββΌβββββ ββββΌββββββ
β JPEG β β PNG β β Future β
β Adapter β βAdapter β βAdaptersβ
ββββββββββββ ββββββββββ ββββββββββ
MetadataEngine: Central orchestrator that routes operations to format-specific adaptersBaseMetadataAdapter: Abstract interface ensuring consistent behavior across formatsImageMetadata: Unified metadata structure with privacy-aware operationsFileSafetyManager: Handles backups, integrity verification, and atomic operations
ExifAnalyzer is designed with privacy as a core principle:
- π Local Processing Only: No cloud connectivity or data transmission
- π GPS Detection: Automatically identifies and removes location data
- π± Device Anonymization: Strips camera make, model, and serial numbers
- π Privacy Audit: Lists all privacy-sensitive metadata before removal
- β Integrity Verification: Ensures pixel data remains unchanged
- GPS coordinates and altitude
- Camera make, model, serial numbers
- Software and lens information
- User names and copyright info
- Creation locations and addresses
ExifAnalyzer/
βββ src/exif_analyzer/ # Main source code
β βββ core/ # Core metadata engine
β βββ adapters/ # Format-specific handlers
β βββ cli/ # Command-line interface
β βββ gui/ # GUI interface (planned)
βββ tests/ # Test suite
βββ docs/ # Documentation
βββ examples/ # Usage examples
# Run all tests
python -m pytest tests/ -v
# Run with coverage
python -m pytest tests/ --cov=src/exif_analyzer --cov-report=html
# Run specific test file
python -m pytest tests/test_jpeg_adapter.py -v# Format code
python -m black src/ tests/
# Lint code
python -m flake8 src/ tests/
# Type checking
python -m mypy src/Complete Implementation:
- Full CLI interface with all commands
- Complete GUI interface with file browser
- JPEG metadata handling (EXIF, IPTC, XMP)
- PNG metadata handling (text chunks, XMP)
- Privacy-focused GPS/location detection
- Safe file operations with automatic backups
- Windows executables (32MB each, self-contained)
- Comprehensive test suite (116 tests, 67% coverage)
- Complete documentation and user guides
Key Achievements:
- File Safety: 94% test coverage for critical operations
- Zero Installation: Ready-to-run Windows executables
- Production Quality: Handles real-world image processing safely
- User-Friendly: Both technical CLI and intuitive GUI interfaces
- v1.1: Additional format support (TIFF, WebP)
- v1.2: Cross-platform executables (macOS, Linux)
- v1.3: Advanced batch processing features
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for new functionality
- Ensure all tests pass (
python -m pytest) - Format code (
python -m black src/ tests/) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- PIL (Pillow): Core image processing capabilities
- piexif: Comprehensive EXIF metadata handling
- python-xmp-toolkit: XMP metadata support
- Click: Elegant command-line interface framework
- PySimpleGUI: Simple and powerful GUI framework
- π Documentation
- π Issue Tracker
- π¬ Discussions
π Privacy Note: This tool is designed to enhance your privacy by removing metadata from images. However, always verify that sensitive data has been completely removed before sharing images publicly.