grapp / scripts /generer_carte_exemple.py
adrescop's picture
Upload 16 files
e7194cd verified
Raw History Blame Contribute Delete
1.77 kB
"""Génère assets/carte_exemple.png : une fausse carte des vins de bistrot pour la démo."""
from pathlib import Path
from PIL import Image, ImageDraw, ImageFont
LIGNES = [("LA CARTE DES VINS", None), ("", None), ("BULLES", None),
("Crémant de Loire, Domaine des Coteaux", "32 €"), ("Champagne Brut, Maison Laurent", "68 €"), ("", None),
("BLANCS", None), ("Muscadet Sèvre-et-Maine 2023", "24 €"), ("Sancerre, Les Caillottes 2022", "42 €"),
("Alsace Gewurztraminer 2021", "34 €"), ("Chablis 1er Cru 2021", "48 €"), ("", None),
("ROSÉS", None), ("Côtes de Provence rosé, Château Sainte-Roseline", "33 €"), ("Tavel 2023", "30 €"), ("", None),
("ROUGES", None), ("Beaujolais-Villages 2023", "25 €"), ("Chinon, Les Picasses 2020", "29 €"),
("Côtes du Rhône, E. Guigal 2021", "27 €"), ("Saint-Émilion Grand Cru 2018", "58 €"),
("Cahors Malbec 2019", "31 €"), ("", None), ("DOUCEURS", None), ("Sauternes 2017 (50 cl)", "45 €")]
root = Path(__file__).resolve().parents[1]
W, H = 1100, 60 + 46 * len(LIGNES)
img = Image.new("RGB", (W, H), "#FFFDF8"); d = ImageDraw.Draw(img)
def font(bold, size):
for p in [f"/usr/share/fonts/truetype/dejavu/DejaVuSerif{'-Bold' if bold else ''}.ttf",
"/Library/Fonts/Georgia.ttf", "/System/Library/Fonts/Supplemental/Georgia.ttf"]:
try: return ImageFont.truetype(p, size)
except OSError: pass
return ImageFont.load_default()
y = 40
for txt, prix in LIGNES:
titre = prix is None and txt.isupper()
d.text((70, y), txt, fill="#7D1C4F" if titre else "#222", font=font(titre, 30 if titre else 26))
if prix: d.text((W - 160, y), prix, fill="#222", font=font(False, 26))
y += 46
img.save(root / "assets" / "carte_exemple.png"); print("ok", img.size)