def draw_error(rect, exc, font=None): left, top, right, bottom = rect inkyphat.rectangle(rect, fill=inkyphat.WHITE) icon = Image.open(os.path.join(resource_dir, 'error.png')) inkyphat.paste(icon, (left, top), inkyphat.create_mask(icon)) inkyphatwidget.textutil.print_width_limited( (left + 16, top), "%s (%s)" % (exc, type(exc).__name__), inkyphat.RED, font, right - left - 16) inkyphatwidget.request()
def draw(rect, state, title, font): left, top, right, bottom = rect inkyphat.rectangle(rect, fill=inkyphat.WHITE) text_left = left icon = status_icon.get(state, None) if icon: inkyphat.paste(icon, (left, top), inkyphat.create_mask(icon)) text_left += 16 inkyphatwidget.textutil.print_width_limited( (text_left, top), title, inkyphat.BLACK, font, right - text_left) inkyphatwidget.request()
def init_display(rotate): global icons, masks if not has_inky: print("Information for %s:" % (city)) return if rotate: inkyphat.set_rotation(180) #----- Loads icon files and generates masks for icon in glob(PATH_FILENAME + ICON_SOURCE): icon_name = icon.split("icon-")[1].replace(".png", "") icon_image = Image.open(icon) icons[icon_name] = icon_image masks[icon_name] = inkyphat.create_mask(icon_image) return
inkyphat.set_image("resources/backdrop.png") # Let's draw some lines! #inkyphat.line((69, 36, 69, 81)) # Vertical line #inkyphat.line((31, 35, 184, 35)) # Horizontal top line #inkyphat.line((69, 58, 174, 58)) # Horizontal middle line #inkyphat.line((169, 58, 169, 58), 2) # Red seaweed pixel :D # And now some text datetime = time.strftime("%d %b %Y") inkyphat.text((50, 3), datetime, inkyphat.WHITE, font=font2) inkyphat.text((160, 24), u"{:.1f}°".format(local_temperature), inkyphat.WHITE if local_temperature < WARNING_TEMP else inkyphat.RED, font=font) inkyphat.text((165, 48), u"{:.1f}°".format(mean_temperature), inkyphat.WHITE if mean_temperature < WARNING_TEMP else inkyphat.RED, font=font) inkyphat.text((1, 72), u"{:.1f}°".format(outside_temperature), inkyphat.WHITE, font=font) inkyphat.text((1, 1), "?", inkyphat.RED, font=font) if boiler_state == "True": bob_name = "resources/bob_2colour_tiny.png" bob_image = Image.open(bob_name) bob_mask = inkyphat.create_mask(bob_image) inkyphat.paste(bob_image, (50, 55), bob_mask) # And show it! inkyphat.show()
code = int(results["item"]["forecast"][0]["code"]) for icon in icon_map: if code in icon_map[icon]: weather_icon = icon break else: print("Warning, no weather information found!") # Load our icon files and generate masks for icon in glob.glob("resources/icon-*.png"): icon_name = icon.split("icon-")[1].replace(".png", "") icon_image = Image.open(icon) icons[icon_name] = icon_image masks[icon_name] = inkyphat.create_mask(icon_image) # Load the built-in FredokaOne font font = ImageFont.truetype(inkyphat.fonts.FredokaOne, 20) font2 = ImageFont.truetype(inkyphat.fonts.FredokaOne, 18) # Load our backdrop image inkyphat.set_image("resources/backdrop.png") # Let's draw some lines! #inkyphat.line((69, 36, 69, 81)) # Vertical line #inkyphat.line((31, 35, 184, 35)) # Horizontal top line #inkyphat.line((69, 58, 174, 58)) # Horizontal middle line #inkyphat.line((169, 58, 169, 58), 2) # Red seaweed pixel :D
def draw_status(rect, status_id): inkyphat.rectangle(rect, fill=inkyphat.WHITE) left, top, right, bottom = rect icon = status_icon.get(status_id) if icon: inkyphat.paste(icon, (left, top), inkyphat.create_mask(icon))
inkyphat.set_colour(colour) except ValueError: print('Invalid colour "{}" for V{}\n'.format(colour, inkyphat.get_version())) if inkyphat.get_version() == 2: sys.exit(1) print('Defaulting to "red"') CALENDAR_FILE = "resources/test.ics" inkyphat.set_border(inkyphat.BLACK) #inkyphat.set_rotation(180) # Load our sprite sheet and prepare a mask text = Image.open("resources/calendar.png") text_mask = inkyphat.create_mask(text, [inkyphat.WHITE]) # Note: The mask determines which pixels from our sprite sheet we want # to actually use when calling inkyphat.paste # which uses PIL's Image.paste() method, # See: http://pillow.readthedocs.io/en/3.1.x/reference/Image.html?highlight=paste#PIL.Image.Image.paste # Load our backdrop image inkyphat.set_image("resources/empty-backdrop.png") # Grab the current date, and prepare our calendar cal = calendar.Calendar() now = datetime.date.today() dates = cal.monthdatescalendar(now.year, now.month) ics = None
async def widget(loop, rect): left, top, right, bottom = rect icon = Image.open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'img', 'ahiruyaki.png')) inkyphat.paste(icon, (left, top), inkyphat.create_mask(icon)) inkyphatwidget.request()
code = int(results["item"]["forecast"][0]["code"]) for icon in icon_map: if code in icon_map[icon]: weather_icon = icon break else: print("Warning, no weather information found!") # Load our icon files and generate masks for icon in glob.glob("resources/icon-*.png"): icon_name = icon.split("icon-")[1].replace(".png", "") icon_image = Image.open(icon) icons[icon_name] = icon_image masks[icon_name] = inkyphat.create_mask(icon_image) # Load the built-in FredokaOne font font = ImageFont.truetype(inkyphat.fonts.FredokaOne, 22) # Load our backdrop image inkyphat.set_image("resources/backdrop.png") # Let's draw some lines! inkyphat.line((69, 36, 69, 81)) # Vertical line inkyphat.line((31, 35, 184, 35)) # Horizontal top line inkyphat.line((69, 58, 174, 58)) # Horizontal middle line inkyphat.line((169, 58, 169, 58), 2) # Red seaweed pixel :D # And now some text