64 lines
1.9 KiB
Markdown
64 lines
1.9 KiB
Markdown
# ICRS (Interactive Color Range Analyzer)
|
||
|
||
ICRS is a small Tkinter tool for analysing colour ranges in images. You load a picture, pick or click a reference colour, adjust hue/saturation/value sliders, and the app marks matching pixels while showing quick stats.
|
||
|
||
## Features
|
||
- Two synced previews (original + overlay)
|
||
- Hue/Sat/Value sliders with presets and image colour picker
|
||
- Exclusion rectangles to ignore regions
|
||
- Theme toggle (light/dark) with rounded toolbar buttons
|
||
- Folder support with previous/next navigation
|
||
- Quick overlay export (PNG) and optional defaults 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
|
||
```bash
|
||
git clone https://git.lukasmahler.de/lm/ICRS.git
|
||
cd ICRS
|
||
uv venv
|
||
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
||
uv pip install . # install ICRS and dependencies
|
||
uv run icrs # launches the GUI
|
||
```
|
||
To include the optional ttkbootstrap theme pack:
|
||
```bash
|
||
uv pip install '.[ui]'
|
||
```
|
||
|
||
## 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. Move through folder images with `⬅️` / `➡️`.
|
||
5. Draw exclusions with right drag; reset or save when ready.
|
||
|
||
## Config Defaults
|
||
Optional `config.toml`:
|
||
```toml
|
||
[defaults]
|
||
hue_min = 250.0
|
||
hue_max = 310.0
|
||
sat_min = 15.0
|
||
val_min = 15.0
|
||
val_max = 100.0
|
||
alpha = 120
|
||
```
|
||
|
||
## Project Layout
|
||
```
|
||
app/
|
||
app.py # main app assembly
|
||
gui/ # UI, theme, picker mixins
|
||
logic/ # image ops, defaults, reset
|
||
config.toml # optional defaults
|
||
main.py # entry point
|
||
```
|
||
|
||
## Development
|
||
- Quick check: `uv run python -m compileall app main.py`
|
||
- Contributions welcome; include screenshots for UI tweaks.
|