forked from Decentrala/website
		
	add A3 poster format
This commit is contained in:
		| @@ -40,30 +40,30 @@ def load_events(csv_path:str, month:int) -> list[dict]: | |||||||
|         return events |         return events | ||||||
|  |  | ||||||
| def drawPoster(events, bg, fg, month:int): | def drawPoster(events, bg, fg, month:int): | ||||||
|     fontFacade = ImageFont.truetype('./site/font/Facade-Sud.woff', size=110) |     fontFacade = ImageFont.truetype('./site/font/Facade-Sud.woff', size=365) | ||||||
|     fontIosevka = ImageFont.truetype('./site/font/iosevka-regular.woff', size=60) |     fontIosevka = ImageFont.truetype('./site/font/iosevka-regular.woff', size=200) | ||||||
|     fontIosevkaSmall = ImageFont.truetype('./site/font/iosevka-regular.woff', size=45) |     fontIosevkaSmall = ImageFont.truetype('./site/font/iosevka-regular.woff', size=150) | ||||||
|  |  | ||||||
|     W = 1200 |     W = 3508 | ||||||
|     H = 1500  |     H = 4960  | ||||||
|     img = Image.new('RGB', (W, H), bg) |     img = Image.new('RGB', (W, H), bg) | ||||||
|     draw = ImageDraw.Draw(img) |     draw = ImageDraw.Draw(img) | ||||||
|  |  | ||||||
|     header = "DECENTRALA" |     header = "DECENTRALA" | ||||||
|     _, _, w, _ = draw.textbbox((0, 0), header, font=fontFacade) |     _, _, w, _ = draw.textbbox((0, 0), header, font=fontFacade) | ||||||
|     draw.text(((W-w)/2, 50), header, font=fontFacade, fill=fg) |     draw.text(((W-w)/2, 165), header, font=fontFacade, fill=fg) | ||||||
|  |  | ||||||
|     subheader = f"Plan za {MONTHS_SR[month.month - 1]}" |     subheader = f"Plan za {MONTHS_SR[month.month - 1]}" | ||||||
|     _, _, w, _ = draw.textbbox((0, 0), subheader, font=fontIosevka) |     _, _, w, _ = draw.textbbox((0, 0), subheader, font=fontIosevka) | ||||||
|     draw.text(((W-w)/2, 170), subheader, font=fontIosevka, fill=fg) |     draw.text(((W-w)/2, 560), subheader, font=fontIosevka, fill=fg) | ||||||
|  |  | ||||||
|     height = 300 |     height = 990 | ||||||
|  |  | ||||||
|     draw.text((50, height), "Radionice pocinju u 19h u DC Krovu", font=fontIosevkaSmall, fill=fg) |     draw.text((165, height), "Radionice pocinju u 19h u DC Krovu", font=fontIosevkaSmall, fill=fg) | ||||||
|     height += 60 |     height += 200 | ||||||
|  |  | ||||||
|     draw.text((50, height), "Svi dogadjaji su uvek besplatni", font=fontIosevkaSmall, fill=fg) |     draw.text((165, height), "Svi dogadjaji su uvek besplatni", font=fontIosevkaSmall, fill=fg) | ||||||
|     height += 90 |     height += 300 | ||||||
|  |  | ||||||
|     # Write list of events to sperate text file as well |     # Write list of events to sperate text file as well | ||||||
|     textfile=open("poster.txt","w") |     textfile=open("poster.txt","w") | ||||||
| @@ -81,8 +81,8 @@ def drawPoster(events, bg, fg, month:int): | |||||||
|         title = event["title"] |         title = event["title"] | ||||||
|         pad = " " if event["date"].day < 10 else "" |         pad = " " if event["date"].day < 10 else "" | ||||||
|         eventText = f"{date} {day}. {pad} {title}" |         eventText = f"{date} {day}. {pad} {title}" | ||||||
|         draw.text((50, height), eventText, font=fontIosevkaSmall, fill=fg) |         draw.text((165, height), eventText, font=fontIosevkaSmall, fill=fg) | ||||||
|         height += 70 |         height += 200 | ||||||
|  |  | ||||||
|         # Add event to textfile |         # Add event to textfile | ||||||
|         textfile.write(eventText + "\n") |         textfile.write(eventText + "\n") | ||||||
| @@ -90,20 +90,20 @@ def drawPoster(events, bg, fg, month:int): | |||||||
|     textfile.close() |     textfile.close() | ||||||
|  |  | ||||||
|     def drawCircle(x, y): |     def drawCircle(x, y): | ||||||
|         r = 10 |         r = 50 | ||||||
|         draw.ellipse((x - r, y - r, x + r, y+r), fill=fg, outline=(0, 0, 0), width=0) |         draw.ellipse((x - r, y - r, x + r, y+r), fill=fg, outline=(0, 0, 0), width=0) | ||||||
|  |  | ||||||
|     LCX = 1050 # logo center x |     LCX = 3100 # logo center x | ||||||
|     LCY = 1300 # logo center y |     LCY = 4350 # logo center y | ||||||
|     d = 50 # delta |     d = 190 # delta | ||||||
|     drawCircle(LCX - d, LCY) |     drawCircle(LCX - d, LCY) | ||||||
|     drawCircle(LCX, LCY) |     drawCircle(LCX, LCY) | ||||||
|     drawCircle(LCX, LCY - d) |     drawCircle(LCX, LCY - d) | ||||||
|     drawCircle(LCX, LCY + d) |     drawCircle(LCX, LCY + d) | ||||||
|     drawCircle(LCX + d, LCY) |     drawCircle(LCX + d, LCY) | ||||||
|  |  | ||||||
|     draw.line([(LCX - d, LCY), (LCX + d, LCY)], fill=fg, width=5, joint=None) |     draw.line([(LCX - d, LCY), (LCX + d, LCY)], fill=fg, width=20, joint=None) | ||||||
|     draw.line([(LCX, LCY), (LCX, LCY + d), (LCX + d, LCY), (LCX, LCY - d)], fill=fg, width=5, joint=None) |     draw.line([(LCX, LCY), (LCX, LCY + d), (LCX + d, LCY), (LCX, LCY - d)], fill=fg, width=20, joint=None) | ||||||
|     draw.text((LCX - 1.7*d, LCY + 1.5*d), "dmz.rs", font=fontIosevka, fill=fg) |     draw.text((LCX - 1.7*d, LCY + 1.5*d), "dmz.rs", font=fontIosevka, fill=fg) | ||||||
|  |  | ||||||
|     return img |     return img | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user