From 750b69843fdff0aa49672deacde15f8af78f5451 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Sat, 28 Sep 2024 23:24:05 +0200 Subject: [PATCH] fix png, add emoji --- images/love.png | Bin 0 -> 1268 bytes images/work.png | Bin 0 -> 1080 bytes main.py | 88 +++++++++++++++++++++++++++++------------------- 3 files changed, 53 insertions(+), 35 deletions(-) create mode 100644 images/love.png create mode 100644 images/work.png diff --git a/images/love.png b/images/love.png new file mode 100644 index 0000000000000000000000000000000000000000..6803aa869083ad328b4886a4452fb6e66b456326 GIT binary patch literal 1268 zcmVQ*F000ELNkl#|efrf41Dr0G%g+zxzw7n- z?|eT0TK_9g-;N1rnU=mK20xAVBlKn%#*c?6G@O;5_#|4hfez@uPmLv9)fLS@ZjmwDB z%Q#VeKm#i}ic|jDNxU7f_O{lWvslNY+rRh=QkZ8)S7bwsnC; zakd67y8Zk0U^-yiOmzvXbjn5?x|_hP9X8y{aPEuHW3|eA6&MCqsK5d;935eS4mD^+ zU>H~ewtfVOsf6n)rc1(Far>$aTWBu| z>jCSz(R+Qi?AP+A2&@N7%eb7U9DxfdxxXInKHx(9)TK6t7m_I?x zrSG8=SP;aEnR)pe2o?+&UAe(R!Dp^y$Wmc^oK!}70$XO2dDmIRk9jBA$hGniPFc`- zDzndt!#w6Dxu$4hd;v>Y81g-)DsjLvdS;~&b+{lj`d8E>? zsSAv%vS4utVXna^Fhj(}t&w10hftZ)hJl(5s1Kzd0vI)tO8wBl655`O-d>pWJsqpL zW_OIvOO~Y2VglPngqqycev&jgWB0yJu=`z8SsL}|^J=k zmKZQ;Xz0kXb%3Xf1T0Zt^Fr&>e}h%{wb=eBm5LXY6>$wr@=ROfRMd5(Nfkr zt2(fm%A+A|Wen+sqOpfzCuN*P}7;X3#Esr2rU~BXm5`pO% zC~+$i6;{}iI8q)X!(s5<000C3Nkl!(kX+J;i+X0@XWA3N$Zp0d9!KDfXaZH66^QX$6E;n#@eHavYyI-Dgc$iq}Y^lOaN+hs5?hGphkzf)BAvG1~u;_ z#`tBNU{S=15~t$J2YNRgiM1YE9>$st)O{U~URo(arMGGwvC7}w>Bm_fgDkb=GiQqv(fxTnt0jdp5nQurW1d8lq3-=Dy254j%E5}aw?qUUd zgW3a7*YiLyxEX9WP%HP9*>*Rmm&+yNuW`&`ZhB*>hV2}xl#IS=Ei_arlJp&eaQpDZ zixkZUYMTj?RA|iT4i!k-Asc%9wu3=76F`;K(}g!cb%8-P2tduzlX~sW@hz|hPz6Nv z=E4b7=cVtB+7IzKff_-z(ucl!g$t+=>WLX6pfUxEU=FAeDBWYE9RYwE3MwsFK&9yv z!)m#Uv7pwwzs1ndYm_XgUXw`2C0vHIBh6f<#-W<)YZ3sUn#iuZDWINW%v4U4fU4Ux zCfh0W~bTbl`vrs0}L6U`lQ~6<4$TYI6%UKP6`?4XTp? zRro#XllHpa4M7V)<+@-%RphBxq3IOVYtEFKCsG)k0 z7A*chm8MfDD|G4;t`^2HpoZ!}TCk>2Tj&apPvoXhX>|uHt^$C{RV;u#0cs0FG5`s| z5D8EPcY~`c3dlo6W0SyXUa;h$l2W1@p+@Lht(NYg@>8m}LbKaQStJ4gRFZnJi~uzj zFH*FCN|Gs-QKL}JPrC|LkiJ4T3blf!j<;wNY7dQiP*i$QI~Ufnk@cWjX4U!Lc2M!E zNUii3P#dApNE-iF#CKv0sA`1;$HEE#s<5CQ+ySZw3c@h}s<5CQ+ySa81)GO;Kvjim z?)znx@YJ zNwL(C0>d!8-k{Dgse>&zh6T0Ck yu{QZOz3U2dP4Yf|w^;*hSq;>jRL?-?$o~N?uX016UV4)N0000 dict[str, dict[str, str]]: + zodiac_signs = [ + "Belier", + "Cancer", + "Balance", + "Capricorne", + "Taureau", + "Lion", + "Scorpion", + "Verseau", + "Gemeaux", + "Vierge", + "Sagittaire", + "Poissons", + ] -def generate_horoscope(): horoscope = {} for sign in zodiac_signs: - heart = choice(["+++", "++", "+", "-", "- -"]) + love = choice(["+++", "++", "+", "-", "- -"]) work = choice(["+++", "++", "+", "-", "- -"]) - horoscope[sign] = {"heart": heart, "work": work} + horoscope[sign] = {"love": love, "work": work} return horoscope -def create_horoscope_image(horoscope): - img_width, img_height = 1050, 450 +def create_horoscope_image(horoscope: dict[str, dict[str, str]]): + img_width, img_height = 1200, 425 image = Image.new("RGBA", (img_width, img_height), color=(255, 255, 255, 0)) draw = ImageDraw.Draw(image) - font = ImageFont.load_default(24) + size_emoji = (30, 30) + + font_sign = ImageFont.load_default(24) + font_prediction = ImageFont.load_default(40) x, y = 10, 10 for sign, prediction in horoscope.items(): sign_image = Image.open(join("images", f"{sign.lower()}.png")).convert("RGBA") - sign_image.thumbnail((100, 100)) - image.paste(sign_image, (x, y), sign_image) + sign_image.thumbnail((100, 105)) + image.paste(sign_image, (x + 20, y), sign_image) - draw.text((x + 110, y), sign, fill=(0, 0, 0, 255), font=font) + # Sign text + text_img = Image.new("RGBA", (135, 24), (255, 255, 255, 0)) + text_draw = ImageDraw.Draw(text_img) + text_draw.text((0, 0), f"{sign:^15}", font=font_sign, fill="black") + text_draw = text_img.rotate(90, expand=True) + image.paste(text_draw, (x - 10, y - 10), text_draw) + + # Love prediction + love = Image.open(join("images", "love.png")).convert("RGBA") + love.thumbnail(size_emoji) + image.paste(love, (x + 125, y + 20), love) draw.text( - (x + 110, y + 40), - f"♥: {prediction['heart']}", - fill=(255, 0, 0, 255), - font=font, - ) - draw.text( - (x + 110, y + 80), - f"💼: {prediction['work']}", - fill=(0, 0, 255, 255), - font=font, + (x + 160, y + 10), + prediction["love"], + fill="black", + font=font_prediction, ) - x += 250 - if x > 900: + # Work prediction + work = Image.open(join("images", "work.png")).convert("RGBA") + work.thumbnail(size_emoji) + image.paste(work, (x + 125, y + 60), work) + draw.text( + (x + 160, y + 50), + prediction["work"], + fill="black", + font=font_prediction, + ) + + x += 320 + if x > 1200: x = 10 y += 150