📸 SnapForge
Forge your images with a single chain of commands.
A lightweight, fast and intuitive Python library for image processing built on top of Pillow.
Perfect for resizing, filtering, enhancing and transforming images with a clean, chainable API.
✨ Features
-
🚀 Fast & Lightweight: Minimal overhead for quick image tasks.
-
🔄 Format Conversion: Easily switch between JPEG, PNG, BMP, and more.
-
📏 Smart Resizing: High-quality scaling and resizing capabilities.
-
🛠️ Easy API: Designed with developer experience in mind—simple commands for complex tasks.
-
🐍 Pythonic: Follows Python's best practices for a seamless integration.
-
🔗 Chainable API: Build powerful image processing pipelines with clean and readable method chaining.
-
📷 Powered by Pillow: Uses the trusted Pillow library for reliable image processing.
-
⚡ Efficient Processing: Designed for smooth and practical image manipulation workflows.
-
🧾 MIT License: Open-source and free to use in personal and commercial projects.
📦 Installation
You can install SnapForge directly from PyPI using pip:
pip install snapforge
🚀 Quick Start
Here is a quick example to get you started with SnapForge:
from snapforge import SnapForge
(
SnapForge("photo.jpg")
.resize(800, 600)
.apply_grayscale(1.0)
.add_text("SnapForge", (30, 30))
.optimize(85)
.save("result.jpg")
)
print("Image processed successfully!")
📦 Available Methods
Here is the complete list of all available methods in SnapForge:
⚙️ Core
| Method | Description | Example |
|---|---|---|
.convert(fmt) |
Change image format (PNG, JPG, WEBP...) | .convert("PNG") |
.resize(w, h) |
Change image dimensions | .resize(800, 600) |
.thumbnail(w, h) |
Resize while keeping aspect ratio | .thumbnail(500, 500) |
.fit(w, h) |
Resize and crop to exact dimensions | .fit(1080, 1080) |
.crop(l, t, r, b) |
Crop image | .crop(0,0,100,100) |
.rotate(a) |
Rotate image | .rotate(90) |
.optimize(q) |
Set JPEG quality | .optimize(85) |
.save(name) |
Save image | .save("result.jpg") |
💡 Lighting
| Method | Description | Example |
|---|---|---|
.apply_brightness(f) |
Adjust brightness | .apply_brightness(1.2) |
.apply_contrast(f) |
Adjust contrast | .apply_contrast(1.5) |
.adjust_gamma(g) |
Correct image gamma | .adjust_gamma(1.3) |
.auto_enhance() |
Improve brightness, contrast and sharpness | .auto_enhance() |
.invert() |
Invert image colors | .invert() |
🎨 Filters
| Method | Description | Example |
|---|---|---|
.apply_sepia() |
Classic sepia effect | .apply_sepia() |
.apply_grayscale(f) |
Convert to grayscale | .apply_grayscale(1.0) |
.apply_blur(r) |
Gaussian blur | .apply_blur(5.0) |
.apply_sharpen() |
Sharpen image | .apply_sharpen() |
.apply_camscanner() |
Document scanner effect | .apply_camscanner() |
.apply_preset(name) |
Apply a professional preset | .apply_preset("vintage") |
✨ Extras
| Method | Description | Example |
|---|---|---|
.flip(dir) |
Flip image | .flip("horizontal") |
.add_watermark(path) |
Add watermark | .add_watermark("logo.png") |
.add_text(text, pos) |
Draw text | .add_text("Hello!", (50,50)) |
.add_border(size, color) |
Add border | .add_border(10, (0,0,0)) |
.round_corners(radius) |
Round image corners | .round_corners(40) |
📊 Analysis
| Method | Description | Example |
|---|---|---|
.histogram() |
Generate histogram data | .histogram() |
.compare() |
Display image metadata and processing summary | .compare() |
🛠️ Requirements
To use SnapForge, ensure you have the following installed:
- Python: 3.7 or higher
- Dependencies:
Pillow(for image processing)requests(for automatic update checks)packaging(for version comparison logic)
🤝 Contributing
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
🌟 More Projects
If you enjoy SnapForge, you might also like this project ,too:
PixSlim
A Python image and ... compression library focused on reducing file size while preserving quality.
📜 License
Distributed under the MIT License.
❤️ Support
If you find SnapForge useful, your support means a lot!
You can help by:
- 📦 Installing the package and trying it in your projects
- 📝 Sharing feedback and suggestions
- 🐛 Reporting bugs and improvements
- 🌟 Recommending SnapForge to other Python developers
🧩 Every piece of feedback helps make SnapForge better. 🙏
👤 Author
Ali.Shm
Project Maintainer
Metadata
Release files for snapforge 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| snapforge-2.0.0.tar.gz | 9.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| snapforge-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.8 kB
Release files / snapforge-2.0.0.tar.gz
| Download URL | snapforge-2.0.0.tar.gz |
|---|---|
| Size | 9.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35d39e0b13dbd8e626ad1ea10012eef8907573b2848acdddd8dc99d842be6e79
|
|
BLAKE2b-256 checksum How to use checksums |
4d09e9f73c31c644805980323a4a6e96e8859d5b9003ac95b0a9ca2a8af8bda9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Release files / snapforge-2.0.0-py3-none-any.whl
| Download URL | snapforge-2.0.0-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a28be40f9b3b9bc124547787bcbf8fee425f804424f59390cb5e7fb90952abf5
|
|
BLAKE2b-256 checksum How to use checksums |
72ba17177f0bb33e698422a5464a3ac75794d77783392f1033724ee27d87c947
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Security for snapforge 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.