Files
photobooth/backend/qrcode_gen.py
Jules c8e4ec80c1 Init photobooth - borne photo evenementielle RPi4
Backend FastAPI complet : camera gphoto2, filtres/overlays Pillow,
chroma key OpenCV, multi-shot/collage, GIF, impression CUPS, email SMTP,
QR code. Frontend web vanilla (HTML/CSS/JS) pour Chromium kiosk.
Menu admin cache (appui long coin ecran). Toutes les fonctionnalites
activables/desactivables. Scripts install + systemd pour RPi4.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 21:46:31 +01:00

42 lines
1.1 KiB
Python

import logging
from io import BytesIO
from pathlib import Path
from backend.config import DOSSIER_EXPORTS, charger_config
log = logging.getLogger("photobooth.qrcode")
try:
import qrcode
QRCODE_DISPONIBLE = True
except ImportError:
QRCODE_DISPONIBLE = False
log.warning("qrcode non installe")
def generer_qr(contenu: str, nom: str = "qr.png") -> Path | None:
"""Genere un QR code PNG."""
if not QRCODE_DISPONIBLE:
log.error("Module qrcode non disponible")
return None
qr = qrcode.QRCode(version=1, box_size=10, border=4)
qr.add_data(contenu)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
chemin = DOSSIER_EXPORTS / nom
img.save(chemin)
log.info(f"QR code genere : {chemin}")
return chemin
def qr_galerie() -> Path | None:
"""Genere le QR code pointant vers la galerie en ligne."""
config = charger_config()
url = config.get("qr_code", {}).get("url_galerie", "")
if not url:
log.warning("URL galerie non configuree")
return None
return generer_qr(url, "qr_galerie.png")