4.9 KiB
4.9 KiB
Photo Editor with Libraw RAW Processing
A Rust-based photo editor that processes RAW images using the libraw library for professional photography adjustments.
Features
- Process RAW image files with 11 adjustment parameters
- Full CLI interface with parameter validation
- Direct integration with system-installed libraw library
- Optimized release build (650KB executable)
- Cross-platform compatibility (macOS tested)
Installation
Prerequisites
First install libraw on your system:
macOS:
brew install libraw
Building
# Clone the repository
git clone <repository-url>
cd PhotoEditor/photo_editor
# Build release version
cargo build --release
# Find the executable in:
./target/release/photo_editor
Usage
Basic Usage
./target/release/photo_editor \
--input input_file.raw \
--output output_file.jpg \
--exposure 0.5 \
--contrast 20 \
--highlights -10 \
--shadows 5 \
--whites 0 \
--blacks 0 \
--clarity 10 \
--vibrance 15 \
--saturation 5 \
--temperature 10 \
--tint 5
CLI Options
Photo Editor v0.1
==================
Input file: example.raw
Output file: output.jpg
Exposure: 0.0
Contrast: 0
Highlights: 0
Shadows: 0
Whites: 0
Blacks: 0
Clarity: 0
Vibrance: 0
Saturation: 0
Temperature: 0
Tint: 0
Photo Editor - A Rust-based photo editor with RAW image processing capabilities using libraw
Usage: photo_editor [OPTIONS] --input <INPUT> --output <OUTPUT>
Options:
-i, --input <INPUT> Input raw image file to process
-o, --output <OUTPUT> Output processed image file
--exposure <EXPOSURE> Exposure adjustment (-2.0 to 2.0) [default: 0.0]
--contrast <CONTRAST> Contrast adjustment (-100 to 100) [default: 0]
--highlights <HIGHLIGHTS> Highlights adjustment (-100 to 100) [default: 0]
--shadows <SHADOWS> Shadows adjustment (-100 to 100) [default: 0]
--whites <WHITES> Whites adjustment (-100 to 100) [default: 0]
--blacks <BLACKS> Blacks adjustment (-100 to 100) [default: 0]
--clarity <CLARITY> Clarity adjustment (-100 to 100) [default: 0]
--vibrance <VIBRANCE> Vibrance adjustment (-100 to 100) [default: 0]
--saturation <SATURATION> Saturation adjustment (-100 to 100) [default: 0]
--temperature <TEMPERATURE> Temperature adjustment (-100 to 100) [default: 0]
--tint <TINT> Tint adjustment (-100 to 100) [default: 0]
-h, --help Print help information
-V, --version Print version information
Example Commands
Basic processing without adjustments:
./target/release/photo_editor \
--input sample.raw \
--output output.jpg
Dramatic enhancement with multiple adjustments:
./target/release/photo_editor \
--input sample.raw \
--output dramatic_output.jpg \
--exposure 0.8 \
--contrast 30 \
--highlights -20 \
--shadows 15 \
--whites 5 \
--blacks -10 \
--clarity 25 \
--vibrance 30 \
--saturation 20 \
--temperature 15 \
--tint 8
Fine-tuning highlights and shadows:
./target/release/photo_editor \
--input sample.raw \
--output refined.jpg \
--highlights -15 \
--shadows 10 \
--whites 5 \
--blacks -5
Advanced configuration with negative exposure:
./target/release/photo_editor \
--input sample.raw \
--output processed.jpg \
--exposure -0.3 \
--contrast 40 \
--clarity 15 \
--vibrance 20
Adjustment Parameters
| Parameter | Range | Effect |
|---|---|---|
| Exposure | -2.0 to 2.0 | Controls overall brightness |
| Contrast | -100 to 100 | Adjusts image contrast |
| Highlights | -100 to 100 | Control highlight recovery |
| Shadows | -100 to 100 | Control shadow detail |
| Whites | -100 to 100 | Control white point |
| Blacks | -100 to 100 | Control black point |
| Clarity | -100 to 100 | Enhances edge definition |
| Vibrance | -100 to 100 | Adjusts color saturation |
| Saturation | -100 to 100 | Controls overall color intensity |
| Temperature | -100 to 100 | Adjusts color temperature |
| Tint | -100 to 100 | Adjusts color tint |
Technical Details
- Built with Rust for safety and performance
- Integrates directly with system-installed libraw C library
- Uses Cargo toolchain for dependency management
- Optimized for size (650KB executable)
- Full error handling and resource cleanup
- Cross-platform compatibility with appropriate system dependencies
Requirements
- macOS with
brewpackage manager (for libraw installation) - Rust 1.70+ toolchain
- libraw C library installed via Homebrew
License
MIT License