assets added
This commit is contained in:
parent
67b3c0e2d8
commit
dc3337d22b
9 changed files with 49 additions and 23 deletions
BIN
assets/cal-icon.aseprite
Normal file
BIN
assets/cal-icon.aseprite
Normal file
Binary file not shown.
BIN
assets/cal-icon.bmp
Normal file
BIN
assets/cal-icon.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
BIN
assets/output.bmp
Normal file
BIN
assets/output.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
BIN
assets/test2.bmp
Normal file
BIN
assets/test2.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
BIN
assets/test3.bmp
Normal file
BIN
assets/test3.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
BIN
assets/test4.bmp
Normal file
BIN
assets/test4.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
BIN
assets/wavesharefont.ttc
Normal file
BIN
assets/wavesharefont.ttc
Normal file
Binary file not shown.
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"displayTZ": "Spain/Madrid",
|
||||
"isDisplayConected": true,
|
||||
"isDisplayConected": false,
|
||||
"screenWidth": 250,
|
||||
"screenHeight": 122,
|
||||
"imageWidth": 250,
|
||||
"imageHeight": 122,
|
||||
"rotateAngle": 180
|
||||
"rotateAngle": 180,
|
||||
"hourFormat": "12h"
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ There will also be work needed to adjust the calendar rendering for different sc
|
|||
CSS stylesheets in the "render" folder.
|
||||
"""
|
||||
import datetime as dt
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
|
@ -16,43 +17,68 @@ from display.display import DisplayHelper
|
|||
import json
|
||||
import logging
|
||||
from PIL import Image,ImageDraw,ImageFont
|
||||
import time
|
||||
|
||||
|
||||
def main():
|
||||
# Basic configuration settings (user replaceable)
|
||||
configFile = open('config.json')
|
||||
# config.json is in the root folder
|
||||
configFile = open(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'config.json'))
|
||||
config = json.load(configFile)
|
||||
|
||||
displayTZ = config['displayTZ'] # list of timezones - print(pytz.all_timezones)
|
||||
|
||||
isDisplayConected = config['isDisplayConected'] # set to true when debugging rendering without displaying to screen
|
||||
screenWidth = config['screenWidth'] # Width of E-Ink display. Default is landscape. Need to rotate image to fit.
|
||||
screenHeight = config['screenHeight'] # Height of E-Ink display. Default is landscape. Need to rotate image to fit.
|
||||
imageWidth = config['imageWidth'] # Width of image to be generated for display.
|
||||
imageHeight = config['imageHeight'] # Height of image to be generated for display.
|
||||
rotateAngle = config['rotateAngle'] # If image is rendered in portrait orientation, angle to rotate to fit screen
|
||||
hourFormat = config['hourFormat'] # The format the hour will be displayed. eg. 13:02 or 01:02 PM
|
||||
|
||||
# Set the hour, this is important to see what time the e-Paper has been syncronized
|
||||
if hourFormat == "12h":
|
||||
time = dt.datetime.now().strftime("%I:%M %p")
|
||||
else:
|
||||
time = dt.datetime.now().strftime("%H:%M")
|
||||
|
||||
|
||||
assets = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'assets')
|
||||
# Drawing on the image
|
||||
font15 = ImageFont.truetype(os.path.join(assets, 'wavesharefont.ttc'), 15)
|
||||
font24 = ImageFont.truetype(os.path.join(assets, 'wavesharefont.ttc'), 24)
|
||||
|
||||
#image = Image.open('assets/test4.bmp')
|
||||
image = Image.new('1', (imageWidth, imageHeight), 255) # 255: clear the frame
|
||||
draw = ImageDraw.Draw(image)
|
||||
|
||||
draw.text((0, 0), time, font = font15, fill = 0) # draw the current time in the top left corner
|
||||
|
||||
draw.line([(0,20),(250,20)], fill = 0,width = 2)
|
||||
draw.line([(125,20),(125,122)], fill = 0,width = 2)
|
||||
|
||||
cal_icon = Image.open(os.path.join(assets, "cal-icon.bmp"))
|
||||
|
||||
image.paste(cal_icon, (129,24))
|
||||
|
||||
draw.text((160, 26), 'Agenda', font = font15, fill = 0)
|
||||
|
||||
# draw.line([(0,50),(50,0)], fill = 0,width = 1)
|
||||
# draw.chord((10, 60, 50, 100), 0, 360, fill = 0)
|
||||
# draw.ellipse((55, 60, 95, 100), outline = 0)
|
||||
# draw.pieslice((55, 60, 95, 100), 90, 180, outline = 0)
|
||||
# draw.pieslice((55, 60, 95, 100), 270, 360, fill = 0)
|
||||
# draw.polygon([(110,0),(110,50),(150,25)],outline = 0)
|
||||
# draw.polygon([(190,0),(190,50),(150,25)],fill = 0)
|
||||
# draw.rectangle([(0,0),(50,50)],outline = 0)
|
||||
|
||||
image.save(os.path.join(assets, 'output.bmp'))
|
||||
|
||||
|
||||
|
||||
if isDisplayConected:
|
||||
from display.display import DisplayHelper
|
||||
|
||||
displayService = DisplayHelper(screenWidth, screenHeight)
|
||||
|
||||
image = Image.open('assets/test.bmp')
|
||||
draw = ImageDraw.Draw(image)
|
||||
draw.rectangle([(0,0),(50,50)],outline = 0)
|
||||
draw.rectangle([(55,0),(100,50)],fill = 0)
|
||||
draw.line([(0,0),(50,50)], fill = 0,width = 1)
|
||||
draw.line([(0,50),(50,0)], fill = 0,width = 1)
|
||||
draw.chord((10, 60, 50, 100), 0, 360, fill = 0)
|
||||
draw.ellipse((55, 60, 95, 100), outline = 0)
|
||||
draw.pieslice((55, 60, 95, 100), 90, 180, outline = 0)
|
||||
draw.pieslice((55, 60, 95, 100), 270, 360, fill = 0)
|
||||
draw.polygon([(110,0),(110,50),(150,25)],outline = 0)
|
||||
draw.polygon([(190,0),(190,50),(150,25)],fill = 0)
|
||||
|
||||
|
||||
displayService.update(image) # go to sleep
|
||||
displayService.update(image.rotate(rotateAngle)) # go to sleep
|
||||
displayService.clear()
|
||||
displayService.sleep() # go to sleep
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue