awacke1 commited on
Commit
b03b8e6
·
1 Parent(s): f27c68f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -8
app.py CHANGED
@@ -1,8 +1,8 @@
1
  import streamlit as st
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
@@ -21,7 +21,7 @@ def draw_card(background, suit, value, level, card_width, card_height):
21
  dwg.add(dwg.rect((0, 0), (card_width, card_height), rx=10, ry=10, fill="white", stroke="black", stroke_width=2))
22
 
23
  # Add background image, if provided
24
- if background:
25
  img = Image.open(background)
26
  print("Image opened successfully")
27
  img = img.resize((card_width, card_height))
@@ -62,12 +62,22 @@ def display_size_selection(default_width, default_height):
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(BytesIO(uploaded_file.read()))
66
- return image
 
 
67
  else:
68
  return None
69
 
70
  def display_card(selected_parts, selected_level, card_width, card_height, background):
 
 
 
 
 
 
 
 
71
  card_svg = draw_card(background, selected_parts["suit"], selected_parts["value"], selected_level, card_width, card_height)
72
  st.write(f'<svg viewBox="0 0 {card_width} {card_height}">{card_svg}</svg>', unsafe_allow_html=True)
73
 
@@ -83,14 +93,11 @@ def display_card(selected_parts, selected_level, card_width, card_height, backgr
83
  selected_level = new_level
84
  st.sidebar.warning(f"Card has been leveled up to {selected_level}")
85
 
 
86
  st.set_page_config(page_title="Card Evolution Game", page_icon=":hearts:")
87
 
88
  selected_parts = display_parts_selection()
89
  selected_level = display_level_selection()
90
  card_width, card_height = display_size_selection(DEFAULT_CARD_WIDTH, DEFAULT_CARD_HEIGHT)
91
  background = display_image_upload()
92
-
93
- if background is not None:
94
- background = background.resize((card_width, card_height))
95
-
96
  display_card(selected_parts, selected_level, card_width, card_height, background)
 
1
  import streamlit as st
2
  import svgwrite
3
  from PIL import Image
 
4
  from io import BytesIO
5
+ import os
6
 
7
  DEFAULT_CARD_WIDTH = 75
8
  DEFAULT_CARD_HEIGHT = 100
 
21
  dwg.add(dwg.rect((0, 0), (card_width, card_height), rx=10, ry=10, fill="white", stroke="black", stroke_width=2))
22
 
23
  # Add background image, if provided
24
+ if background and os.path.exists(background):
25
  img = Image.open(background)
26
  print("Image opened successfully")
27
  img = img.resize((card_width, card_height))
 
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_name = uploaded_file.name
66
+ with open(image_name, "wb") as f:
67
+ f.write(uploaded_file.getbuffer())
68
+ return image_name
69
  else:
70
  return None
71
 
72
  def display_card(selected_parts, selected_level, card_width, card_height, background):
73
+ if background and os.path.exists(background):
74
+ img = Image.open(background)
75
+ img = img.resize((card_width, card_height))
76
+ img_bytes = BytesIO()
77
+ img.save(img_bytes, format="PNG")
78
+ img_data = img_bytes.getvalue()
79
+ img_href = "data:image/png;base64," + img_data.hex()
80
+ background = img_href
81
  card_svg = draw_card(background, selected_parts["suit"], selected_parts["value"], selected_level, card_width, card_height)
82
  st.write(f'<svg viewBox="0 0 {card_width} {card_height}">{card_svg}</svg>', unsafe_allow_html=True)
83
 
 
93
  selected_level = new_level
94
  st.sidebar.warning(f"Card has been leveled up to {selected_level}")
95
 
96
+
97
  st.set_page_config(page_title="Card Evolution Game", page_icon=":hearts:")
98
 
99
  selected_parts = display_parts_selection()
100
  selected_level = display_level_selection()
101
  card_width, card_height = display_size_selection(DEFAULT_CARD_WIDTH, DEFAULT_CARD_HEIGHT)
102
  background = display_image_upload()
 
 
 
 
103
  display_card(selected_parts, selected_level, card_width, card_height, background)