Forge your images into any format with blazing speed
A high-performance image converter and processor built with C# and Rust. PixelForge transforms your images between multiple formats with support for batch processing, resizing, and quality control, all at incredible speeds. Available both as a command-line tool and Windows desktop application.
- Blazing Fast: Built with Rust for maximum performance
- Batch Processing: Convert entire directories of images in parallel
- Multiple Formats: Support for JPEG, PNG, WebP, GIF, BMP, and TIFF
- Smart Resizing: Resize images while converting with high-quality algorithms
- Quality Control: Fine-tune compression settings for optimal results
- Progress Tracking: Beautiful progress bars for batch operations
- Cross-platform CLI: Works seamlessly on Windows, macOS, and Linux
- Windows GUI: User-friendly desktop application with clean interface
git clone https://github.com/lazzerex/pixel-forge.git
cd pixelforge/rust-cli
cargo build --releaseThe binary will be available at target/release/pxforge.
cd rust-cli
cargo install --path .If you don't want to use the CLI, I have also made a WinForms application that is more straight-forward and easier to use.
- .NET Framework 4.0 or later
- Windows 7 or later
- Clone this reposistory
- Use Cargo to build the Rust project first (you can refer to the code above for installing with Cargo)
- Build the WinForm application
- Move the binary file (pxforge.exe) to .\PixelForgeUI\bin\Debug
- Open PixelForgeUI.sln and run the application
# First build the Rust CLI
cd rust-cli
cargo build --release
cp target/release/pxforge.exe ../windows-ui/
# Then build the Windows application
cd ../windows-ui
dotnet build --configuration Release# Convert single image
pxforge -i input.jpg -o output.png -f png
# Convert with quality setting
pxforge -i photo.jpg -o photo.webp -f webp -q 90
# Resize while converting
pxforge -i large.png -o small.jpg -f jpg -r 800x600# Convert all images in a directory
pxforge -i ./photos -o ./converted -f webp --batch
# Batch convert with resizing
pxforge -i ./originals -o ./thumbnails -f jpg -r 200x200 --batch| Option | Short | Description | Default |
|---|---|---|---|
--input |
-i |
Input file or directory path | Required |
--output |
-o |
Output file or directory path | Required |
--format |
-f |
Output format (jpg, png, webp, gif, bmp, tiff) | png |
--quality |
-q |
Quality for lossy formats (1-100) | 80 |
--resize |
-r |
Resize image (WIDTHxHEIGHT) | None |
--batch |
-b |
Process all images in input directory | false |
--strip-metadata |
Strip metadata from images | false |
|
--force |
Overwrite existing files without asking | false |
|
--verbose |
-v |
Show detailed progress information | false |
The Windows GUI provides an intuitive interface for all PixelForge features:
- Choose conversion mode: Single file or batch folder processing
- Select input: Browse for your image file or folder
- Pick format: Choose your desired output format (PNG, JPEG, WebP, etc.)
- Set output location: Choose where to save converted images
- Adjust settings: Optional quality, resize, and metadata options
- Convert: Click the convert button and watch real-time progress
- Smart file dialogs: Automatically shows correct file types based on selected format
- Real-time progress: Live console output showing conversion progress
- Batch processing: Convert entire folders with progress tracking
- Quality preview: Adjust compression settings with live feedback
- Error handling: Clear error messages and validation
- Intuitive workflow: Logical step-by-step process guides users
pxforge -i photo.jpg -o photo.pngpxforge -i ./photos -o ./thumbnails -f webp -r 300x300 --batchpxforge -i input.png -o output.jpg -f jpg -q 95pxforge -i ./raw_photos -o ./processed -f jpg -q 85 --batch --verbose| Format | Extensions | Quality Control | Notes |
|---|---|---|---|
| JPEG | .jpg, .jpeg |
Yes | Lossy compression |
| PNG | .png |
No | Lossless compression |
| WebP | .webp |
Yes | Modern format, great compression |
| GIF | .gif |
No | Animation support |
| BMP | .bmp |
No | Uncompressed |
| TIFF | .tiff, .tif |
No | High quality, large files |
pixelforge/
├── rust-cli/ # Rust command-line application
│ ├── src/
│ │ ├── main.rs
│ │ ├── cli.rs
│ │ ├── converter.rs
│ │ └── utils.rs
│ └── Cargo.toml
├── windows-ui/ # Windows Forms desktop application
│ ├── PixelForgeUI/
│ │ ├── Form1.cs
│ │ ├── Program.cs
│ │ └── PixelForgeUI.csproj
│ └── PixelForgeUI.sln
└── README.md
PixelForge leverages Rust's performance and parallel processing for lightning-fast conversions:
- Single image: ~50-200ms depending on size and format
- Batch processing: Scales linearly with CPU cores (4-8x faster on multi-core systems)
- Memory efficient: Optimized for processing large batches without memory bloat
- Zero-copy operations: Minimal memory allocation during processing
We welcome contributions! Here's how you can help make PixelForge even better:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the 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.
- Advanced Filters: Blur, sharpen, brightness, contrast adjustments
- Watermarking: Add text or image watermarks
- EXIF Handling: Preserve or strip metadata with granular control
- Animation Support: Enhanced GIF and WebP animation processing
- Presets: Configuration files for common conversion workflows
- macOS/Linux GUI: Desktop applications for other platforms
- Cloud Integration: Direct upload/download from cloud storage
- Plugin System: Extensible architecture for custom processors
Forge your pixels, unleash your creativity!
