CardGenerator / template_builder.py
drakosfire's picture
Polished and launch to Hugging Face
5db041c
raw
history blame
1.98 kB
from PIL import Image, ImageDraw, ImageFont
import utilities as u
# Function to initialize image canvas
# Function to scale the seed image
# Paste seed image onto blank canvas at specific location
# Paste the selected border on top
# Save and return
# Function that takes in an image url and a dictionary and uses the values to print onto a card.
# Seed Image starting x,y
seed_x = 56
seed_y = 128
seed_width = 657
seed_height = 422
def paste_image_and_resize(base_image,sticker, x_position, y_position,img_width, img_height):
# Load the image to paste
# image_to_paste = Image.open(sticker_path)
# Define the new size (scale) for the image you're pasting
new_size = (img_width, img_height)
# Resize the image to the new size
sticker = sticker.resize(new_size)
# Specify the top-left corner where the resized image will be pasted
paste_position = (x_position, y_position) # Replace x and y with the coordinates
# Paste the resized image onto the base image
base_image.paste(sticker, paste_position)
return base_image
def build_card_template(selected_border, selected_seed_image):
print(selected_seed_image)
print(type(selected_seed_image))
selected_border = u.open_image_from_url(selected_border)
if type(selected_seed_image) == str:
print(f"String : {selected_seed_image}")
selected_seed_image = u.open_image_from_url(selected_seed_image)
mask = selected_border.split()[3]
image_list = []
# Image size parameters
width = 768
height = 1024
# Set canvas as transparent
background_color = (0,0,0,0)
#initialize canvas
canvas = Image.new('RGB', (width, height), background_color)
canvas = paste_image_and_resize(canvas, selected_seed_image,seed_x,seed_y, seed_width, seed_height)
canvas.paste(selected_border,(0,0), mask = mask)
image_list.append(canvas)
return image_list