File size: 2,226 Bytes
eeb55d5 d24e6ff b0f4df1 d24e6ff 3eb4bfd b0f4df1 d24e6ff b0f4df1 d24e6ff 3eb4bfd b0f4df1 d24e6ff 3eb4bfd d24e6ff 3eb4bfd d24e6ff b0f4df1 d24e6ff b0f4df1 eeb55d5 b0f4df1 3eb4bfd eeb55d5 3eb4bfd d24e6ff eeb55d5 d24e6ff 3eb4bfd d24e6ff b0f4df1 d24e6ff 3eb4bfd 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
import gradio as gr
from livro import processar_e_mostrar, verificar_contraste, gerar_preview_kdp
with gr.Blocks() as demo:
with gr.Row():
desenho = gr.ImageEditor(label="Desenhe aqui sua imagem com caneta", type="numpy", interactive=True)
with gr.Row():
idade = gr.Slider(minimum=4, maximum=12, step=1, value=6, label="Idade da criança (ajusta número de pontos)")
posicao = gr.Radio(["Topo da página", "Centro da página", "Base da página"], value="Centro da página", label="Posicionamento do desenho")
contraste_alerta = gr.Textbox(label="Aviso de Contraste", interactive=False)
with gr.Row():
imagem_resultado = gr.Image(label="Prévia com Pontos Numerados")
sobreposicao = gr.Image(label="Preview com Sobreposição")
with gr.Row():
gerar_btn = gr.Button("Gerar Pontos")
salvar_btn = gr.Button("Salvar como PDF")
salvar_png = gr.Button("Salvar como PNG")
capa_btn = gr.Button("Gerar Preview da Capa")
saida_pdf = gr.File(label="Download PDF")
saida_png = gr.File(label="Download PNG")
saida_capa = gr.Image(label="Preview da Capa")
resultado = {}
def gerar(desenho_array, idade, posicao):
global resultado
if desenho_array is None or desenho_array.sum() < 1000:
return "⚠️ Por favor, desenhe uma imagem para gerar os pontos.", None, None
aviso = verificar_contraste(desenho_array)
try:
resultado = processar_e_mostrar(desenho_array, None, idade, posicao)
return aviso, resultado["preview"], resultado["overlay"]
except Exception as e:
return f"Erro: {str(e)}", None, None
def salvar_pdf():
return resultado.get("pdf") if resultado else None
def salvar_imagem():
return resultado.get("png") if resultado else None
def gerar_capa():
return gerar_preview_kdp()
gerar_btn.click(gerar, inputs=[desenho, idade, posicao], outputs=[contraste_alerta, imagem_resultado, sobreposicao])
salvar_btn.click(salvar_pdf, outputs=saida_pdf)
salvar_png.click(salvar_imagem, outputs=saida_png)
capa_btn.click(gerar_capa, outputs=saida_capa)
demo.launch()
|