# Imaginator Batch image resizer and converter — CLI and desktop GUI. ## Project structure ``` imaginator/ core/ Shared processing logic (no UI dependencies) types.go Config, ProcessResult, ImageSummary, Progress collect.go Directory walking and file filtering validate.go Config validation naming.go Filename transformations (replace, case, spaces) encode.go Image encoding helpers process.go Single-image processor + concurrent batch runner cmd/ cli/main.go Command-line interface gui/main.go Fyne desktop application go.mod Makefile ``` ## Build ```bash # Both binaries make all # CLI only make cli # GUI only make gui # Windows GUI (no console window) make gui-win ``` ## Requirements - Go 1.22+ - Fyne dependencies: on Linux, `libgl1-mesa-dev`, `xorg-dev` - On macOS and Windows: no extra dependencies ## CLI usage ``` imaginator -dir ./photos -out ./thumbs -width 800 imaginator -dir ./raw -out ./web -width 1920 -height 1080 -format jpg -quality 90 imaginator -dir ./icons -out ./dist -width 64 -format png -ts src/assets/icons.ts ``` Run `imaginator -help` for the full flag reference. ## GUI ``` imaginator-gui ``` Three tabs: **Configure** (all options), **Progress** (real-time log and progress bar), **Results** (table with before/after preview on row click).