diff --git a/docsource/inkycal.rst b/docsource/inkycal.rst index caacd6e4..4ab9037c 100644 --- a/docsource/inkycal.rst +++ b/docsource/inkycal.rst @@ -13,23 +13,6 @@ Display :members: -Modules -=========================== -- Agenda - -.. automodule:: inkycal.modules.inkycal_agenda.Agenda - :members: - -- Calendar - -.. automodule:: inkycal.modules.inkycal_calendar.Calendar - :members: - -- Feeds Module (RSS & Atom) -.. automodule:: inkycal.modules.inkycal_feeds.Feeds - :members: - - Custom functions =========================== .. automodule:: inkycal.custom.functions diff --git a/inkycal/custom/functions.py b/inkycal/custom/functions.py index ac1e24d1..8eddd4e2 100644 --- a/inkycal/custom/functions.py +++ b/inkycal/custom/functions.py @@ -8,6 +8,7 @@ import time import traceback +import PIL import requests from PIL import ImageFont, ImageDraw, Image @@ -335,10 +336,10 @@ def draw_border(image, xy, size, radius=5, thickness=1, shrinkage=(0.1, 0.1)): draw.arc((c7, c8), 90, 180, fill=colour, width=thickness) -def draw_border_2(im: Image, xy: tuple, size: tuple, radius: int): +def draw_border_2(im: PIL.Image, xy: tuple, size: tuple, radius: int): draw = ImageDraw.Draw(im) x, y = xy w, h = size - draw.rounded_rectangle(xy=(x, y, x + w, y + h), outline="black", radius=radius) \ No newline at end of file + draw.rounded_rectangle(xy=(x, y, x + w, y + h), outline="black", radius=radius) diff --git a/inkycal/display/display.py b/inkycal/display/display.py index a0a0122b..e9fd834c 100644 --- a/inkycal/display/display.py +++ b/inkycal/display/display.py @@ -2,18 +2,21 @@ Inkycal ePaper driving functions Copyright by aceisace """ -import os import logging +import os import traceback from importlib import import_module + +import PIL from PIL import Image from inkycal.custom import top_level -import glob + def import_driver(model): return import_module(f'inkycal.display.drivers.{model}') + class Display: """Display class for inkycal @@ -44,7 +47,14 @@ def __init__(self, epaper_model): except FileNotFoundError: raise Exception('SPI could not be found. Please check if SPI is enabled') - def render(self, im_black: Image, im_colour:Image or None=None) -> None: + + def test(self) -> None: + """Test the display by showing a test image""" + # TODO implement test image + raise NotImplementedError("Devs were too lazy again, sorry, please try again later") + + + def render(self, im_black: PIL.Image, im_colour: PIL.Image or None) -> None: """Renders an image on the selected E-Paper display. Initlializes the E-Paper display, sends image data and executes command diff --git a/inkycal/modules/inky_image.py b/inkycal/modules/inky_image.py index 70ca8fcd..785f6d61 100755 --- a/inkycal/modules/inky_image.py +++ b/inkycal/modules/inky_image.py @@ -10,6 +10,8 @@ """ import logging import os + +import PIL import numpy import requests @@ -215,7 +217,7 @@ def clear_white(img): return image1 - def to_palette(self, palette, dither=True) -> (Image, Image): + def to_palette(self, palette, dither=True) -> (PIL.Image, PIL.Image): """Maps an image to a given colour palette. Maps each pixel from the image to a colour from the palette. @@ -235,6 +237,7 @@ def to_palette(self, palette, dither=True) -> (Image, Image): >>> 'bwr' # black-white-red >>> 'bwy' # black-white-yellow >>> 'bw' # black-white + >>> '16gray' # 16 shades of gray """ # Check if an image is loaded if self._image_loaded(): @@ -252,6 +255,9 @@ def to_palette(self, palette, dither=True) -> (Image, Image): elif palette == 'bw': pal = None + elif palette == '16gray': + pal = [x for x in range(0, 256, 16)] * 3 + pal.sort() else: logger.error('The given palette is unsupported.') diff --git a/tests/test_inkycal_image.py b/tests/test_inkycal_image.py index 4ee3e491..fa5289b6 100755 --- a/tests/test_inkycal_image.py +++ b/tests/test_inkycal_image.py @@ -14,7 +14,7 @@ preview = Inkyimage.preview merge = Inkyimage.merge -url = "https://github.com/aceinnolab/Inkycal/raw/assets/Repo/coffee.png" +url ="https://raw.githubusercontent.com/aceinnolab/Inkycal/assets/tests/mark-harpur-unsplash.jpg" im = Image.open(requests.get(url, stream=True).raw) im.save("test.png", "PNG") @@ -27,9 +27,9 @@ { "name": "Inkyimage", "config": { - "size": [400, 200], + "size": [800, 600], "path": test_path, - "palette": "bwr", + "palette": "16gray", "autoflip": True, "orientation": "vertical", "padding_x": 10, "padding_y": 10, "fontsize": 12, "language": "en"