awacke1 commited on
Commit
6c56e9d
·
1 Parent(s): cc677a8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -29
app.py CHANGED
@@ -2,6 +2,7 @@ import streamlit as st
2
  import svgwrite
3
  from PIL import Image
4
  import urllib.request
 
5
 
6
  DEFAULT_CARD_WIDTH = 75
7
  DEFAULT_CARD_HEIGHT = 100
@@ -24,9 +25,11 @@ def draw_card(background, suit, value, level, card_width, card_height):
24
  img = Image.open(background)
25
  print("Image opened successfully")
26
  img = img.resize((card_width, card_height))
27
- img.save(background)
28
- print("Image resized and saved successfully")
29
- img = svgwrite.image.Image(href=background, size=(f"{card_width}px", f"{card_height}px"))
 
 
30
  dwg.add(img)
31
 
32
  # Add suit and value labels
@@ -56,40 +59,25 @@ def display_size_selection(default_width, default_height):
56
  card_height = st.sidebar.slider("Card Height", min_value=75, max_value=200, value=default_height, step=5)
57
  return card_width, card_height
58
 
59
- def display_image_uploadold():
60
- uploaded_file = st.sidebar.file_uploader("Upload Card Background Image", type=["png", "jpg", "jpeg"])
61
- if uploaded_file is not None:
62
- image = Image.open(uploaded_file)
63
- image.save("background.png")
64
- return "background.png"
65
- else:
66
- return None
67
-
68
  def display_image_upload():
69
  uploaded_file = st.sidebar.file_uploader("Upload Card Background Image", type=["png", "jpg", "jpeg"])
70
  if uploaded_file is not None:
71
  image = Image.open(uploaded_file)
72
- image_name = uploaded_file.name
73
- image.save(image_name)
74
- return image_name
75
  else:
76
  return None
77
 
78
- def display_card(selected_parts, selected_level, card_width, card_height, background):
79
- card_svg = draw_card(background, selected_parts["suit"], selected_parts["value"], selected_level, card_width, card_height)
80
- st.write(f'<svg viewBox="0 0 {card_width} {card_height}">{card_svg}</svg>', unsafe_allow_html=True)
81
-
82
- # Create a download link for the card SVG
83
- svg_content = '<?xml version="1.0" encoding="utf-8" ?>' + card_svg
84
- st.download_button("Download Card as SVG", svg_content, "card.svg", "text/plain")
85
 
86
- # Create button to level up card
87
- if selected_level != "level 3":
88
- if st.button("Level Up"):
89
- current_level_index = list(LEVELS.keys()).index(selected_level)
90
- new_level = list(LEVELS.keys())[current_level_index + 1]
91
- selected_level = new_level
92
- st.sidebar.warning(f"Card has been leveled up to {selected_level}")
93
 
94
  st.set_page_config(page_title="Card Evolution Game", page_icon=":hearts:")
95
 
@@ -97,4 +85,8 @@ selected_parts = display_parts_selection()
97
  selected_level = display_level_selection()
98
  card_width, card_height = display_size_selection(DEFAULT_CARD_WIDTH, DEFAULT_CARD_HEIGHT)
99
  background = display_image_upload()
 
 
 
 
100
  display_card(selected_parts, selected_level, card_width, card_height, background)
 
2
  import svgwrite
3
  from PIL import Image
4
  import urllib.request
5
+ from io import BytesIO
6
 
7
  DEFAULT_CARD_WIDTH = 75
8
  DEFAULT_CARD_HEIGHT = 100
 
25
  img = Image.open(background)
26
  print("Image opened successfully")
27
  img = img.resize((card_width, card_height))
28
+ img_bytes = BytesIO()
29
+ img.save(img_bytes, format="PNG")
30
+ img_data = img_bytes.getvalue()
31
+ img_href = "data:image/png;base64," + img_data.hex()
32
+ img = svgwrite.image.Image(href=img_href, size=(f"{card_width}px", f"{card_height}px"))
33
  dwg.add(img)
34
 
35
  # Add suit and value labels
 
59
  card_height = st.sidebar.slider("Card Height", min_value=75, max_value=200, value=default_height, step=5)
60
  return card_width, card_height
61
 
 
 
 
 
 
 
 
 
 
62
  def display_image_upload():
63
  uploaded_file = st.sidebar.file_uploader("Upload Card Background Image", type=["png", "jpg", "jpeg"])
64
  if uploaded_file is not None:
65
  image = Image.open(uploaded_file)
66
+ return image
 
 
67
  else:
68
  return None
69
 
70
+ # Create a download link for the card SVG
71
+ svg_content = '<?xml version="1.0" encoding="utf-8" ?>' + card_svg
72
+ st.download_button("Download Card as SVG", svg_content, "card.svg", "text/plain")
 
 
 
 
73
 
74
+ # Create button to level up card
75
+ if selected_level != "level 3":
76
+ if st.button("Level Up"):
77
+ current_level_index = list(LEVELS.keys()).index(selected_level)
78
+ new_level = list(LEVELS.keys())[current_level_index + 1]
79
+ selected_level = new_level
80
+ st.sidebar.warning(f"Card has been leveled up to {selected_level}")
81
 
82
  st.set_page_config(page_title="Card Evolution Game", page_icon=":hearts:")
83
 
 
85
  selected_level = display_level_selection()
86
  card_width, card_height = display_size_selection(DEFAULT_CARD_WIDTH, DEFAULT_CARD_HEIGHT)
87
  background = display_image_upload()
88
+
89
+ if background is not None:
90
+ background = background.resize((card_width, card_height))
91
+
92
  display_card(selected_parts, selected_level, card_width, card_height, background)