예제 #1
0
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()
예제 #2
0
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()
예제 #3
0
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
예제 #4
0
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
예제 #6
0
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))
예제 #7
0
    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
예제 #8
0
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()
예제 #9
0
    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
예제 #10
0
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()