awacke1 commited on
Commit
70cae99
·
1 Parent(s): 0530c7e

Update backup-app.py

Browse files
Files changed (1) hide show
  1. backup-app.py +14 -99
backup-app.py CHANGED
@@ -1,100 +1,15 @@
1
  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
8
-
9
- PARTS = {"background": ["white", "black", "red", "blue", "green", "yellow"],
10
- "suit": ["clubs", "diamonds", "hearts", "spades"],
11
- "value": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]}
12
-
13
- LEVELS = {"level 1": ["common", "uncommon", "rare"],
14
- "level 2": ["epic", "legendary", "mythic"],
15
- "level 3": ["godlike"]}
16
-
17
- def draw_card(background, suit, value, level, card_width, card_height):
18
- print(f"Background image: {background}")
19
- dwg = svgwrite.Drawing(size=(f"{card_width}px", f"{card_height}px"))
20
- dwg.add(dwg.rect((0, 0), (card_width, card_height), rx=10, ry=10, fill="white", stroke="black", stroke_width=2))
21
-
22
- # Add background image, if provided
23
- if background:
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
33
- suit = svgwrite.text.Text(suit.upper(), insert=(5, 15), fill="black", font_size="16px", font_weight="bold")
34
- dwg.add(suit)
35
- value = svgwrite.text.Text(value, insert=(5, card_height - 10), fill="black", font_size="16px", font_weight="bold")
36
- dwg.add(value)
37
-
38
- # Add level label
39
- level = svgwrite.text.Text(level.upper(), insert=(card_width - 50, card_height - 10), fill="black", font_size="12px", font_weight="bold")
40
- svg_string = dwg.tostring()
41
- return svg_string
42
-
43
-
44
- def display_parts_selection():
45
- selected_parts = {}
46
- for part, options in PARTS.items():
47
- selected_parts[part] = st.sidebar.selectbox(f"Select {part}", options)
48
- return selected_parts
49
-
50
- def display_level_selection():
51
- selected_level = st.sidebar.selectbox("Select Level", list(LEVELS.keys()))
52
- return selected_level
53
-
54
- def display_size_selection(default_width, default_height):
55
- card_width = st.sidebar.slider("Card Width", min_value=50, max_value=150, value=default_width, step=5)
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
-
96
- 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)
 
1
  import streamlit as st
2
+ import os
3
+
4
+ def get_image_path(img):
5
+ file_path = f"data/uploadedImages/{img.name}"
6
+ os.makedirs(os.path.dirname(file_path), exist_ok=True)
7
+ with open(file_path, "wb") as img_file:
8
+ img_file.write(img.getbuffer())
9
+ return file_path
10
+
11
+ uploaded_file = st.file_uploader("**Upload Image**", type= ['png', 'jpg'] )
12
+ if uploaded_file is not None:
13
+ # Get actual image file
14
+ bytes_data = get_image_path(uploaded_file)
15
+ st.image(bytes_data)