127 lines
3.0 KiB
Markdown
127 lines
3.0 KiB
Markdown
|
||
# 🖼️ Image Reducer WebApp
|
||
|
||
**Image Reducer** est une application web simple et efficace, développée avec [Bottle](https://bottlepy.org/) et [Pillow](https://python-pillow.org), qui permet d’uploader un dossier entier d’images, de les redimensionner (en parallèle !), et de télécharger un `.zip` contenant les images optimisées.
|
||
|
||
💡 L'interface est moderne et inclut une galerie avec **prévisualisation Lightbox**, un **loader animé**, et une gestion du cache automatique.
|
||
|
||
---
|
||
|
||
## 🚀 Fonctionnalités
|
||
|
||
- ✅ Upload d’un **dossier complet d’images**
|
||
- ✅ Redimensionnement via **ratio personnalisable**
|
||
- ✅ Traitement **multi-process** (accéléré)
|
||
- ✅ Conservation des **métadonnées EXIF**
|
||
- ✅ Interface web avec **loader**, **galerie** & **Lightbox zoom**
|
||
- ✅ Téléchargement d’un **ZIP** contenant les images réduites
|
||
- ✅ Prêt à déployer avec **Docker**
|
||
|
||
---
|
||
|
||
## 📸 Démo (capture écran)
|
||
|
||
*📸* à insérer ici si tu veux des images de l’UI
|
||
|
||
---
|
||
|
||
## 📦 Installation locale
|
||
|
||
### 1. Cloner le projet
|
||
|
||
```bash
|
||
git clone https://git.jool-tech.com/Jool-Monitor/image-reducer.git
|
||
cd image-reducer
|
||
```
|
||
|
||
### 2. Créer un environnement virtuel (optionnel mais recommandé)
|
||
|
||
```bash
|
||
python -m venv venv
|
||
source venv/bin/activate # sous Windows : venv\Scripts\activate
|
||
```
|
||
|
||
### 3. Installer les dépendances
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 4. Lancer l’application
|
||
|
||
```bash
|
||
python app.py
|
||
```
|
||
|
||
Accédez à l’interface sur [http://localhost:8080](http://localhost:8080)
|
||
|
||
---
|
||
|
||
## 🐳 Utilisation avec Docker
|
||
|
||
### 1. Construire l’image
|
||
|
||
```bash
|
||
docker build -t image-reducer .
|
||
```
|
||
|
||
### 2. Lancer le conteneur
|
||
|
||
```bash
|
||
docker run -p 8080:8080 image-reducer
|
||
```
|
||
|
||
### 3. Avec synchronisation en live (développement)
|
||
|
||
```bash
|
||
docker run -p 8080:8080 -v $(pwd):/app image-reducer
|
||
```
|
||
|
||
---
|
||
|
||
## 📁 Structure du projet
|
||
|
||
```
|
||
image-reducer/
|
||
├── app.py # Application Bottle principale
|
||
├── requirements.txt # Dépendances Python
|
||
├── Dockerfile # Image Docker prête à builder
|
||
├── views/ # Templates HTML Bottle
|
||
│ ├── index.tpl # Formulaire upload avec loader
|
||
│ └── result.tpl # Page de galerie + Lightbox + download
|
||
```
|
||
|
||
---
|
||
|
||
## ⚙️ Technologies
|
||
|
||
- Python 3.9+
|
||
- Bottle (micro-framework web)
|
||
- Pillow (traitement d’images)
|
||
- Lightbox2 (galerie zoom)
|
||
- Docker (conteneurisation)
|
||
- HTML5 / CSS3
|
||
|
||
---
|
||
|
||
## ✅ Roadmap (à venir ?)
|
||
|
||
- [ ] Affichage de la **qualité d’image**
|
||
- [ ] Option pour choisir un **format de sortie** (`.jpg`, `.webp`, `.png`)
|
||
- [ ] Progression en temps réel (AJAX)
|
||
- [ ] Authentification utilisateur (pour usage pro ?)
|
||
- [ ] Intégration Django + Celery (scalabilité massive 🚀)
|
||
|
||
---
|
||
|
||
## 🙌 Crédits
|
||
|
||
Développé avec ❤️ par [Votre Nom ou Organisation]
|
||
Design frontend custom, inspiré d'UX modernes (Dropbox, Google Photos)
|
||
|
||
---
|
||
|
||
## 📄 Licence
|
||
|
||
Ce projet est sous licence MIT — libre à toi de l’utiliser, modifier et déployer 🚀
|