File size: 1,484 Bytes
a4b6d66
d24e6ff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

import gradio as gr
from livro import processar_e_mostrar, verificar_contraste, gerar_preview_kdp

with gr.Blocks() as demo:
    with gr.Row():
        imagem_input = gr.Image(label="Imagem Original", type="filepath")
        mascara = gr.ImageEditor(label="Marcar áreas para preservar (opcional)")
    with gr.Row():
        idade = gr.Slider(minimum=4, maximum=12, step=1, value=6, label="Idade da criança (ajusta número de pontos)")
    contraste_alerta = gr.Textbox(label="Aviso de Contraste", interactive=False)
    with gr.Row():
        imagem_resultado = gr.Image(label="Prévia com Pontos Numerados")
    with gr.Row():
        gerar_btn = gr.Button("Gerar Pontos")
        salvar_btn = gr.Button("Salvar como PDF")
        capa_btn = gr.Button("Gerar Preview da Capa")
        saida_pdf = gr.File(label="Download do PDF")
        saida_capa = gr.Image(label="Preview da Capa")

    resultado = {}

    def gerar(imagem_path, mask, idade):
        global resultado
        aviso = verificar_contraste(imagem_path)
        resultado = processar_e_mostrar(imagem_path, mask, idade)
        return aviso, resultado["preview"]

    def salvar_pdf():
        return resultado.get("pdf")

    def gerar_capa():
        return gerar_preview_kdp()

    gerar_btn.click(gerar, inputs=[imagem_input, mascara, idade], outputs=[contraste_alerta, imagem_resultado])
    salvar_btn.click(salvar_pdf, outputs=saida_pdf)
    capa_btn.click(gerar_capa, outputs=saida_capa)

demo.launch()