An open API service indexing awesome lists of open source software.

https://github.com/brian-sinquin/mimg

A chained image modifier written in Zig
https://github.com/brian-sinquin/mimg

Last synced: 4 months ago
JSON representation

A chained image modifier written in Zig

Awesome Lists containing this project

README

          

# mimg

[![mimg](https://github.com/brian-sinquin/mimg/actions/workflows/dev.yml/badge.svg)](https://github.com/brian-sinquin/mimg/actions/workflows/dev.yml) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/brian-sinquin/mimg?label=ver)](https://github.com/brian-sinquin/mimg/releases/latest) [![Gallery](https://img.shields.io/badge/gallery-demo-blue)](https://brian-sinquin.github.io/mimg/)

**Fast, SIMD-optimized command-line image processing tool written in Zig**

## โœจ Features

- ๐Ÿš€ **High Performance**: SIMD-optimized operations with 1000+ MPixels/sec throughput
- ๐ŸŽจ **Rich Effects**: 30+ modifiers including color adjustments, filters, and transforms
- ๐Ÿ”— **Chain Operations**: Combine multiple effects in a single command
- ๐Ÿ“ **Presets**: Save and reuse complex processing chains
- ๐Ÿ–ผ๏ธ **Multiple Formats**: PNG, TGA, QOI, PAM, PBM, PGM, PPM, PCX support
- ๐Ÿงต **Multithreaded**: Efficient batch processing of multiple images
- ๐Ÿ“š **Library API**: Use as a Zig library for programmatic processing

## ๐Ÿš€ Quick Start

```bash
# Install from releases or build from source
zig build

# Apply a single effect
zig build run -- input.png brightness 20 -o output.png

# Chain multiple effects
zig build run -- input.png brightness 20 saturation 1.3 sharpen -o output.png

# Use a preset for complex processing
zig build run -- input.png --preset vintage.preset -o output.png
```

## ๐Ÿ“– Documentation

- **[Installation & Building](docs/installation.md)** - Get started with mimg
- **[Available Modifiers](docs/modifiers.md)** - Complete list of all effects and transforms
- **[Presets](docs/presets.md)** - Save and reuse processing chains
- **[Usage Examples](docs/examples.md)** - Practical examples and use cases
- **[Performance](docs/performance.md)** - Benchmarks and optimization tips
- **[File Formats](docs/formats.md)** - Supported input/output formats
- **[Troubleshooting](docs/troubleshooting.md)** - Common issues and solutions
- **[Library API](docs/library.md)** - Use mimg programmatically in Zig

## ๐Ÿ“Š Performance Highlights

| Operation | Throughput | Notes |
|-----------|------------|-------|
| Grayscale | 1078 MPixels/sec | Simple luminance calculation |
| Invert Colors | 1025 MPixels/sec | Fast bitwise operations |
| Brightness | 831 MPixels/sec | SIMD-optimized |
| Gaussian Blur | 72 MPixels/sec | Separable kernel |
| Rotate 90ยฐ | 1334 MPixels/sec | Pixel rearrangement |

*Benchmarks on Intel i7-9750H with 256ร—256 images*

## ๐Ÿ› ๏ธ Requirements

- Zig 0.15.1 or later
- No external dependencies

## ๐Ÿ“„ License

MIT License - see [LICENSE](LICENSE) file for details.