Auto-Slide-Tool/imageGen.py
2024-07-13 23:23:01 +00:00

143 lines
5.2 KiB
Python

from openpyxl import Workbook
import cords
from PIL import Image, ImageDraw, ImageFont
import numpy as np
def gen_I_Mountain(wb):
## I Mountain image code
I_Mountain = Image.open('./templets/I_mountain.png').convert('RGBA').resize((1920, 1080))
I_Mountain_Mask = Image.open('./templets/mask/I_mountain_mask.png').convert('L')
blank = Image.open('./templets/I_mountain.png').convert('RGBA').resize((1920, 1080))
EF = Image.open('./.gen/EF.png')
EF = cords.scale(EF,0.265)
blank.paste(EF, cords.center_on(EF,(463,805)),EF)
DI = Image.open('./.gen/DI.png')
DI = cords.scale(DI,0.265)
blank.paste(DI, cords.center_on(DI,(698,450)),DI)
LI = Image.open('./.gen/LI.png')
LI = cords.scale(LI,0.265)
blank.paste(LI, cords.center_on(LI,(1472,802)),LI)
#Mask and combine
graph_comp = Image.composite(blank, I_Mountain, I_Mountain_Mask) #.save("./gen/I_mountain.png")
draw = ImageDraw.Draw(graph_comp)
font = ImageFont.truetype("./fonts/Asap_Condensed/AsapCondensed-Bold.ttf", 36)
draw.text((442, 623),format_frendly(wb["I Mountain"]["B2"].value),(0,0,0),font=font)
#Add box values
if wb["I Mountain"]["B16"].value:
icon = Image.open('./templets/icons/checkmark-svgrepo-com.png')
icon = cords.scale(icon,0.035)
graph_comp.paste(icon, cords.center_on(icon, (1125,365)),icon)
else:
icon = Image.open('./templets/icons/checkmark-svgrepo-com.png')
icon = cords.scale(icon,0.035)
graph_comp.paste(icon, cords.center_on(icon, (1237,365)),icon)
if wb["I Mountain"]["B17"].value:
icon = Image.open('./templets/icons/checkmark-svgrepo-com.png')
icon = cords.scale(icon,0.035)
graph_comp.paste(icon, cords.center_on(icon, (910,910)),icon)
else:
icon = Image.open('./templets/icons/checkmark-svgrepo-com.png')
icon = cords.scale(icon,0.035)
graph_comp.paste(icon, cords.center_on(icon, (1035,910)),icon)
graph_comp.save("./gen/I_mountain.png")
def gen_O_Mountain(wb):
## O Mountain Image Code
O_Mountain = Image.open('./templets/O_mountain.png').convert('RGBA').resize((1920, 1080))
O_Mountain_Mask = Image.open('./templets/mask/O_mountain_mask.png').convert('L')
O_Mountain_Mask1 = Image.open('./templets/mask/O_mountain_mask1.png').convert('L')
O_Mountain_Mask2 = Image.open('./templets/mask/O_mountain_mask2.png').convert('L')
blank = Image.open('./templets/O_mountain.png').convert('RGBA').resize((1920, 1080))
blank2 = Image.new('RGBA',(1920,1080))
K401 = Image.open('./.gen/401K_Catch_Up.png')
K401 = cords.scale(K401,0.378)
blank.paste(K401, cords.center_on(K401,(549,806)),K401)
K401C = Image.open('./.gen/401K_Contribution.png')
K401C = cords.scale(K401C,0.378)
blank2.paste(K401C, cords.center_on(K401C,(384,806)),K401C)
IRAC = Image.open('./.gen/Roth_Catch_Up.png')
IRAC = cords.scale(IRAC,0.265)
blank.paste(IRAC, cords.center_on(IRAC,(1172,855)),IRAC)
IRA = Image.open('./.gen/Roth_IRA.png')
IRA = cords.scale(IRA,0.265)
blank2.paste(IRA, cords.center_on(IRA,(1421,855)),IRA)
if wb["O Mountain"]["B16"].value:
HSA = Image.open('./.gen/HSA_Contribution.png')
HSA = cords.scale(HSA,0.265)
blank2.paste(HSA, cords.center_on(HSA,(764,445)),HSA)
else:
FSA = Image.open('./.gen/FSA_Contribution.png')
FSA = cords.scale(FSA,0.265)
blank2.paste(FSA, cords.center_on(FSA,(764,445)),FSA)
#Mask and combine
blank2 = Image.composite(blank2, Image.new('RGBA',(1920,1080)), O_Mountain_Mask2)
blank = Image.alpha_composite(blank,blank2)
graph_comp = Image.composite(blank, O_Mountain, O_Mountain_Mask)
draw = ImageDraw.Draw(graph_comp)
font = ImageFont.truetype("./fonts/Asap_Condensed/AsapCondensed-Bold.ttf", 36)
draw.text((440, 595),format_frendly(wb["O Mountain"]["B6"].value),(0,0,0),font=font)
draw.text((605, 595),format_frendly(wb["O Mountain"]["B8"].value),(0,0,0),font=font)
draw.text((1485, 703),format_frendly(wb["O Mountain"]["B2"].value),(0,0,0),font=font)
draw.text((1240, 703),format_frendly(wb["O Mountain"]["B4"].value),(0,0,0),font=font)
graph_comp.save("./gen/O_mountian.png")
def gen_Oh_I_Mountain(wb):
## Oh I Mountain Image Code
Oh_I_Mountain = Image.open('./templets/Oh_I_mountain.png').convert('RGBA').resize((1920, 1080))
Oh_I_Mountain_Mask = Image.open('./templets/mask/Oh_I_mountain_mask.png').convert('L')
blank = Image.open('./templets/Oh_I_mountain.png').convert('RGBA').resize((1920, 1080))
Goal = Image.open('./.gen/Monthly_Income_Goal.png')
Goal = cords.scale(Goal,0.68)
blank.paste(Goal, cords.center_on(Goal,(946,673)),Goal)
#Mask and combine
graph_comp = Image.composite(blank, Oh_I_Mountain, Oh_I_Mountain_Mask)
draw = ImageDraw.Draw(graph_comp)
font = ImageFont.truetype("./fonts/Asap_Condensed/AsapCondensed-Bold.ttf", 36)
draw.text((871, 298),format_frendly(wb["Oh I Mountain"]["B2"].value)+" Goal/Mo",(0,0,0),font=font)
graph_comp.save("./gen/Oh_I_mountain.png")
def format_frendly(num):
T = num / 1000
return str(int(np.floor(T)))+"K"
def format_frendly_M(num):
T = num / 1000000
return str(int(round(T,1)))+"M"
#return str(round(T,1))+"M"