ICRA
Interactive Color Range Analyzer is being reimagined with a PySide6 user interface.
This branch focuses on building a native desktop shell with modern window controls before porting the colour-analysis features.
## Current prototype - Custom frameless window with minimise / maximise / close controls that hook into Windows natively - Dark themed layout and basic image preview powered by Qt - “Open image” workflow that displays the selected asset scaled to the viewport > ⚠️ Legacy Tk features (sliders, exclusions, folder navigation, stats) are not wired up yet. The goal here is to validate the PySide6 shell first. ## Requirements - Python 3.11+ - [uv](https://github.com/astral-sh/uv) for dependency management - Windows 10/11 recommended (PySide6 build included; Linux/macOS should work but are untested in this branch) ## Setup with uv (PowerShell example) ```bash git clone https://git.lukasmahler.de/lm/ICRA.git cd ICRA uv venv source .venv/Scripts/activate # macOS/Linux: source .venv/bin/activate uv pip install . uv run icra ``` The app launches directly as a PySide6 GUI—no browser or local web server involved. Use the “Open Image…” button to load a file and test resizing/snap behaviour. ## Roadmap (branch scope) 1. Port hue/saturation/value controls to Qt widgets 2. Re-implement exclusion drawing using QPainter overlays 3. Integrate existing image-processing logic (`app/logic`) with the new UI ## Project layout ``` app/ assets/ # Shared branding gui/, logic/ # Legacy Tk code kept for reference qt/ # New PySide6 implementation (main_window, app bootstrap) config.toml # Historical defaults (unused in the prototype) main.py # Entry point -> PySide6 launcher ``` ## Development notes - Quick syntax check: `uv run python -m compileall app main.py` - Uploaded images are not persisted; the preview uses Qt pixmaps only. - Contributions welcome—please target this branch with PySide6-specific improvements.