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
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 2 3 4 5 6 7 8 9 10 11 12 13 14 pip install pillow-heif pip install rawpy pip install imageio numpy pip install streamlit 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_pathmain = load_image("portrait.jpg" ) photos = [load_image(p) for p in collect_photos_from_path("mes_photos/" )] 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 ), 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