Skip to content

imagefox is a sleek, powerful, and offline-friendly CLI toolkit for image processing. Compress, convert, or cleanse your images — all with one clever fox. Built with open-source Python libraries and designed for maximum usability.

License

Notifications You must be signed in to change notification settings

pradyroy/imagefox

Repository files navigation

🦊 imagefox

imagefox is a sleek, powerful, and offline-friendly CLI toolkit for image processing.
Compress, convert, or cleanse your images — all with one clever fox.
Built with open-source Python libraries and designed for maximum usability.

#imagecompression #exifremoval #imageconversion #metadataedit #opensource #pythoncli #privacytools


✨ Features

  • 🗜️ Compress JPEG/PNG/WebP by adjusting quality or dimensions
  • 🔄 Convert image formats (JPEG ↔ PNG ↔ BMP ↔ WebP)
  • 🧹 Read, remove, and edit EXIF metadata (camera model, GPS, date, etc.)
  • 💬 Clean, UNIX-style CLI interface
  • 🧪 Includes full unit test suite for reliability
  • 🧰 No external APIs, works 100% offline

🧩 Dependencies

Install via:

pip install -r requirements.txt

💻 Local Setup

Clone the repository and run the CLI locally:

git clone https://github.com/pradyroy/imagefox.git
cd imagefox
python3 -m venv venv
source venv/bin/activate  # or venv\Scripts\activate on Windows
pip install -r dev-requirements.txt
pip install -r requirements.txt

🧰 CLI Usage

# 📦 Compress an image with optional resizing
python -m imagefox compress input.jpg \
  --output output.jpg \
  --quality 70 \
  --resize 1024x768

# 🔄 Convert an image to a different format (e.g., PNG to JPEG)
python -m imagefox convert input.png \
  --output output.jpeg \
  --to jpeg

# 🔍 View EXIF metadata of an image
python -m imagefox metadata-view input.jpg

# 🧹 Remove all EXIF metadata from an image
python -m imagefox metadata-remove input.jpg \
  --output clean.jpg

# ✏️ Edit a specific EXIF metadata field (e.g., camera model)
python -m imagefox metadata-edit input.jpg \
  --field Model \
  --value "MyCustomCamera" \
  --output edited.jpg

# 📝 Write full EXIF metadata from a JSON file (overwrites in-place)
python -m imagefox metadata-write input.jpg \
  --json metadata.json
{
  "0th": {
    "Artist": "Pradyumna Das Roy",
    "Copyright": "Trilp AI",
    "Make": "Nikon",
    "Model": "COOLPIX P900",
    "ImageDescription": "Sunset at the lake",
    "Software": "ImageFox 1.0",
    "DateTime": "2025:07:29 18:30:00"
  },
  "Exif": {
    "DateTimeOriginal": "2025:07:29 18:30:00",
    "UserComment": "A calm sunset view captured while hiking."
  },
  "GPS": {
    "Latitude": 22.58245,
    "Longitude": 88.37009
  }
}

Use --help with any command:

python -m imagefox --help
python -m imagefox compress --help
python -m imagefox convert --help
python -m imagefox metadata-view --help
python -m imagefox metadata-remove --help
python -m imagefox metadata-edit --help
python -m imagefox metadata-write --help

🧪 Sample Input/Output

Action Input Output
Compress photo.jpg photo_compressed.jpg
Convert logo.png logo.jpeg
Remove EXIF img.jpg img_clean.jpg
Edit EXIF raw.jpg raw_edited.jpg

🤝 Contributing

We welcome contributions!
Please see the CONTRIBUTING.md file for setup, coding guidelines, and pull request instructions.


⚖️ License

This project is licensed under the MIT License.

© 2025 Pradyumna Das Roy. All rights reserved.

About

imagefox is a sleek, powerful, and offline-friendly CLI toolkit for image processing. Compress, convert, or cleanse your images — all with one clever fox. Built with open-source Python libraries and designed for maximum usability.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages