Photo Cloud Generator - Créez des nuages de photos artistiques

Créez des compositions artistiques de photos avec une photo principale entourée d’un nuage de photos secondaires. Supporte tous les formats d’image courants incluant RAW et HEIC.

✨ Fonctionnalités

  • 🪐 Mode Orbital - Photos sur orbites concentriques
  • 🌀 Mode Spirale - Disposition en spirale dynamique
  • ☁️ Mode Nuage - Distribution aléatoire naturelle
  • 🧱 Mode Briques - Mur de briques avec décalage
  • 🎨 Éclaircissement progressif - Fade avec la distance
  • 🔲 Fond transparent - Export PNG avec alpha
  • 📷 Tous formats - JPEG, PNG, HEIC, RAW, HDR…
  • 🔄 Correction automatique - Redressement EXIF des photos

📷 Formats Supportés

Catégorie Formats Dépendance
Standards JPEG, PNG, GIF, WebP, BMP, TIFF, TGA, PCX, PPM, ICO, PSD Pillow
Apple/Mobile HEIC, HEIF, AVIF pillow-heif
Canon RAW CR2, CR3, CRW rawpy
Nikon RAW NEF, NRW rawpy
Sony RAW ARW, SRF, SR2 rawpy
Fujifilm RAW RAF rawpy
Autres RAW ORF, RW2, PEF, DNG, MRW, ERF, RW2, X3F, IIQ, MEF, 3FR rawpy
HDR EXR, HDR, PFM, RGBE imageio
Scientifique FITS imageio
Autres RIFF, SGI, DDS, QOI, JPEG2000 Pillow

🎮 Démonstration Interactive

Testez l’outil directement dans votre navigateur :

🖼️ Générateur de Nuage de Photos


🔄 Correction Automatique de l’Orientation

Les photos sont automatiquement redressées selon leurs métadonnées EXIF. Plus besoin de corriger manuellement les photos prises en portrait !

Orientation EXIF Transformation appliquée
1 Normale (aucune)
2 Miroir horizontal
3 Rotation 180°
4 Miroir vertical
5 Miroir H + rotation 90°
6 Rotation 90° CW (iPhone portrait)
7 Miroir H + rotation 270°
8 Rotation 90° CCW

Cas typiques corrigés automatiquement :

  • 📱 Photos iPhone/Android prises en portrait
  • 📷 Photos reflex avec appareil tenu verticalement
  • 🔄 Photos pivotées dans l’appareil photo

📦 Installation

Dépendances de base

1
pip install pillow

Support formats étendus (optionnel)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# HEIC/HEIF/AVIF (photos iPhone, etc.)
pip install pillow-heif

# RAW (appareils photo reflex/hybrides)
pip install rawpy

# HDR (EXR, HDR, PFM)
pip install imageio numpy

# Interface Streamlit
pip install streamlit

# Interface Web Flask
pip install flask

Installation complète

1
pip install pillow pillow-heif rawpy imageio numpy streamlit flask

🚀 3 Interfaces Disponibles

1. Application Streamlit (Recommandée)

Interface graphique moderne et interactive.

1
streamlit run photo_cloud_streamlit.py

Ouvre automatiquement http://localhost:8501

Fonctionnalités:

  • Glisser-déposer multi-fichiers
  • Tous formats supportés (HEIC, RAW, HDR…)
  • Prévisualisation temps réel
  • Export PNG/JPEG
  • Interface responsive

2. Interface Web Flask

Interface web légère.

1
python photo_cloud_web.py

Ouvrir http://localhost:5000

3. Ligne de Commande

Pour l’automatisation et les scripts.

1
python photo_cloud_complete.py --main photo.jpg --photos dossier/ --layout orbital

🖥️ Utilisation CLI

Syntaxe

1
python photo_cloud_complete.py --main PHOTO --photos DOSSIER [OPTIONS]

Exemples par layout

Orbital

1
2
3
4
5
6
python photo_cloud_complete.py \
--main portrait.jpg \
--photos vacances/ \
--layout orbital \
--fade 0.5 \
--output resultat.png

Spirale

1
2
3
4
5
6
python photo_cloud_complete.py \
--main portrait.jpg \
--photos photos/ \
--layout spiral \
--fade 0.7 \
--fade-curve 0.8

Nuage

1
2
3
4
5
python photo_cloud_complete.py \
--main portrait.jpg \
--photos photos/ \
--layout cloud \
--transparent

Briques avec fond transparent

1
2
3
4
5
6
7
python photo_cloud_complete.py \
--main portrait.jpg \
--photos photos/ \
--layout brick \
--transparent \
--gap 5 \
--brick-ratio 1.5

Haute résolution 4K

1
2
3
4
5
6
python photo_cloud_complete.py \
--main portrait.jpg \
--photos photos/ \
--size 3840x2160 \
--main-size 800x800 \
--thumb-size 250x250

Avec photos RAW

1
2
3
4
python photo_cloud_complete.py \
--main DSC_0001.NEF \
--photos raw_photos/ \
--layout orbital

⚙️ Paramètres

Paramètre Description Défaut
--main, -m Photo principale (requis)
--photos, -p Photos ou dossier (requis)
--output, -o Fichier de sortie photo_cloud.png
--layout, -l orbital, spiral, cloud, brick orbital
--size, -s Taille canvas (LxH) 1920x1080
--main-size Taille photo principale 400x400
--thumb-size Taille miniatures 150x150
--fade Éclaircissement (0-1) 0.5
--fade-curve Courbe (<1 rapide, >1 lent) 1.0
--transparent, -t Fond transparent false
--bg-color Couleur fond R,G,B 30,30,35
--gap Espacement briques 4
--brick-ratio Ratio L/H briques 1.5
--max-photos Limite nombre photos
--corner-radius Coins arrondis 10
--no-shadows Sans ombres false
--no-glow Sans lueur centrale false

🐍 Utilisation comme Module

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from photo_cloud_complete import create_photo_cloud, load_image, collect_photos_from_path

# Charger les photos
main = load_image("portrait.jpg")
photos = [load_image(p) for p in collect_photos_from_path("mes_photos/")]

# Générer
result = create_photo_cloud(
main_photo_path="portrait.jpg",
surrounding_photos=["photo1.jpg", "photo2.jpg", ...],
output_path="resultat.png",
canvas_size=(1920, 1080),
main_photo_size=(500, 500),
surrounding_size=(150, 150),
layout="orbital",
background_color=(0, 0, 0, 0), # Transparent
distance_fade=0.5,
fade_curve=1.0,
)

result.show()

💡 Conseils

Choix du layout

Layout Usage idéal
Orbital Équilibré, portraits de groupe
Spiral Dynamique, timeline
Cloud Naturel, décontracté
Brick Mosaïque, mur de souvenirs

Paramètres d’éclaircissement

Fade Effet
0.0 - 0.3 Subtil
0.4 - 0.6 Modéré
0.7 - 1.0 Spotlight prononcé
Courbe Comportement
< 1.0 Rapide près du centre
1.0 Linéaire
> 1.0 Progressif vers les bords

Nombre de photos recommandé

  • 8-15 : Compositions aérées
  • 15-30 : Compositions denses
  • 30+ : Mode brick recommandé

📁 Fichiers

Fichier Description
photo_cloud_streamlit.py Interface Streamlit
photo_cloud_web.py Interface Web Flask
photo_cloud_complete.py CLI + Module Python

📄 Licence

MIT License - Libre d’utilisation et modification.


🔗 Téléchargements

Streamlit App Web Flask CLI