From 0fb1c77907939890bf39f36998889c3681c577a9 Mon Sep 17 00:00:00 2001 From: Erzangel Date: Mon, 5 Aug 2024 18:23:36 +0200 Subject: [PATCH] feat: llm crimes --- requirements.txt | 4 +++- src/generate_cards_mvp.py | 48 +++++++++++++++++++++++++++++++-------- 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/requirements.txt b/requirements.txt index c4cb883..e0c4071 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,3 @@ -drawsvg==2.4.0 \ No newline at end of file +drawsvg==2.4.0 +pillow==10.4.0 +--extra-index-url=https://packagecloud.io/github/git-lfs/pypi/simple \ No newline at end of file diff --git a/src/generate_cards_mvp.py b/src/generate_cards_mvp.py index 7550b52..ba50898 100644 --- a/src/generate_cards_mvp.py +++ b/src/generate_cards_mvp.py @@ -8,6 +8,7 @@ from draw_functions import create_gold_icon, create_effects, draw_champion_shiel from card_types import Card, SkinData, SkinFile, Translation from drawsvg.drawing import Drawing +from PIL import Image from edit_card import finish_card @@ -212,16 +213,45 @@ for card_data in cards: ) # Draw image - d.append(dw.Rectangle(x=1, y=65, width=x_width - 2, height=200)) - d.append( - dw.Image( - x=border_width_x, - y=65, - width=x_width - (border_width_x * 2), - height=200, - path=card_skin_data["image_path"], - ) + image_area_width = x_width - (2 * border_width_x) + image_area_height = 200 + d.append(dw.Rectangle(x=1, y=65, width=x_width - 2, height=image_area_height)) + image = Image.open(card_skin_data['image_path'].replace('../../', '')) + image_natural_width, image_natural_height = image.size + image_ratio = image_natural_width / image_natural_height + area_ratio = image_area_width / image_area_height + print(image_natural_width) + print(image_area_width) + print(image_ratio) + print(area_ratio) + if image_ratio > area_ratio: + # Wider image + scale = image_area_height / image_natural_height + new_width = image_natural_width * scale + translate_x = (image_area_width - new_width) / 2 + transform = f"translate({translate_x}, 0) scale ({scale})" + print(transform) + else: + # Taller image + scale = image_area_width / image_natural_width + new_height = image_natural_height * scale + translate_y = (image_area_height - new_height) / 2 + transform = f"translate(0, {translate_y}) scale({scale})" + + card_image = dw.Image( + x=border_width_x, + y=65, + width=x_width - (border_width_x * 2), + height=200, + path=card_skin_data["image_path"], + **{ + "object-fit": "cover", + } ) + + card_image.args['transform'] = transform + + d.append(card_image) d.append(dw.Rectangle(x=2, y=65 - 1, width=border_width_x - 2, height=200 + 2)) # d.append(dw.Rectangle(x=0, y=65+1, width=1, height=200+2, fill='white')) d.append(