Simple test¶
Ensure your device works with this simple test.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
This example loads a font and uses it to print an
ASCII art representation of the given string specimen
"""
from adafruit_bitmap_font import bitmap_font # pylint: disable=wrong-import-position
# you can change this to a different bdf or pcf font file
font_file = "fonts/LeagueSpartan-Bold-16.bdf"
# you can change the string that will get printed here
message = "<3 Blinka"
font = bitmap_font.load_font(font_file)
_, height, _, dy = font.get_bounding_box()
font.load_glyphs(message)
for y in range(height):
for c in message:
glyph = font.get_glyph(ord(c))
if not glyph:
continue
glyph_y = y + (glyph.height - (height + dy)) + glyph.dy
pixels = []
if 0 <= glyph_y < glyph.height:
for i in range(glyph.width):
value = glyph.bitmap[i, glyph_y]
pixel = " "
if value > 0:
pixel = "#"
pixels.append(pixel)
else:
pixels = ""
print("".join(pixels) + " " * (glyph.shift_x - len(pixels)), end="")
print()
|
Label simple test¶
This example uses adafruit_display_text.label
to display text using a custom font
loaded by adafruit_bitmap_font
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | # SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
This example uses adafruit_display_text.label to display text using a custom font
loaded by adafruit_bitmap_font
"""
import board
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font
# use built in display (MagTag, PyPortal, PyGamer, PyBadge, CLUE, etc.)
# see guide for setting up external displays (TFT / OLED breakouts, RGB matrices, etc.)
# https://learn.adafruit.com/circuitpython-display-support-using-displayio/display-and-display-bus
display = board.DISPLAY
# try uncommenting different font files if you like
font_file = "fonts/LeagueSpartan-Bold-16.bdf"
# font_file = "fonts/Junction-regular-24.pcf"
# Set text, font, and color
text = "HELLO WORLD"
font = bitmap_font.load_font(font_file)
color = 0xFF00FF
# Create the tet label
text_area = label.Label(font, text=text, color=color)
# Set the location
text_area.x = 20
text_area.y = 20
# Show it
display.show(text_area)
while True:
pass
|
Displayio simple test¶
This example uses adafruit_bitmap_font
to load a font and fill a bitmap with
pixels matching glyphs from a given String
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | # SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
This example runs on PyPortal, or any Circuit Python device
with a built-in screen.
It will use adafruit_bitmap_font to load a font and fill a
bitmap with pixels matching glyphs from a given String
"""
import board
import displayio
from adafruit_bitmap_font import bitmap_font
# use built in display (MagTag, PyPortal, PyGamer, PyBadge, CLUE, etc.)
# see guide for setting up external displays (TFT / OLED breakouts, RGB matrices, etc.)
# https://learn.adafruit.com/circuitpython-display-support-using-displayio/display-and-display-bus
display = board.DISPLAY
# try uncommenting different font files if you like
font_file = "fonts/LeagueSpartan-Bold-16.bdf"
# font_file = "fonts/Junction-regular-24.pcf"
font = bitmap_font.load_font(font_file)
bitmap = displayio.Bitmap(display.width, display.height, 2)
palette = displayio.Palette(2)
palette[0] = 0x000000
palette[1] = 0xFFFFFF
_, height, _, dy = font.get_bounding_box()
for y in range(height):
pixels = []
for c in "Adafruit CircuitPython":
glyph = font.get_glyph(ord(c))
if not glyph:
continue
glyph_y = y + (glyph.height - (height + dy)) + glyph.dy
if 0 <= glyph_y < glyph.height:
for i in range(glyph.width):
value = glyph.bitmap[i, glyph_y]
pixel = 0
if value > 0:
pixel = 1
pixels.append(pixel)
else:
# empty section for this glyph
for i in range(glyph.width):
pixels.append(0)
# one space between glyph
pixels.append(0)
if pixels:
for x, pixel in enumerate(pixels):
bitmap[x, y] = pixel
# Create a TileGrid to hold the bitmap
tile_grid = displayio.TileGrid(bitmap, pixel_shader=palette)
# Create a Group to hold the TileGrid
group = displayio.Group()
group.x = 20
# Add the TileGrid to the Group
group.append(tile_grid)
# Add the Group to the Display
display.show(group)
while True:
pass
|
Label MagTag¶
This example uses adafruit_display_text.label
to display text using a custom font
loaded by adafruit_bitmap_font
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | # SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
This example uses adafruit_display_text.label to display text using a custom font
loaded by adafruit_bitmap_font.
Adapted for use on MagTag
"""
import time
import board
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font
# use built in display (MagTag, PyPortal, PyGamer, PyBadge, CLUE, etc.)
# see guide for setting up external displays (TFT / OLED breakouts, RGB matrices, etc.)
# https://learn.adafruit.com/circuitpython-display-support-using-displayio/display-and-display-bus
display = board.DISPLAY
# wait until we can refresh the display
time.sleep(display.time_to_refresh)
# try uncommenting different font files if you like
font_file = "fonts/LeagueSpartan-Bold-16.bdf"
# font_file = "fonts/Junction-regular-24.pcf"
# Set text, font, and color
text = "HELLO WORLD\nbitmap_font example"
font = bitmap_font.load_font(font_file)
color = 0xFFFFFF
background_color = 0x999999
# Create the tet label
text_area = label.Label(
font,
text=text,
color=color,
background_color=background_color,
padding_top=3,
padding_bottom=3,
padding_right=4,
padding_left=4,
)
text_area.line_spacing = 1.0
# Set the location
text_area.x = 20
text_area.y = 20
# Show it and refresh
display.show(text_area)
display.refresh()
while True:
pass
|
Fork Awesome icons¶
This example uses adafruit_display_text.label
to display fork awesome
icons.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # SPDX-FileCopyrightText: 2021 Tim Cocks
# SPDX-License-Identifier: MIT
"""
This example uses adafruit_display_text.label to display fork awesome
icons.
More info here: https://emergent.unpythonic.net/01606790241
"""
import board
from bitmap_font_forkawesome_icons import microchip, python, terminal
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font
# use built in display (MagTag, PyPortal, PyGamer, PyBadge, CLUE, etc.)
# see guide for setting up external displays (TFT / OLED breakouts, RGB matrices, etc.)
# https://learn.adafruit.com/circuitpython-display-support-using-displayio/display-and-display-bus
display = board.DISPLAY
font_file = "fonts/forkawesome-42.pcf"
# Set text, font, and color
text = "{} {} {}".format(terminal, python, microchip)
font = bitmap_font.load_font(font_file)
color = 0xFF00FF
# Create the tet label
text_area = label.Label(font, text=text, color=color)
# Set the location
text_area.anchor_point = (0.5, 0.5)
text_area.anchored_position = (display.width // 2, display.height // 2)
# Show it
display.show(text_area)
while True:
pass
|