import gradio as gr from PIL import Image import base64 from io import BytesIO # ----------------------------- # Convertir imagen a base64 # ----------------------------- def image_to_base64(img_file): try: # Intentamos abrir con .name o directamente con .file try: img = Image.open(img_file.name) except: img_file.file.seek(0) img = Image.open(img_file.file) buffer = BytesIO() img.save(buffer, format="PNG") img_str = base64.b64encode(buffer.getvalue()).decode() return f"data:image/png;base64,{img_str}" except Exception as e: return None # ----------------------------- # Generar editor HTML + JS # ----------------------------- def generate_editor(image_file): img_src = image_to_base64(image_file) if not img_src: return "Error cargando imagen" html = f"""
Selecciona un área con el mouse para recortar un frame. Luego añádelo a la timeline.