Ymc3013's picture
Create app.py
4a6400b verified
Raw
History Blame Contribute Delete
1.21 kB
import gradio as gr
import time
from PIL import Image
import io
# Variable globale pour stocker l'image reçue de la 3DS
derniere_image = None
def rafraichir_ecran():
global derniere_image
# Cette fonction tourne en boucle sur ton téléphone pour mettre à jour l'affichage
while True:
time.sleep(0.05) # ~20 FPS
yield dernie_image
def recevoir_image_java(image_pil):
global derniere_image
derniere_image = image_pil
return "Image reçue avec succès par Hugging Face"
# Création de l'interface Gradio
with gr.Blocks() as demo:
gr.Markdown("# 3DS Stream - Écran de ton Téléphone")
# Zone d'affichage pour ton téléphone
affichage_video = gr.Image(label="Console 3DS", streaming=True)
# Relance automatiquement la fonction pour rafraîchir l'image toutes les 50ms
demo.load(rafraichir_ecran, outputs=affichage_video, every=0.05)
# API cachée que ton programme Java va appeler
input_image = gr.Image(type="pil", visible=False)
bouton_api = gr.Button("Envoyer", visible=False)
bouton_api.click(recevoir_image_java, inputs=input_image)
# Active la file d'attente pour gérer le flux continu
demo.queue().launch()