Pellicule : marge de coupe plus large + warmup LiveView apres capture
La coupe physique du K60 n'est jamais parfaitement centree, donc une marge noire trop fine fait perdre la pellicule d'un cote du strip dedouble. Marge de coupe (perforations) elargie de 34 a 55px (~4.6mm) de chaque cote. Ajoute aussi un warmup LiveView (_chauffer_liveview) juste apres la remontee du miroir post-capture : consomme les ~1-2s de stabilisation pendant le spinner de traitement plutot que de laisser le preview du countdown suivant figé sur l'ancienne photo.
This commit is contained in:
@@ -47,8 +47,13 @@ def creer_strip(photos: list[Path], marge: int = 10, couleur_fond: str = "#00000
|
||||
bande_largeur = 600
|
||||
bande_hauteur = 1800
|
||||
|
||||
# Zone perforations pellicule (gauche et droite)
|
||||
perf_largeur = 34
|
||||
# Zone perforations pellicule (gauche et droite). Cette zone noire est aussi
|
||||
# la marge de securite pour la coupe physique du K60 : la feuille pleine
|
||||
# (2 bandes cote a cote) est coupee au centre apres impression, et la coupe
|
||||
# n'est jamais parfaitement precise. Une marge trop fine fait que la coupe
|
||||
# tombe dans la photo d'un cote (pellicule absente d'un cote, visible de
|
||||
# l'autre). Elargie a 55px (~4.6mm) pour absorber le jeu mecanique du cutter.
|
||||
perf_largeur = 55
|
||||
zone_photos_largeur = bande_largeur - perf_largeur * 2
|
||||
|
||||
# Taille de chaque photo dans la bande (separees par bandes noires)
|
||||
@@ -70,16 +75,19 @@ def creer_strip(photos: list[Path], marge: int = 10, couleur_fond: str = "#00000
|
||||
draw = ImageDraw.Draw(strip)
|
||||
|
||||
# Bords pellicule noirs (deja le fond)
|
||||
# Perforations pellicule (gauche) - trous blancs dans le bord noir
|
||||
# Perforations pellicule (gauche) - trous gris dans le bord noir, centrees
|
||||
# dans la marge (laisse du noir plein des 2 cotes pour la marge de coupe)
|
||||
trou_largeur = 26
|
||||
trou_x = (perf_largeur - trou_largeur) // 2
|
||||
for py in range(marge + 10, bande_hauteur - marge, 44):
|
||||
draw.rounded_rectangle(
|
||||
[8, py, perf_largeur - 8, py + 22],
|
||||
[trou_x, py, trou_x + trou_largeur, py + 22],
|
||||
radius=5, fill=(60, 60, 60)
|
||||
)
|
||||
# Perforations pellicule (droite)
|
||||
for py in range(marge + 10, bande_hauteur - marge, 44):
|
||||
draw.rounded_rectangle(
|
||||
[bande_largeur - perf_largeur + 8, py, bande_largeur - 8, py + 22],
|
||||
[bande_largeur - perf_largeur + trou_x, py, bande_largeur - perf_largeur + trou_x + trou_largeur, py + 22],
|
||||
radius=5, fill=(60, 60, 60)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user