59 lines
2.3 KiB
Markdown
59 lines
2.3 KiB
Markdown
<div style="display:flex; gap:16px; align-items:center;">
|
||
<img src="app/assets/logo.png" alt="ICRA" width="140"/>
|
||
<div>
|
||
<strong>Interactive Color Range Analyzer</strong> is a Tkinter-based desktop tool for highlighting customised colour ranges in images.<br/>
|
||
Load a single photo or an entire folder, fine-tune hue/saturation/value sliders, and export overlays complete with quick statistics.
|
||
</div>
|
||
</div>
|
||
|
||
## Features
|
||
- Two synced previews (original + overlay)
|
||
- Hue/Sat/Value sliders with presets and image colour picker
|
||
- Exclusion rectangles or freehand polygons that persist while browsing
|
||
- Theme toggle (light/dark) with rounded toolbar buttons and accent-aware highlights
|
||
- Folder support with wrap-around previous/next navigation
|
||
- Quick overlay export (PNG) with configurable defaults and language settings via `config.toml`
|
||
|
||
## Requirements
|
||
- Python 3.11+ (3.10 works with `tomli`)
|
||
- [uv](https://github.com/astral-sh/uv) for dependency management
|
||
- Tkinter (install separately on some Linux distros)
|
||
|
||
## Setup with uv (Windows PowerShell)
|
||
```bash
|
||
git clone https://git.lukasmahler.de/lm/ICRA.git
|
||
cd ICRA
|
||
uv venv
|
||
source .venv/Scripts/activate
|
||
uv pip install .
|
||
uv run icra
|
||
```
|
||
The launcher copies Tcl/Tk resources into the virtualenv on first run, so no manual environment tweaks are needed.
|
||
On macOS/Linux activate with `source .venv/bin/activate` instead.
|
||
|
||
## Workflow
|
||
1. Load an image (`🖼`) or a folder (`📂`).
|
||
2. Pick a colour (`🎨` dialog, `🖱️` image click, or preset swatch).
|
||
3. Fine‑tune sliders; watch the overlay update on the right.
|
||
4. Toggle freehand mode (`△`) or stick with rectangles and mark areas to exclude (right mouse drag).
|
||
5. Move through folder images with `⬅️` / `➡️`; exclusions stay put unless you opt into automatic resets.
|
||
6. Save an overlay (`💾`) when ready.
|
||
|
||
## Project Layout
|
||
```
|
||
app/
|
||
app.py # main app assembly
|
||
gui/ # UI, theme, picker mixins
|
||
logic/ # image ops, defaults, config helpers
|
||
lang/ # localisation TOML files
|
||
config.toml # optional defaults
|
||
main.py # entry point
|
||
```
|
||
|
||
## Localisation
|
||
- English and German translations ship in `app/lang`. Set the desired language via the top-level `language` key in `config.toml`.
|
||
|
||
## Development
|
||
- Quick check: `uv run python -m compileall app main.py`
|
||
- Contributions welcome; include screenshots for UI tweaks.
|