import os import board import displayio from adafruit_display_text.label import Label from adafruit_bitmap_font import bitmap_font # the current working directory (where this file is) cwd = ("/"+__file__).rsplit('/', 1)[0] fonts = [file for file in os.listdir(cwd+"/fonts/") if (file.endswith(".bdf") and not file.startswith("._"))] for i, filename in enumerate(fonts): fonts[i] = cwd+"/fonts/"+filename print(fonts) ########################################################################## THE_FONT = fonts[0] DISPLAY_STRING = "A multi-line-\nexample of\n font bounding!" WRAP_CHARS = 40 ########################################################################## # Make the display context splash = displayio.Group() board.DISPLAY.show(splash) # Make a background color fill color_bitmap = displayio.Bitmap(320, 240, 1) color_palette = displayio.Palette(1) color_palette[0] = 0xFFFFFF bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0) splash.append(bg_sprite) # Load the font font = bitmap_font.load_font(THE_FONT) font.load_glyphs(DISPLAY_STRING.encode('utf-8')) print(DISPLAY_STRING) text = Label(font, text=DISPLAY_STRING) text.x = 20 text.y = 100 text.color = 0x0 # Make a background color fill dims = text.bounding_box print(dims) textbg_bitmap = displayio.Bitmap(dims[2], dims[3], 1) textbg_palette = displayio.Palette(1) textbg_palette[0] = 0xFF0000 textbg_sprite = displayio.TileGrid(textbg_bitmap, pixel_shader=textbg_palette, x=text.x+dims[0], y=text.y+dims[1]) splash.append(textbg_sprite) splash.append(text) board.DISPLAY.refresh_soon() board.DISPLAY.wait_for_frame() while True: pass