Spaces:
Sleeping
Sleeping
admin
commited on
Commit
·
9ebdba1
1
Parent(s):
6c64dd2
update if none
Browse files- src/modules/app.py +6 -6
- src/modules/link.py +31 -26
src/modules/app.py
CHANGED
@@ -12,22 +12,22 @@ For more information, see
|
|
12 |
- https://app.bitly.com/settings/api
|
13 |
'''
|
14 |
|
15 |
-
def calculate_positions(image_count,
|
16 |
positions = []
|
17 |
x, y = 0, 0
|
18 |
pos_px, pos_py = padding
|
19 |
|
20 |
for i in range(image_count):
|
21 |
-
if x +
|
22 |
x = 0
|
23 |
-
y +=
|
24 |
|
25 |
-
if y +
|
26 |
x = 0
|
27 |
y = 0
|
28 |
|
29 |
positions.append((x, y, pos_px, pos_py))
|
30 |
-
x +=
|
31 |
print(positions)
|
32 |
return positions
|
33 |
|
@@ -62,8 +62,8 @@ with gr.Blocks() as demo:
|
|
62 |
pos_df = gr.Dataframe(headers=headers, label="Positions")
|
63 |
|
64 |
cm_img_input.change(update_df, cm_img_input, pos_df)
|
|
|
65 |
|
66 |
-
# positions = [(10, 10), (int(0.9 * s * 3.7795), int(0.9 * 55 * 3.7795))]
|
67 |
with gr.Column():
|
68 |
file_output = gr.File(label="Download ZIP")
|
69 |
with gr.Accordion(open=True, label="Gallery"):
|
|
|
12 |
- https://app.bitly.com/settings/api
|
13 |
'''
|
14 |
|
15 |
+
def calculate_positions(image_count, item_size=(20, 20), page_size=(91, 55), padding=(10, 10)):
|
16 |
positions = []
|
17 |
x, y = 0, 0
|
18 |
pos_px, pos_py = padding
|
19 |
|
20 |
for i in range(image_count):
|
21 |
+
if x + item_size[0] > page_size[0]: # Check for horizontal overflow
|
22 |
x = 0
|
23 |
+
y += item_size[1] + pos_py
|
24 |
|
25 |
+
if y + item_size[1] > page_size[1]: # Check for vertical overflow
|
26 |
x = 0
|
27 |
y = 0
|
28 |
|
29 |
positions.append((x, y, pos_px, pos_py))
|
30 |
+
x += item_size[0] + pos_px
|
31 |
print(positions)
|
32 |
return positions
|
33 |
|
|
|
62 |
pos_df = gr.Dataframe(headers=headers, label="Positions")
|
63 |
|
64 |
cm_img_input.change(update_df, cm_img_input, pos_df)
|
65 |
+
idv_img_input.change(update_df, idv_img_input, pos_df)
|
66 |
|
|
|
67 |
with gr.Column():
|
68 |
file_output = gr.File(label="Download ZIP")
|
69 |
with gr.Accordion(open=True, label="Gallery"):
|
src/modules/link.py
CHANGED
@@ -166,41 +166,46 @@ class UrlProcessor:
|
|
166 |
# encoded_string = base64.b64encode(image_file.read()).decode()
|
167 |
|
168 |
os.makedirs(f'{tmpd}/img/cards', exist_ok=True)
|
169 |
-
for idx, (qr, indv) in enumerate(itertools.product(qr_pngs, individual_images), start=1):
|
170 |
-
try:
|
171 |
-
i = int(idx) - 1
|
172 |
-
print(i)
|
173 |
-
pos_x = int(positions_df.loc[i, 'PosX'])
|
174 |
-
pos_y = int(positions_df.loc[i, 'PosY'])
|
175 |
|
176 |
-
|
|
|
|
|
177 |
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
|
|
183 |
|
184 |
-
|
185 |
-
qr_size = (int(size[0] * 0.1), int(size[1] * 0.1))
|
186 |
-
qr_pos = (int(0.9 * pos_x * 3.7795), int(0.9 * pos_y * 3.7795))
|
187 |
-
layer = processor.combine_images(layer, qr, qr_size, qr_pos)
|
188 |
|
|
|
|
|
|
|
|
|
|
|
189 |
|
190 |
-
|
191 |
-
|
|
|
|
|
192 |
|
193 |
-
layer.save(card_path, format="PNG")
|
194 |
-
card_pngs.append(card_path)
|
195 |
|
196 |
-
|
197 |
-
|
198 |
|
199 |
-
|
200 |
-
|
201 |
|
202 |
-
|
203 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
|
205 |
|
206 |
try:
|
|
|
166 |
# encoded_string = base64.b64encode(image_file.read()).decode()
|
167 |
|
168 |
os.makedirs(f'{tmpd}/img/cards', exist_ok=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
|
170 |
+
if qr_pngs is not None or individual_images is not None:
|
171 |
+
qr_pngs = qr_pngs if qr_pngs is not None else []
|
172 |
+
individual_images = individual_images if individual_images is not None else []
|
173 |
|
174 |
+
for idx, (qr, indv) in enumerate(itertools.product(qr_pngs, individual_images), start=1):
|
175 |
+
try:
|
176 |
+
i = int(idx) - 1
|
177 |
+
print(i)
|
178 |
+
pos_x = int(positions_df.loc[i, 'PosX'])
|
179 |
+
pos_y = int(positions_df.loc[i, 'PosY'])
|
180 |
|
181 |
+
size = (int(91 * 3.7795), int(55 * 3.7795))
|
|
|
|
|
|
|
182 |
|
183 |
+
if common_images:
|
184 |
+
for common_img in common_images:
|
185 |
+
layer = processor.combine_images(layer, common_img, size, (pos_x, pos_y))
|
186 |
+
if individual_images:
|
187 |
+
layer = processor.combine_images(layer, indv, size, (pos_x, pos_y))
|
188 |
|
189 |
+
if qr:
|
190 |
+
qr_size = (int(size[0] * 0.1), int(size[1] * 0.1))
|
191 |
+
qr_pos = (int(0.9 * pos_x * 3.7795), int(0.9 * pos_y * 3.7795))
|
192 |
+
layer = processor.combine_images(layer, qr, qr_size, qr_pos)
|
193 |
|
|
|
|
|
194 |
|
195 |
+
card_png_path = f'img/cards/CD{idx:05d}.png'
|
196 |
+
card_path = os.path.join(tmpd, card_png_path)
|
197 |
|
198 |
+
layer.save(card_path, format="PNG")
|
199 |
+
card_pngs.append(card_path)
|
200 |
|
201 |
+
with open(card_path, "rb") as image_file:
|
202 |
+
encoded_string = base64.b64encode(image_file.read()).decode()
|
203 |
+
|
204 |
+
card_html = f'<img src="data:image/png;base64,{encoded_string}" alt="Card"> '
|
205 |
+
card_htmls.append(card_html)
|
206 |
+
|
207 |
+
except Exception as e:
|
208 |
+
raise Exception(f"Error combining images: {e}")
|
209 |
|
210 |
|
211 |
try:
|