Spaces:
Running
Running
2Nike2
commited on
Commit
·
8004cfc
1
Parent(s):
5d3564f
Add card design functionality to app.py
Browse files- app.py +20 -0
- src/display_message_en.json +3 -0
- src/display_message_ja.json +3 -0
app.py
CHANGED
@@ -3,6 +3,7 @@ from PIL import Image as PIL_Image # Renaming to avoid conflict with Image from
|
|
3 |
from io import BytesIO
|
4 |
import json
|
5 |
import os
|
|
|
6 |
|
7 |
import src.constants as constants
|
8 |
|
@@ -21,6 +22,13 @@ with open(f'src/display_message_{language}.json', 'r', encoding='utf-8') as f:
|
|
21 |
model_type_dict = display_message_dict['model_type_dict']
|
22 |
color_dict = display_message_dict['color_dict']
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
def create_3dmodel(model_no, title, color, mark, historic_site_type, difficulty, description, is_thick, image):
|
25 |
|
26 |
img_bytearray = BytesIO()
|
@@ -83,6 +91,18 @@ with gr.Blocks() as demo:
|
|
83 |
with gr.Column():
|
84 |
title = gr.Textbox(label=display_message_dict['label_title'], placeholder=display_message_dict['placeholder_title'])
|
85 |
model_type = gr.Radio([(model_type_dict[key], key) for key in model_type_dict], value='2', label=display_message_dict['label_card_type'])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
with gr.Column():
|
87 |
description = gr.Textbox(lines=2, label=display_message_dict['label_description'], placeholder=display_message_dict['placeholder_description'])
|
88 |
is_thick = gr.Checkbox(label=display_message_dict['label_is_thick'], value=False, info=display_message_dict['info_is_thick'])
|
|
|
3 |
from io import BytesIO
|
4 |
import json
|
5 |
import os
|
6 |
+
import glob
|
7 |
|
8 |
import src.constants as constants
|
9 |
|
|
|
22 |
model_type_dict = display_message_dict['model_type_dict']
|
23 |
color_dict = display_message_dict['color_dict']
|
24 |
|
25 |
+
default_card_design_image_dict = {value: PIL_Image.open(constants.back_card_img_dict[key]).convert('RGB') for (key, value) in model_type_dict.items()}
|
26 |
+
def update_card_image(card_design_upload, card_design_dropdown, update_type):
|
27 |
+
if update_type == 'Upload':
|
28 |
+
return card_design_upload['background']
|
29 |
+
else:
|
30 |
+
return default_card_design_image_dict[card_design_dropdown]
|
31 |
+
|
32 |
def create_3dmodel(model_no, title, color, mark, historic_site_type, difficulty, description, is_thick, image):
|
33 |
|
34 |
img_bytearray = BytesIO()
|
|
|
91 |
with gr.Column():
|
92 |
title = gr.Textbox(label=display_message_dict['label_title'], placeholder=display_message_dict['placeholder_title'])
|
93 |
model_type = gr.Radio([(model_type_dict[key], key) for key in model_type_dict], value='2', label=display_message_dict['label_card_type'])
|
94 |
+
|
95 |
+
with gr.Row():
|
96 |
+
with gr.Column():
|
97 |
+
card_design_dropdown = gr.Dropdown(list(default_card_design_image_dict.keys()), label=display_message_dict['label_card_design_sample'])
|
98 |
+
card_design_upload = gr.ImageEditor(image_mode='RGB', sources="upload", type="pil", crop_size="868:1213", label=display_message_dict['label_card_design_upload'])
|
99 |
+
with gr.Column():
|
100 |
+
card_design_preview = gr.Image(label=display_message_dict['label_card_design_preview'], type="pil")
|
101 |
+
card_design_upload.change(fn=lambda card_design_upload, card_design_dropdown: update_card_image(card_design_upload, card_design_dropdown, 'Upload'),
|
102 |
+
inputs=[card_design_upload, card_design_dropdown], outputs=card_design_preview)
|
103 |
+
card_design_dropdown.change(fn=lambda card_design_upload, card_design_dropdown: update_card_image(card_design_upload, card_design_dropdown, 'Drop'),
|
104 |
+
inputs=[card_design_upload, card_design_dropdown], outputs=card_design_preview)
|
105 |
+
|
106 |
with gr.Column():
|
107 |
description = gr.Textbox(lines=2, label=display_message_dict['label_description'], placeholder=display_message_dict['placeholder_description'])
|
108 |
is_thick = gr.Checkbox(label=display_message_dict['label_is_thick'], value=False, info=display_message_dict['info_is_thick'])
|
src/display_message_en.json
CHANGED
@@ -11,6 +11,9 @@
|
|
11 |
"3": "Fossil",
|
12 |
"4": "Cat"
|
13 |
},
|
|
|
|
|
|
|
14 |
"label_description": "Description",
|
15 |
"placeholder_description": "Please provide a brief description, up to about 90 characters.",
|
16 |
"label_is_thick": "Thickness",
|
|
|
11 |
"3": "Fossil",
|
12 |
"4": "Cat"
|
13 |
},
|
14 |
+
"label_card_design_upload": "Card Design (Upload)",
|
15 |
+
"label_card_design_sample": "Card Design (Sample)",
|
16 |
+
"label_card_design_preview": "Card Design Preview",
|
17 |
"label_description": "Description",
|
18 |
"placeholder_description": "Please provide a brief description, up to about 90 characters.",
|
19 |
"label_is_thick": "Thickness",
|
src/display_message_ja.json
CHANGED
@@ -11,6 +11,9 @@
|
|
11 |
"3": "化石",
|
12 |
"4": "猫"
|
13 |
},
|
|
|
|
|
|
|
14 |
"label_description": "説明文",
|
15 |
"placeholder_description": "全角50字程度までの簡単な説明を記載して下さい。",
|
16 |
"label_is_thick": "厚み",
|
|
|
11 |
"3": "化石",
|
12 |
"4": "猫"
|
13 |
},
|
14 |
+
"label_card_design_upload": "カードデザイン (アップロード)",
|
15 |
+
"label_card_design_sample": "カードデザイン (サンプル)",
|
16 |
+
"label_card_design_preview": "カードデザインプレビュー",
|
17 |
"label_description": "説明文",
|
18 |
"placeholder_description": "全角50字程度までの簡単な説明を記載して下さい。",
|
19 |
"label_is_thick": "厚み",
|