nametag.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/env python3
  2. # -*- coding:utf-8 -*-
  3. import sys
  4. import os
  5. pydir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
  6. picdir = os.path.join(pydir, "wavesharelib",'pic')
  7. libdirs = [
  8. os.path.join(pydir),
  9. os.path.join(pydir, 'wavesharelib','lib'),
  10. ]
  11. for d in libdirs:
  12. if os.path.exists(d):
  13. sys.path.append(d)
  14. import logging
  15. from waveshare_epd import epd2in13_V2
  16. import time
  17. from PIL import Image,ImageDraw
  18. from simpilib import wrapText,loadFontSize
  19. epd = epd2in13_V2.EPD()
  20. logging.info("init and Clear")
  21. epd.init(epd.FULL_UPDATE)
  22. epd.Clear(0xFF)
  23. image = Image.new('1', (epd.height, epd.width), 255)
  24. draw = ImageDraw.Draw(image)
  25. try:
  26. import requests
  27. import json
  28. import random
  29. r = requests.get('https://type.fit/api/quotes')
  30. r = r.json()
  31. r = random.choices(r)[0]
  32. text = r["text"] + " - " + r["author"]
  33. except Exception as ex:
  34. text = str(ex)
  35. fontpath = os.path.join(picdir, 'Font.ttc')
  36. text, longline = wrapText(text)
  37. font = loadFontSize(text, draw, image, fontpath)
  38. w, h = draw.textsize(text, font=font)
  39. center = (
  40. int((epd.height-w)/2),
  41. int((epd.width-h)/2)
  42. )
  43. print(center, (w, h), (epd.width, epd.height))
  44. draw.text(center, text, align="center", font = font, fill = 0)
  45. # epd.display(epd.getbuffer(image.rotate(180)))
  46. epd.display(epd.getbuffer(image))
  47. epd.sleep()
  48. epd.Dev_exit()