From 7ae3ba8e5bd265b995638c99bc77e855f26543b8 Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Tue, 24 Sep 2019 16:32:13 -0700 Subject: [PATCH 1/2] Added PIL/Pillow Example that does the equivalent of displayio --- examples/ssd1306_pillow_demo.py | 57 +++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 examples/ssd1306_pillow_demo.py diff --git a/examples/ssd1306_pillow_demo.py b/examples/ssd1306_pillow_demo.py new file mode 100644 index 0000000..a8cb5c2 --- /dev/null +++ b/examples/ssd1306_pillow_demo.py @@ -0,0 +1,57 @@ +""" +This demo will fill the screen with white, draw a black box on top +and then print Hello World! in the center of the display +""" + +import board +import digitalio +from PIL import Image, ImageDraw, ImageFont +import adafruit_ssd1306 + +# Define the Reset Pin +oled_reset = digitalio.DigitalInOut(board.D4) + +# Change these +# to the right size for your display! +WIDTH = 128 +HEIGHT = 32 # Change to 64 if needed +BORDER = 5 + +# Use for I2C. +i2c = board.I2C() +oled = adafruit_ssd1306.SSD1306_I2C(WIDTH, HEIGHT, i2c, addr=0x3c, reset=oled_reset) + +# Use for SPI +spi = board.SPI() +oled_cs = digitalio.DigitalInOut(board.D5) +oled_dc = digitalio.DigitalInOut(board.D6) +oled = adafruit_ssd1306.SSD1306_SPI(WIDTH, HEIGHT, spi, oled_dc, oled_reset, oled_cs) + +# Clear display. +oled.fill(0) +oled.show() + +# Create blank image for drawing. +# Make sure to create image with mode '1' for 1-bit color. +image = Image.new('1', (oled.width, oled.height)) + +# Get drawing object to draw on image. +draw = ImageDraw.Draw(image) + +# Draw a white background +draw.rectangle((0, 0, oled.width, oled.height), outline=255, fill=255) + +# Draw a smaller inner rectangle +draw.rectangle((BORDER, BORDER, oled.width - BORDER - 1, oled.height - BORDER - 1), outline=0, fill=0) + +# Load default font. +font = ImageFont.load_default() + +# Draw Some Text +text = "Hello World!" +(font_width, font_height) = font.getsize(text) +draw.text((oled.width//2 - font_width//2, oled.height//2 - font_height//2), text, font=font, fill=255) + +# Display image +oled.image(image) +oled.show() From 86d3cb96f074c4627f1cece4d3b123d269ebb609 Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Tue, 24 Sep 2019 16:37:53 -0700 Subject: [PATCH 2/2] linting --- examples/ssd1306_pillow_demo.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/ssd1306_pillow_demo.py b/examples/ssd1306_pillow_demo.py index a8cb5c2..af3207a 100644 --- a/examples/ssd1306_pillow_demo.py +++ b/examples/ssd1306_pillow_demo.py @@ -42,7 +42,8 @@ draw.rectangle((0, 0, oled.width, oled.height), outline=255, fill=255) # Draw a smaller inner rectangle -draw.rectangle((BORDER, BORDER, oled.width - BORDER - 1, oled.height - BORDER - 1), outline=0, fill=0) +draw.rectangle((BORDER, BORDER, oled.width - BORDER - 1, oled.height - BORDER - 1), + outline=0, fill=0) # Load default font. font = ImageFont.load_default() @@ -50,7 +51,8 @@ # Draw Some Text text = "Hello World!" (font_width, font_height) = font.getsize(text) -draw.text((oled.width//2 - font_width//2, oled.height//2 - font_height//2), text, font=font, fill=255) +draw.text((oled.width//2 - font_width//2, oled.height//2 - font_height//2), + text, font=font, fill=255) # Display image oled.image(image)