awacke1's picture
Update app.py
3de7286
raw
history blame
1.3 kB
import streamlit as st
import svgwrite
from PIL import Image
from io import BytesIO
def draw_card(card_width, card_height, background):
dwg = svgwrite.Drawing(size=(f"{card_width}px", f"{card_height}px"))
dwg.add(svgwrite.image.Image(href=background, size=(f"{card_width}px", f"{card_height}px")))
return dwg.tostring()
def main():
st.set_page_config(page_title="Card Evolution Game", page_icon=":hearts:")
card_width, card_height = 100, 150
uploaded_file = st.sidebar.file_uploader("Upload Card Background Image", type=["png", "jpg", "jpeg"])
if uploaded_file is not None:
image = Image.open(uploaded_file)
image = image.resize((card_width, card_height))
img_bytes = BytesIO()
image.save(img_bytes, format="PNG")
img_data = img_bytes.getvalue()
img_href = "data:image/png;base64," + img_data.hex()
st.write(f'<img src="{img_href}">', unsafe_allow_html=True)
card_svg = draw_card(card_width, card_height, img_href)
svg_content = '<?xml version="1.0" encoding="utf-8" ?>' + card_svg.decode("utf-8")
st.download_button("Download Card as SVG", svg_content, "card.svg", "text/plain")
else:
st.warning("Please upload a card background image")
if __name__ == '__main__':
main()