eink.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import os as _os
  2. fontpath = _os.path.realpath(_os.path.join(__file__,"..","..","wavesharelib","pic", 'Font.ttc'))
  3. def eink_qr(args):
  4. from waveshare_epd import epd2in13_V2
  5. from PIL import Image,ImageDraw
  6. import qrcode
  7. epd = epd2in13_V2.EPD()
  8. epd.init(epd.FULL_UPDATE)
  9. image = Image.new('1', (epd.height, epd.width), 0)
  10. qr = qrcode.QRCode(version=1, box_size=3, border=1)
  11. qr.add_data(args.text)
  12. qr.make()
  13. pic = qr.make_image().get_image()
  14. image.paste(pic, (int(epd.height-pic.width),0), pic)
  15. epd.display(epd.getbuffer(image))
  16. epd.sleep()
  17. epd.Dev_exit()
  18. def eink_quote_qr(args):
  19. pass
  20. def eink_quote(args):
  21. import simpilib
  22. quote = simpilib.getQuote()
  23. if not quote:
  24. return
  25. args.text = quote["content"] + ' - ' + quote["author"]
  26. eink_text(args)
  27. def eink_text(args):
  28. from waveshare_epd import epd2in13_V2
  29. from PIL import Image,ImageDraw
  30. import simpilib
  31. epd = epd2in13_V2.EPD()
  32. print("init and Clear")
  33. epd.init(epd.FULL_UPDATE)
  34. # epd.Clear(0xFF)
  35. image = Image.new('1', (epd.height, epd.width), 0)
  36. draw = ImageDraw.Draw(image)
  37. text, longline = simpilib.wrapText(args.text, line_width_factor=5)
  38. font = simpilib.loadFontSize(text, draw, image, fontpath)
  39. w, h = draw.textsize(text, font=font)
  40. # epd parameters are rotated 90°
  41. center = [
  42. int((epd.height - w)/2),
  43. int((epd.width-h)/2) - 3,
  44. ]
  45. # -3 px to leave some space for low characters
  46. print("Drawing:", (w, h), (epd.height, epd.width), center)
  47. draw.text(center, text, align="center", font = font, fill = 255)
  48. # epd.display(epd.getbuffer(image.rotate(180)))
  49. epd.display(epd.getbuffer(image))
  50. epd.sleep()
  51. epd.Dev_exit()