pipeline/axo : extraction du Rhino, recalage sur la planche (1:640), maisons, arbres (positions réelles des blocs, couleurs de la planche), scène en mètres, sols depuis le PDF Illustrator vectoriel (calques pilotés), bulles de la page 15, planche de l'eau nettoyée. prototypes/axo-test : la page de test et son assembleur. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
1.2 KiB
Python
22 lines
1.2 KiB
Python
"""Assemble la maquette autonome (une seule page HTML, images intégrées) depuis template.html.
|
|
|
|
À lancer dans le dossier où le pipeline a écrit ses sorties (scene.json, eau_crop.json,
|
|
sol2035.jpg, solauj.jpg, eau_crop.jpg, bulles/). C'est la maquette de test publiée le 27/09 ;
|
|
la version de production (LOT Q2+) vit dans src/ et ne passe pas par ce fichier.
|
|
"""
|
|
import base64, json, os, sys
|
|
|
|
ici = os.path.dirname(os.path.abspath(__file__))
|
|
b64 = lambda f, m: "data:%s;base64,%s" % (m, base64.b64encode(open(f, "rb").read()).decode())
|
|
t = open(os.path.join(ici, "template.html")).read()
|
|
bulles = {f[:-4]: b64("bulles/" + f, "image/png") for f in sorted(os.listdir("bulles"))}
|
|
t = (t.replace("__SCENE__", open("scene.json").read())
|
|
.replace("__BULLES__", json.dumps(bulles))
|
|
.replace("__EAUPTS__", open("eau_crop.json").read())
|
|
.replace("__SOL2035__", b64("sol2035.jpg", "image/jpeg"))
|
|
.replace("__SOLAUJ__", b64("solauj.jpg", "image/jpeg"))
|
|
.replace("__EAU__", b64("eau_crop.jpg", "image/jpeg")))
|
|
sortie = sys.argv[1] if len(sys.argv) > 1 else "quelque-part-en-2035.html"
|
|
open(sortie, "w").write(t)
|
|
print(sortie, "%.2f Mo" % (len(t.encode()) / 1e6))
|