File size: 949 Bytes
a6a908a
 
a8aa56e
 
a6a908a
a8aa56e
 
 
 
 
 
 
 
a6a908a
 
a8aa56e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a6a908a
 
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
import cairosvg
import gradio as gr
from PIL import Image
import os

def show(svg_input):
    # Convert SVG to PNG
    output_path = "./test.png"
    cairosvg.svg2png(bytestring=svg_input.encode('utf-8'), write_to=output_path)
    
    # Open and return the PNG image
    png_image = Image.open(output_path)
    return png_image, output_path

with gr.Blocks() as bl:
    gr.Markdown("# SVG to PNG Converter")
    
    with gr.Row():
        with gr.Column():
            svg_input = gr.Textbox(label="SVG URL or Code", placeholder="Enter SVG URL or paste SVG code here")
            convert_btn = gr.Button("Convert")
        
        with gr.Column():
            png_output = gr.Image(type='pil', label="Converted PNG")
            download_btn = gr.File(label="Download PNG")
    
    # Connect the conversion function
    convert_btn.click(
        fn=show,
        inputs=svg_input,
        outputs=[png_output, download_btn]
    )

bl.launch()