"""
Funzioni per output di grafiche (visualizzare o salvare).
"""
from __future__ import annotations
from pytamaro.io import save_animation, save_graphic, show_animation, show_graphic
from pytamaro.it.graphic import Grafica
[docs]def visualizza_grafica(grafica: Grafica, debug: bool = False):
"""
Visualizza una grafica. Grafiche prive di area non possono essere
visualizzate.
Quando `debug` è `True`, adorna la visualizzazione con informazioni utili
per debugging: un bordo rosso attorno alla bounding box e una croce
giallastra attorno al punto di fissaggio.
:param grafica: grafica da visualizzare
:param debug: può facoltativamente essere impostato a `True` per
sovrapporre informazioni di debug
"""
show_graphic(grafica, debug)
[docs]def salva_grafica(nome_file: str, grafica: Grafica, debug: bool = False):
"""
Salva una grafica in un file.
Due formati di file sono supportati: PNG (grafica raster) e SVG (grafica
vettoriale).
L'estensione del nome del file (o ".png" o ".svg") determina il formato.
Una grafica priva di area non può essere salvata nel formato PNG.
Quando `debug` è `True`, adorna la visualizzazione con informazioni utili
per debugging: un bordo rosso attorno alla bounding box e una croce
giallastra attorno al punto di fissaggio.
:param nome_file: nome del file da creare (con l'estensione)
:param grafica: grafica da visualizzare
:param debug: può facoltativamente essere impostato a `True` per
sovrapporre informazioni di debug
"""
save_graphic(nome_file, grafica, debug)
[docs]def salva_animazione(
nome_file: str, grafiche: list[Grafica], durata: int = 40, loop: bool = True
):
"""
Salva una sequenza di grafiche come un'animazione (GIF).
Le grafiche vengono riprodotte sequenzialmente (normalmente a 25 frame al
secondo) a ciclo continuo.
:param nome_file: nome del file da creare (inclusa l'estensione '.gif')
:param grafiche: lista di grafiche da salvare come animazione
:param durata: durata in millisecondi di ciascun frame (default a 40
millisecondi, ovvero 25 frame al secondo)
:param loop: determina se la GIF debba riprodursi in loop indefinitamente (default a True)
"""
save_animation(nome_file, grafiche, durata, loop)
[docs]def visualizza_animazione(grafiche: list[Grafica], durata: int = 40, loop: bool = True):
"""
Visualizza una sequenza di grafiche come un'animazione (GIF).
Le grafiche vengono riprodotte sequenzialmente (normalmente a 25 frame al
secondo) a ciclo continuo.
:param grafiche: lista di grafiche da salvare come animazione
:param durata: durata in millisecondi di ciascun frame (default a 40
millisecondi, ovvero 25 frame al secondo)
:param loop: determina se la GIF debba riprodursi in loop indefinitamente (default a True)
"""
show_animation(grafiche, durata, loop)