You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.4 KiB
63 lines
1.4 KiB
|
7 months ago
|
# 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).
|