from PIL import Image, ImageDraw, ImageFont import datetime import pytz #import asyncio import google_weather import mlb #from getweather impor]t getweather # create an image displaysize = [800,480] # width, height - same as text writing features row = 0 # current row to write at out = Image.new("L", (displaysize[0], displaysize[1]),255) # get a font fnt = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",25) fntBold = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf",35) HeightNormal = 25 HeightBold = 35 MarginLeft = 1 MarginIndent = 5 # get a drawing context d = ImageDraw.Draw(out) # create text txt1 = datetime.datetime.now(pytz.timezone('America/New_York')).strftime('%A %B %d, %Y') # draw multiline text d.multiline_text((displaysize[0]/2, row), txt1, font=fntBold, fill=0, anchor = "ma") #, align="center") row += HeightBold txt1a = "As of "+datetime.datetime.now(pytz.timezone('America/New_York')).strftime('%I:%M %p') d.multiline_text((displaysize[0]/2, row), txt1a, font=fnt, fill=0, anchor = "ma") #, align="center") row += HeightNormal d.multiline_text((MarginLeft, row), "Weather:", font=fnt, fill=0, anchor = "la") row += HeightNormal try: weather = google_weather.get_google_weather() txt2 = "Current: "+weather["current"] \ +"\nToday's forecast: "+weather["forecast_today"] \ +"\nTomorrow: "+weather["forecast_tomorrow"] except: # Assume the weather API blew up txt2 = "Problem getting weather (from ImageGen)" d.multiline_text((MarginIndent, row), txt2, font=fnt, fill=0, anchor = "la") row += 3*HeightNormal d.multiline_text((MarginLeft,row), "Pirates:", font=fnt, fill=0, anchor = "la") row += HeightNormal d.multiline_text((MarginIndent,row), mlb.get_pirates(), font=fnt, fill=0, anchor = "la") row += 3*HeightNormal out.save("/mnt/nfs/HomeAutomation/ForHA.jpg","JPEG") #out.show()