Skip to content

Commit

Permalink
Merge pull request #294 from aceinnolab/feature/#289
Browse files Browse the repository at this point in the history
Implement 16 grayscale support for image module
  • Loading branch information
aceisace authored Dec 14, 2023
2 parents 1138f2d + a7e2a85 commit c2bf49c
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 26 deletions.
17 changes: 0 additions & 17 deletions docsource/inkycal.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 3 additions & 2 deletions inkycal/custom/functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import time
import traceback

import PIL
import requests
from PIL import ImageFont, ImageDraw, Image

Expand Down Expand Up @@ -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)
draw.rounded_rectangle(xy=(x, y, x + w, y + h), outline="black", radius=radius)
16 changes: 13 additions & 3 deletions inkycal/display/display.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
8 changes: 7 additions & 1 deletion inkycal/modules/inky_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
"""
import logging
import os

import PIL
import numpy
import requests

Expand Down Expand Up @@ -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.
Expand All @@ -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():
Expand All @@ -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.')
Expand Down
6 changes: 3 additions & 3 deletions tests/test_inkycal_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -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"
Expand Down

0 comments on commit c2bf49c

Please sign in to comment.