Merge pull request #3069 from FoamyGuy/odb_api_update

Use new OnDiskBitmap API
This commit is contained in:
foamyguy 2025-06-27 15:24:06 -05:00 committed by GitHub
commit 31240bf5aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
49 changed files with 157 additions and 570 deletions

View file

@ -22,31 +22,17 @@ clue.pixel.fill(0) # turn off NeoPixel
clue_display = displayio.Group() clue_display = displayio.Group()
# draw the dry plant # draw the dry plant
dry_plant_file = open("dry.bmp", "rb") dry_plant_bmp = displayio.OnDiskBitmap("dry.bmp")
dry_plant_bmp = displayio.OnDiskBitmap(dry_plant_file)
# CircuitPython 6 & 7 compatible
dry_plant_sprite = displayio.TileGrid( dry_plant_sprite = displayio.TileGrid(
dry_plant_bmp, dry_plant_bmp, pixel_shader=dry_plant_bmp.pixel_shader
pixel_shader=getattr(dry_plant_bmp, "pixel_shader", displayio.ColorConverter()),
) )
# CircuitPython 7 compatible
# dry_plant_sprite = displayio.TileGrid(
# dry_plant_bmp, pixel_shader=dry_plant_bmp.pixel_shader
# )
clue_display.append(dry_plant_sprite) clue_display.append(dry_plant_sprite)
# draw the happy plant on top (so it can be moved out of the way when needed) # draw the happy plant on top (so it can be moved out of the way when needed)
happy_plant_file = open("happy.bmp", "rb") happy_plant_bmp = displayio.OnDiskBitmap("happy.bmp")
happy_plant_bmp = displayio.OnDiskBitmap(happy_plant_file)
# CircuitPython 6 & 7 compatible
happy_plant_sprite = displayio.TileGrid( happy_plant_sprite = displayio.TileGrid(
happy_plant_bmp, happy_plant_bmp, pixel_shader=happy_plant_bmp.pixel_shader
pixel_shader=getattr(happy_plant_bmp, "pixel_shader", displayio.ColorConverter()),
) )
# CircuitPython 7 compatible
# happy_plant_sprite = displayio.TileGrid(
# happy_plant_bmp, pixel_shader=happy_plant_bmp.pixel_shader
# )
clue_display.append(happy_plant_sprite) clue_display.append(happy_plant_sprite)
# Create text # Create text

View file

@ -22,32 +22,14 @@ splash = displayio.Group()
# bad egg # bad egg
BAD_EGG_FILENAME = "broken_egg.bmp" BAD_EGG_FILENAME = "broken_egg.bmp"
# CircuitPython 6 & 7 compatible begg_bmp = displayio.OnDiskBitmap(BAD_EGG_FILENAME)
begg_file = open(BAD_EGG_FILENAME, "rb") begg_sprite = displayio.TileGrid(begg_bmp, pixel_shader=begg_bmp.pixel_shader)
begg_bmp = displayio.OnDiskBitmap(begg_file)
begg_sprite = displayio.TileGrid(
begg_bmp,
pixel_shader=getattr(begg_bmp, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# begg_bmp = displayio.OnDiskBitmap(BAD_EGG_FILENAME)
# begg_sprite = displayio.TileGrid(begg_bmp, pixel_shader=begg_bmp.pixel_shader)
# good egg # good egg
GOOD_EGG_FILENAME = "good_egg.bmp" GOOD_EGG_FILENAME = "good_egg.bmp"
# CircuitPython 6 & 7 compatible gegg_bmp = displayio.OnDiskBitmap(GOOD_EGG_FILENAME)
gegg_file = open(GOOD_EGG_FILENAME, "rb") gegg_sprite = displayio.TileGrid(gegg_bmp, pixel_shader=gegg_bmp.pixel_shader)
gegg_bmp = displayio.OnDiskBitmap(gegg_file)
gegg_sprite = displayio.TileGrid(
gegg_bmp,
pixel_shader=getattr(gegg_bmp, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# gegg_bmp = displayio.OnDiskBitmap(GOOD_EGG_FILENAME)
# gegg_sprite = displayio.TileGrid(gegg_bmp, pixel_shader=gegg_bmp.pixel_shader)
# draw the bad egg! # draw the bad egg!
splash.append(begg_sprite) splash.append(begg_sprite)

View file

@ -21,39 +21,19 @@ clue_display = displayio.Group()
# draw the background image # draw the background image
WASH_ON_FILENAME = "wash_on.bmp" WASH_ON_FILENAME = "wash_on.bmp"
wash_on_bmp = displayio.OnDiskBitmap(WASH_ON_FILENAME)
# CircuitPython 6 & 7 compatible wash_on_sprite = displayio.TileGrid(wash_on_bmp, pixel_shader=wash_on_bmp.pixel_shader)
wash_on_file = open(WASH_ON_FILENAME, "rb")
wash_on_bmp = displayio.OnDiskBitmap(wash_on_file)
wash_on_sprite = displayio.TileGrid(
wash_on_bmp,
pixel_shader=getattr(wash_on_bmp, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# wash_on_bmp = displayio.OnDiskBitmap(WASH_ON_FILENAME)
# wash_on_sprite = displayio.TileGrid(wash_on_bmp, pixel_shader=wash_on_bmp.pixel_shader)
clue_display.append(wash_on_sprite) clue_display.append(wash_on_sprite)
# draw the foreground image # draw the foreground image
WASH_OFF_FILENAME = "wash_off.bmp" WASH_OFF_FILENAME = "wash_off.bmp"
# CircuitPython 6 & 7 compatible wash_off_bmp = displayio.OnDiskBitmap(WASH_OFF_FILENAME)
wash_off_file = open(WASH_OFF_FILENAME, "rb") wash_off_sprite = displayio.TileGrid(wash_off_bmp, pixel_shader=wash_off_bmp.pixel_shader)
wash_off_bmp = displayio.OnDiskBitmap(wash_off_file)
wash_off_sprite = displayio.TileGrid(
wash_off_bmp,
pixel_shader=getattr(wash_off_bmp, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# wash_off_bmp = displayio.OnDiskBitmap(WASH_OFF_FILENAME)
# wash_off_sprite = displayio.TileGrid(wash_off_bmp, pixel_shader=wash_off_bmp.pixel_shader)
clue_display.append(wash_off_sprite) clue_display.append(wash_off_sprite)
# Create text # Create text
# first create the group # first create the group
text_group = displayio.Group() text_group = displayio.Group()

View file

@ -65,18 +65,10 @@ clue_display.brightness = 0.5
clueGroup = displayio.Group() clueGroup = displayio.Group()
# loading bitmap background # loading bitmap background
# CircuitPython 6 & 7 compatible clue_bg = displayio.OnDiskBitmap(clue_bgBMP)
clue_bg = displayio.OnDiskBitmap(open(clue_bgBMP, "rb")) clue_tilegrid = displayio.TileGrid(clue_bg, pixel_shader=clue_bg.pixel_shader)
clue_tilegrid = displayio.TileGrid(
clue_bg, pixel_shader=getattr(clue_bg, 'pixel_shader', displayio.ColorConverter())
)
clueGroup.append(clue_tilegrid) clueGroup.append(clue_tilegrid)
# # CircuitPython 7+ compatible
# clue_bg = displayio.OnDiskBitmap(clue_bgBMP)
# clue_tilegrid = displayio.TileGrid(clue_bg, pixel_shader=clue_bg.pixel_shader)
# clueGroup.append(clue_tilegrid)
# creating the ProgressBar object # creating the ProgressBar object
bar_group = displayio.Group() bar_group = displayio.Group()
prog_bar = ProgressBar(1, 1, 239, 25, bar_color=0x652f8f) prog_bar = ProgressBar(1, 1, 239, 25, bar_color=0x652f8f)

View file

@ -33,15 +33,8 @@ a.solicited_services.append(AppleMediaService)
radio.start_advertising(a) radio.start_advertising(a)
def wrap_in_tilegrid(filename:str): def wrap_in_tilegrid(filename:str):
# CircuitPython 6 & 7 compatible odb = displayio.OnDiskBitmap(filename)
odb = displayio.OnDiskBitmap(open(filename, "rb")) return displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
return displayio.TileGrid(
odb, pixel_shader=getattr(odb, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# odb = displayio.OnDiskBitmap(filename)
# return displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
def make_background(width, height, color): def make_background(width, height, color):
color_bitmap = displayio.Bitmap(width, height, 1) color_bitmap = displayio.Bitmap(width, height, 1)

View file

@ -93,15 +93,8 @@ advertisement.complete_name = "CIRCUITPY"
advertisement.solicited_services.append(AppleNotificationCenterService) advertisement.solicited_services.append(AppleNotificationCenterService)
def wrap_in_tilegrid(filename:str): def wrap_in_tilegrid(filename:str):
# CircuitPython 6 & 7 compatible odb = displayio.OnDiskBitmap(filename)
odb = displayio.OnDiskBitmap(open(filename, "rb")) return displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
return displayio.TileGrid(
odb, pixel_shader=getattr(odb, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# odb = displayio.OnDiskBitmap(filename)
# return displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
display = tft_gizmo.TFT_Gizmo() display = tft_gizmo.TFT_Gizmo()
group = displayio.Group() group = displayio.Group()

View file

@ -127,32 +127,16 @@ class PlaybackDisplay:
if i == self._bitmap_filename: if i == self._bitmap_filename:
return # Already loaded return # Already loaded
# CircuitPython 6 & 7 compatible
try: try:
bitmap_file = open(i, 'rb') bitmap = displayio.OnDiskBitmap(i)
except OSError: except OSError:
continue continue
bitmap = displayio.OnDiskBitmap(bitmap_file)
self._bitmap_filename = i self._bitmap_filename = i
# Create a TileGrid to hold the bitmap # Create a TileGrid to hold the bitmap
self.tile_grid = displayio.TileGrid( self.tile_grid = displayio.TileGrid(
bitmap, bitmap, pixel_shader=bitmap.pixel_shader
pixel_shader=getattr(
bitmap, "pixel_shader", displayio.ColorConverter()
),
) )
# # CircuitPython 7+ compatible
# try:
# bitmap = displayio.OnDiskBitmap(i)
# except OSError:
# continue
# self._bitmap_filename = i
# # Create a TileGrid to hold the bitmap
# self.tile_grid = displayio.TileGrid(
# bitmap, pixel_shader=bitmap.pixel_shader
# )
# Add the TileGrid to the Group # Add the TileGrid to the Group
if len(self.group) == 0: if len(self.group) == 0:
self.group.append(self.tile_grid) self.group.append(self.tile_grid)

View file

@ -25,14 +25,8 @@ display = framebufferio.FramebufferDisplay(matrix, auto_refresh=False)
filename = "emoji.bmp" filename = "emoji.bmp"
# CircuitPython 6 & 7 compatible bitmap = displayio.OnDiskBitmap(filename)
bitmap_file = open(filename, 'rb') pixel_shader = bitmap.pixel_shader
bitmap = displayio.OnDiskBitmap(bitmap_file)
pixel_shader = getattr(bitmap, 'pixel_shader', displayio.ColorConverter())
# # CircuitPython 7+ compatible
# bitmap = displayio.OnDiskBitmap(filename)
# pixel_shader = bitmap.pixel_shader
# Each wheel can be in one of three states: # Each wheel can be in one of three states:
STOPPED, RUNNING, BRAKING = range(3) STOPPED, RUNNING, BRAKING = range(3)

View file

@ -46,24 +46,14 @@ DISPLAY = framebufferio.FramebufferDisplay(MATRIX, auto_refresh=False,
# Load BMP image, create Group and TileGrid to hold it # Load BMP image, create Group and TileGrid to hold it
FILENAME = "wales.bmp" FILENAME = "wales.bmp"
# CircuitPython 6 & 7 compatible BITMAP = displayio.OnDiskBitmap(FILENAME)
BITMAP = displayio.OnDiskBitmap(open(FILENAME, "rb"))
TILEGRID = displayio.TileGrid( TILEGRID = displayio.TileGrid(
BITMAP, BITMAP,
pixel_shader=getattr(BITMAP, 'pixel_shader', displayio.ColorConverter()), pixel_shader=BITMAP.pixel_shader,
tile_width=BITMAP.width, tile_width=BITMAP.width,
tile_height=BITMAP.height tile_height=BITMAP.height
) )
# # CircuitPython 7+ compatible
# BITMAP = displayio.OnDiskBitmap(FILENAME)
# TILEGRID = displayio.TileGrid(
# BITMAP,
# pixel_shader=BITMAP.pixel_shader,
# tile_width=BITMAP.width,
# tile_height=BITMAP.height
# )
GROUP = displayio.Group() GROUP = displayio.Group()
GROUP.append(TILEGRID) GROUP.append(TILEGRID)
DISPLAY.root_group = GROUP DISPLAY.root_group = GROUP

View file

@ -21,17 +21,8 @@ while True:
for filename in bmpfiles: for filename in bmpfiles:
print("showing", filename) print("showing", filename)
# CircuitPython 6 & 7 compatible bitmap = displayio.OnDiskBitmap(filename)
bitmap_file = open(filename, "rb") tile_grid = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader)
bitmap = displayio.OnDiskBitmap(bitmap_file)
tile_grid = displayio.TileGrid(
bitmap,
pixel_shader=getattr(bitmap, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# bitmap = displayio.OnDiskBitmap(filename)
# tile_grid = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader)
group = displayio.Group() group = displayio.Group()
group.append(tile_grid) group.append(tile_grid)

View file

@ -77,19 +77,10 @@ g.append(bg_sprite)
filename = "/picture.bmp" filename = "/picture.bmp"
# Create a Tilegrid with the bitmap and put in the displayio group # Create a Tilegrid with the bitmap and put in the displayio group
pic = displayio.OnDiskBitmap(filename)
# CircuitPython 6 & 7 compatible t = displayio.TileGrid(pic, pixel_shader=pic.pixel_shader)
pic = displayio.OnDiskBitmap(open(filename, "rb"))
t = displayio.TileGrid(
pic, pixel_shader=getattr(pic, 'pixel_shader', displayio.ColorConverter())
)
g.append(t) g.append(t)
# # CircuitPython 7+ compatible
# pic = displayio.OnDiskBitmap(filename)
# t = displayio.TileGrid(pic, pixel_shader=pic.pixel_shader)
# g.append(t)
# Draw simple text using the built-in font into a displayio group # Draw simple text using the built-in font into a displayio group
# For smaller text, change scale=2 to scale=1 # For smaller text, change scale=2 to scale=1
text_group = displayio.Group(scale=2, text_group = displayio.Group(scale=2,

View file

@ -73,19 +73,10 @@ g.append(bg_sprite)
filename = "/picture.bmp" filename = "/picture.bmp"
# Create a Tilegrid with the bitmap and put in the displayio group # Create a Tilegrid with the bitmap and put in the displayio group
pic = displayio.OnDiskBitmap(filename)
# CircuitPython 6 & 7 compatible t = displayio.TileGrid(pic, pixel_shader=pic.pixel_shader)
pic = displayio.OnDiskBitmap(open(filename, "rb"))
t = displayio.TileGrid(
pic, pixel_shader=getattr(pic, 'pixel_shader', displayio.ColorConverter())
)
g.append(t) g.append(t)
# # CircuitPython 7+ compatible
# pic = displayio.OnDiskBitmap(filename)
# t = displayio.TileGrid(pic, pixel_shader=pic.pixel_shader)
# g.append(t)
# Draw simple text using the built-in font into a displayio group # Draw simple text using the built-in font into a displayio group
# For smaller text, change scale=2 to scale=1 as scale 2 doesn't # For smaller text, change scale=2 to scale=1 as scale 2 doesn't
# allow for much text but the text is bigger. # allow for much text but the text is bigger.

View file

@ -30,16 +30,13 @@ display = adafruit_spd1656.SPD1656(
g = displayio.Group() g = displayio.Group()
fn = "/display-ruler-720p.bmp" pic = displayio.OnDiskBitmap("/display-ruler-720p.bmp")
t = displayio.TileGrid(pic, pixel_shader=pic.pixel_shader)
g.append(t)
with open(fn, "rb") as f: display.root_group = g
pic = displayio.OnDiskBitmap(f)
t = displayio.TileGrid(pic, pixel_shader=pic.pixel_shader)
g.append(t)
display.root_group = g display.refresh()
display.refresh()
while True: while True:
pass pass

View file

@ -37,20 +37,17 @@ display = adafruit_ssd1680.SSD1680(
g = displayio.Group() g = displayio.Group()
with open("/display-ruler.bmp", "rb") as f:
pic = displayio.OnDiskBitmap(f)
t = displayio.TileGrid( pic = displayio.OnDiskBitmap("/display-ruler.bmp")
pic, pixel_shader=getattr(pic, "pixel_shader", displayio.ColorConverter()) t = displayio.TileGrid(pic, pixel_shader=pic.pixel_shader)
)
g.append(t) g.append(t)
display.root_group = g display.root_group = g
display.refresh() display.refresh()
print("refreshed") print("refreshed")
while True: while True:
pass pass

View file

@ -75,17 +75,8 @@ def play_wave(filename):
# Display an image on the HalloWing TFT screen # Display an image on the HalloWing TFT screen
def show_image(filename): def show_image(filename):
# CircuitPython 6 & 7 compatible odb = displayio.OnDiskBitmap(filename)
image_file = open(filename, "rb") face = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
odb = displayio.OnDiskBitmap(image_file)
face = displayio.TileGrid(
odb,
pixel_shader=getattr(odb, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# odb = displayio.OnDiskBitmap(filename)
# face = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
backlight.value = False backlight.value = False
splash.append(face) splash.append(face)

View file

@ -98,17 +98,9 @@ images = ["trap_sprung.bmp", "reset_trap.bmp", "please_standby.bmp",
"trap_set.bmp"] "trap_set.bmp"]
# Function for displaying images on HalloWing TFT screen # Function for displaying images on HalloWing TFT screen
def show_image(filename): def show_image(filename):
# CircuitPython 6 & 7 compatible
image_file = open(filename, "rb")
odb = displayio.OnDiskBitmap(image_file)
face = displayio.TileGrid(
odb,
pixel_shader=getattr(odb, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible odb = displayio.OnDiskBitmap(filename)
# odb = displayio.OnDiskBitmap(filename) face = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
# face = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
backlight.duty_cycle = 0 backlight.duty_cycle = 0
splash.append(face) splash.append(face)

View file

@ -64,23 +64,12 @@ def play_wave(filename):
pass pass
def show_image(filename): def show_image(filename):
# CircuitPython 6 & 7 compatible
try:
image_file = open(filename, "rb")
except OSError:
image_file = open("missing.bmp", "rb")
odb = displayio.OnDiskBitmap(image_file)
face = displayio.TileGrid(
odb,
pixel_shader=getattr(odb, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible try:
# try: odb = displayio.OnDiskBitmap(filename)
# odb = displayio.OnDiskBitmap(filename) except (OSError, ValueError):
# except (OSError, ValueError): odb = displayio.OnDiskBitmap("missing.bmp")
# odb = displayio.OnDiskBitmap("missing.bmp") face = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
# face = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
backlight.value = False backlight.value = False
splash.append(face) splash.append(face)

View file

@ -102,7 +102,6 @@ try:
SCREEN = displayio.Group() SCREEN = displayio.Group()
board.DISPLAY.root_group = SCREEN board.DISPLAY.root_group = SCREEN
# CircuitPython 7+ compatible
BITMAP = displayio.OnDiskBitmap(IMAGEFILE) BITMAP = displayio.OnDiskBitmap(IMAGEFILE)
TILEGRID = displayio.TileGrid(BITMAP, pixel_shader=BITMAP.pixel_shader) TILEGRID = displayio.TileGrid(BITMAP, pixel_shader=BITMAP.pixel_shader)

View file

@ -98,7 +98,6 @@ try:
SCREEN = displayio.Group() SCREEN = displayio.Group()
board.DISPLAY.root_group = SCREEN board.DISPLAY.root_group = SCREEN
# CircuitPython 7+ compatible
BITMAP = displayio.OnDiskBitmap(IMAGEFILE) BITMAP = displayio.OnDiskBitmap(IMAGEFILE)
TILEGRID = displayio.TileGrid(BITMAP, pixel_shader=BITMAP.pixel_shader) TILEGRID = displayio.TileGrid(BITMAP, pixel_shader=BITMAP.pixel_shader)

View file

@ -25,16 +25,8 @@ circle_group = displayio.Group()
# import tree bitmap # import tree bitmap
filename = "/atree.bmp" filename = "/atree.bmp"
tree = displayio.OnDiskBitmap(filename)
# CircuitPython 6 & 7 compatible tree_grid = displayio.TileGrid(tree, pixel_shader=tree.pixel_shader)
tree = displayio.OnDiskBitmap(open(filename, "rb"))
tree_grid = displayio.TileGrid(
tree, pixel_shader=getattr(tree, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# tree = displayio.OnDiskBitmap(filename)
# tree_grid = displayio.TileGrid(tree, pixel_shader=tree.pixel_shader)
# add bitmap to its group # add bitmap to its group
tree_group.append(tree_grid) tree_group.append(tree_grid)

View file

@ -22,31 +22,15 @@ alarm.sleep_memory[0] = not alarm.sleep_memory[0]
bmp_file = "/images/clean.bmp" if alarm.sleep_memory[0] else "/images/dirty.bmp" bmp_file = "/images/clean.bmp" if alarm.sleep_memory[0] else "/images/dirty.bmp"
# show bitmap # show bitmap
bitmap = displayio.OnDiskBitmap(bmp_file)
# CircuitPython 6 & 7 compatible tile_grid = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader)
with open(bmp_file, "rb") as fp: group = displayio.Group()
bitmap = displayio.OnDiskBitmap(fp) group.append(tile_grid)
tile_grid = displayio.TileGrid( epd.root_group = group
bitmap, pixel_shader=getattr(bitmap, 'pixel_shader', displayio.ColorConverter()) time.sleep(epd.time_to_refresh + 0.01)
) epd.refresh()
group = displayio.Group() while epd.busy:
group.append(tile_grid) pass
epd.root_group = group
time.sleep(epd.time_to_refresh + 0.01)
epd.refresh()
while epd.busy:
pass
# # CircuitPython 7+ compatible
# bitmap = displayio.OnDiskBitmap(bmp_file)
# tile_grid = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader)
# group = displayio.Group()
# group.append(tile_grid)
# epd.root_group = group
# time.sleep(epd.time_to_refresh + 0.01)
# epd.refresh()
# while epd.busy:
# pass
# go to sleep # go to sleep
alarm.exit_and_deep_sleep_until_alarms(*pin_alarms) alarm.exit_and_deep_sleep_until_alarms(*pin_alarms)

View file

@ -51,31 +51,15 @@ else:
epd.rotation = rotation epd.rotation = rotation
# show bitmap # show bitmap
bitmap = displayio.OnDiskBitmap(bmp_file)
# CircuitPython 6 & 7 compatible tile_grid = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader)
with open(bmp_file, "rb") as fp: group = displayio.Group()
bitmap = displayio.OnDiskBitmap(fp) group.append(tile_grid)
tile_grid = displayio.TileGrid( epd.root_group = group
bitmap, pixel_shader=getattr(bitmap, 'pixel_shader', displayio.ColorConverter()) time.sleep(epd.time_to_refresh + 0.01)
) epd.refresh()
group = displayio.Group() while epd.busy:
group.append(tile_grid) pass
epd.root_group = group
time.sleep(epd.time_to_refresh + 0.01)
epd.refresh()
while epd.busy:
pass
# # CircuitPython 7+ compatible
# bitmap = displayio.OnDiskBitmap(bmp_file)
# tile_grid = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader)
# group = displayio.Group()
# group.append(tile_grid)
# epd.root_group = group
# time.sleep(epd.time_to_refresh + 0.01)
# epd.refresh()
# while epd.busy:
# pass
# config accelo irq # config accelo irq

View file

@ -33,24 +33,13 @@ while True:
shaken = False shaken = False
print("Image load {}".format(images[i])) print("Image load {}".format(images[i]))
# CircuitPython 6 & 7 compatible
try: try:
f = open(images[i], "rb") odb = displayio.OnDiskBitmap(images[i])
odb = displayio.OnDiskBitmap(f)
except ValueError: except ValueError:
print("Image unsupported {}".format(images[i])) print("Image unsupported {}".format(images[i]))
del images[i] del images[i]
continue continue
face = displayio.TileGrid(odb, pixel_shader=getattr(odb, 'pixel_shader', displayio.ColorConverter())) face = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
# # CircuitPython 7+ compatible
# try:
# odb = displayio.OnDiskBitmap(images[i])
# except ValueError:
# print("Image unsupported {}".format(images[i]))
# del images[i]
# continue
# face = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
splash.append(face) splash.append(face)
# Wait for the image to load. # Wait for the image to load.

View file

@ -218,12 +218,10 @@ def create_icon_tilegrid(ident):
icon_path = f"/airline_logos/{airline_code}.bmp" icon_path = f"/airline_logos/{airline_code}.bmp"
try: try:
file = open(icon_path, "rb") icon_bitmap = OnDiskBitmap(icon_path)
icon_bitmap = OnDiskBitmap(file)
except OSError: except OSError:
print(f"Icon for {airline_code} not found. Using placeholder.") print(f"Icon for {airline_code} not found. Using placeholder.")
file = open(PLACEHOLDER_ICON_PATH, "rb") icon_bitmap = OnDiskBitmap(PLACEHOLDER_ICON_PATH)
icon_bitmap = OnDiskBitmap(file)
icon_tilegrid = TileGrid(icon_bitmap, pixel_shader=icon_bitmap.pixel_shader, x=0, y=0) icon_tilegrid = TileGrid(icon_bitmap, pixel_shader=icon_bitmap.pixel_shader, x=0, y=0)
return icon_tilegrid return icon_tilegrid

View file

@ -232,16 +232,8 @@ GROUP = displayio.Group()
try: try:
FILENAME = 'moon/splash-' + str(DISPLAY.rotation) + '.bmp' FILENAME = 'moon/splash-' + str(DISPLAY.rotation) + '.bmp'
# CircuitPython 6 & 7 compatible BITMAP = displayio.OnDiskBitmap(FILENAME)
BITMAP = displayio.OnDiskBitmap(open(FILENAME, 'rb')) TILE_GRID = displayio.TileGrid(BITMAP, pixel_shader=BITMAP.pixel_shader)
TILE_GRID = displayio.TileGrid(
BITMAP,
pixel_shader=getattr(BITMAP, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# BITMAP = displayio.OnDiskBitmap(FILENAME)
# TILE_GRID = displayio.TileGrid(BITMAP, pixel_shader=BITMAP.pixel_shader)
GROUP.append(TILE_GRID) GROUP.append(TILE_GRID)
except: except:
@ -413,15 +405,6 @@ while True:
# Update moon image (GROUP[0]) # Update moon image (GROUP[0])
FILENAME = 'moon/moon' + '{0:0>2}'.format(FRAME) + '.bmp' FILENAME = 'moon/moon' + '{0:0>2}'.format(FRAME) + '.bmp'
# CircuitPython 6 & 7 compatible
# BITMAP = displayio.OnDiskBitmap(open(FILENAME, 'rb'))
# TILE_GRID = displayio.TileGrid(
# BITMAP,
# pixel_shader=getattr(BITMAP, 'pixel_shader',
# displayio.ColorConverter())
# )
# CircuitPython 7+ compatible
BITMAP = displayio.OnDiskBitmap(FILENAME) BITMAP = displayio.OnDiskBitmap(FILENAME)
TILE_GRID = displayio.TileGrid(BITMAP, pixel_shader=BITMAP.pixel_shader) TILE_GRID = displayio.TileGrid(BITMAP, pixel_shader=BITMAP.pixel_shader)

View file

@ -75,24 +75,14 @@ def load_image():
filename = SPRITESHEET_FOLDER + "/" + file_list[CURRENT_IMAGE] filename = SPRITESHEET_FOLDER + "/" + file_list[CURRENT_IMAGE]
# CircuitPython 6 & 7 compatible bitmap = displayio.OnDiskBitmap(filename)
bitmap = displayio.OnDiskBitmap(open(filename, "rb"))
sprite = displayio.TileGrid( sprite = displayio.TileGrid(
bitmap, bitmap,
pixel_shader=getattr(bitmap, 'pixel_shader', displayio.ColorConverter()), pixel_shader=bitmap.pixel_shader,
tile_width=bitmap.width, tile_width=bitmap.width,
tile_height=matrix.display.height, tile_height=matrix.display.height,
) )
# # CircuitPython 7+ compatible
# bitmap = displayio.OnDiskBitmap(filename)
# sprite = displayio.TileGrid(
# bitmap,
# pixel_shader=bitmap.pixel_shader,
# tile_width=bitmap.width,
# tile_height=matrix.display.height,
# )
sprite_group.append(sprite) sprite_group.append(sprite)
FRAME_COUNT = int(bitmap.height / matrix.display.height) FRAME_COUNT = int(bitmap.height / matrix.display.height)

View file

@ -62,25 +62,14 @@ def load_image():
sprite_group.pop() sprite_group.pop()
filename = SPRITESHEET_FOLDER + "/" + file_list[current_image] filename = SPRITESHEET_FOLDER + "/" + file_list[current_image]
bitmap = displayio.OnDiskBitmap(filename)
# CircuitPython 6 & 7 compatible
bitmap = displayio.OnDiskBitmap(open(filename, "rb"))
sprite = displayio.TileGrid( sprite = displayio.TileGrid(
bitmap, bitmap,
pixel_shader=getattr(bitmap, 'pixel_shader', displayio.ColorConverter()), pixel_shader=bitmap.pixel_shader,
tile_width=bitmap.width, tile_width=bitmap.width,
tile_height=matrix.display.height, tile_height=matrix.display.height,
) )
# # CircuitPython 7+ compatible
# bitmap = displayio.OnDiskBitmap(filename)
# sprite = displayio.TileGrid(
# bitmap,
# pixel_shader=bitmap.pixel_shader,
# tile_width=bitmap.width,
# tile_height=matrix.display.height,
# )
sprite_group.append(sprite) sprite_group.append(sprite)
current_frame = 0 current_frame = 0

View file

@ -106,10 +106,10 @@ arial12.load_glyphs(
display = board.DISPLAY display = board.DISPLAY
clue_group = displayio.Group() clue_group = displayio.Group()
bitmap_file = open("bmps/background.bmp", "rb")
bitmap1 = displayio.OnDiskBitmap(bitmap_file) bitmap1 = displayio.OnDiskBitmap("bmps/background.bmp")
tile_grid = displayio.TileGrid( tile_grid = displayio.TileGrid(
bitmap1, pixel_shader=getattr(bitmap1, "pixel_shader", displayio.ColorConverter()) bitmap1, pixel_shader=bitmap1.pixel_shader
) )
clue_group.append(tile_grid) clue_group.append(tile_grid)

View file

@ -73,25 +73,21 @@ vo_sound = [
pyportal = PyPortal(status_neopixel=board.NEOPIXEL) pyportal = PyPortal(status_neopixel=board.NEOPIXEL)
# Open the file # Setup the file as the bitmap data source
with open(emote_img[0], "rb") as bitmap_file: bitmap = displayio.OnDiskBitmap(emote_img[0])
# Setup the file as the bitmap data source # Create a TileGrid to hold the bitmap
bitmap = displayio.OnDiskBitmap(bitmap_file) tile_grid = displayio.TileGrid(bitmap, pixel_shader=getattr(bitmap.pixel_shader))
# Create a TileGrid to hold the bitmap # Create a Group to hold the TileGrid
tile_grid = displayio.TileGrid(bitmap, pixel_shader=getattr(bitmap, group = displayio.Group()
'pixel_shader', # Add the TileGrid to the Group
displayio.ColorConverter())) group.append(tile_grid)
# Create a Group to hold the TileGrid # Add the Group to the Display
group = displayio.Group() display.root_group = group
# Add the TileGrid to the Group if sound_mode != 0:
group.append(tile_grid) # play a sound file
# Add the Group to the Display pyportal.play_file(vo_sound[10])
display.root_group = group else:
if sound_mode != 0: pyportal.play_file("/vo/pathfnd_silent.wav") # hack to deal w no mute method
# play a sound file
pyportal.play_file(vo_sound[10])
else:
pyportal.play_file("/vo/pathfnd_silent.wav") # hack to deal w no mute method
# Loop forever so you can enjoy your image # Loop forever so you can enjoy your image
@ -107,7 +103,6 @@ while True:
pixel.show() pixel.show()
time.sleep(1) time.sleep(1)
# CircuitPython 7+ compatible
bitmap = displayio.OnDiskBitmap(emote_img[i]) bitmap = displayio.OnDiskBitmap(emote_img[i])
tile_grid = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader) tile_grid = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader)
group = displayio.Group() group = displayio.Group()

View file

@ -71,25 +71,21 @@ vo_sound = [
pyportal = PyPortal(status_neopixel=board.NEOPIXEL) pyportal = PyPortal(status_neopixel=board.NEOPIXEL)
# Open the file # Setup the file as the bitmap data source
with open(emote_img[0], "rb") as bitmap_file: bitmap = displayio.OnDiskBitmap(emote_img[0])
# Setup the file as the bitmap data source # Create a TileGrid to hold the bitmap
bitmap = displayio.OnDiskBitmap(bitmap_file) tile_grid = displayio.TileGrid(bitmap, pixel_shader=getattr(bitmap.pixel_shader))
# Create a TileGrid to hold the bitmap # Create a Group to hold the TileGrid
tile_grid = displayio.TileGrid(bitmap, pixel_shader=getattr(bitmap, group = displayio.Group()
'pixel_shader', # Add the TileGrid to the Group
displayio.ColorConverter())) group.append(tile_grid)
# Create a Group to hold the TileGrid # Add the Group to the Display
group = displayio.Group() display.root_group = group
# Add the TileGrid to the Group if sound_mode != 0:
group.append(tile_grid) # play a sound file
# Add the Group to the Display pyportal.play_file(vo_sound[10])
display.root_group = group else:
if sound_mode != 0: pyportal.play_file("/vo/pathfnd_silent.wav") # hack to deal w no mute method
# play a sound file
pyportal.play_file(vo_sound[10])
else:
pyportal.play_file("/vo/pathfnd_silent.wav") # hack to deal w no mute method
while True: while True:
if not pyportal.touchscreen.touch_point: if not pyportal.touchscreen.touch_point:
@ -101,7 +97,6 @@ while True:
pixel.show() pixel.show()
time.sleep(1) time.sleep(1)
# CircuitPython 7+ compatible
bitmap = displayio.OnDiskBitmap(emote_img[i]) bitmap = displayio.OnDiskBitmap(emote_img[i])
tile_grid = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader) tile_grid = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader)
group = displayio.Group() group = displayio.Group()

View file

@ -135,16 +135,7 @@ class AWS_GFX(displayio.Group):
if not filename: if not filename:
return # we're done, no icon desired return # we're done, no icon desired
# CircuitPython 6 & 7 compatible icon = displayio.OnDiskBitmap(filename)
if self._icon_file: self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_file.close()
self._icon_file = open(filename, "rb")
icon = displayio.OnDiskBitmap(self._icon_file)
self._icon_sprite = displayio.TileGrid(icon,
pixel_shader=getattr(icon, 'pixel_shader', displayio.ColorConverter()))
# # CircuitPython 7+ compatible
# icon = displayio.OnDiskBitmap(filename)
# self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_group.append(self._icon_sprite) self._icon_group.append(self._icon_sprite)

View file

@ -277,19 +277,8 @@ class Time_State(State):
filename = "/icons/"+weather_icon_name+".bmp" filename = "/icons/"+weather_icon_name+".bmp"
if filename: if filename:
# CircuitPython 6 & 7 compatible icon = displayio.OnDiskBitmap(filename)
if self.icon_file: icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self.icon_file.close()
self.icon_file = open(filename, "rb")
icon = displayio.OnDiskBitmap(self.icon_file)
icon_sprite = displayio.TileGrid(icon,
pixel_shader=getattr(icon, 'pixel_shader', displayio.ColorConverter()),
x=0, y=0)
# # CircuitPython 7+ compatible
# icon = displayio.OnDiskBitmap(filename)
# icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self.weather_icon.append(icon_sprite) self.weather_icon.append(icon_sprite)
@ -354,14 +343,9 @@ class Time_State(State):
# CircuitPython 6 & 7 compatible # CircuitPython 6 & 7 compatible
if self.snooze_file: if self.snooze_file:
self.snooze_file.close() self.snooze_file.close()
self.snooze_file = open('/icons/zzz.bmp', "rb")
icon = displayio.OnDiskBitmap(self.snooze_file)
icon_sprite = displayio.TileGrid(icon,
pixel_shader=getattr(icon, 'pixel_shader', displayio.ColorConverter()))
# # CircuitPython 7+ compatible icon = displayio.OnDiskBitmap("/icons/zzz.bmp")
# icon = displayio.OnDiskBitmap("/icons/zzz.bmp") icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
# icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self.snooze_icon.append(icon_sprite) self.snooze_icon.append(icon_sprite)
pyportal.splash.append(self.snooze_icon) pyportal.splash.append(self.snooze_icon)

View file

@ -134,18 +134,7 @@ class Azure_GFX(displayio.Group):
if not filename: if not filename:
return # we're done, no icon desired return # we're done, no icon desired
# CircuitPython 6 & 7 compatible icon = displayio.OnDiskBitmap(filename)
if self._icon_file: self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_file.close()
self._icon_file = open(filename, "rb")
icon = displayio.OnDiskBitmap(self._icon_file)
self._icon_sprite = displayio.TileGrid(
icon, pixel_shader=getattr(icon, "pixel_shader", displayio.ColorConverter())
)
# CircuitPython 7 compatible
# # Remove self._icon_file - it is no longer used
# icon = displayio.OnDiskBitmap(filename)
# self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_group.append(self._icon_sprite) self._icon_group.append(self._icon_sprite)

View file

@ -143,18 +143,7 @@ class Electioncal_Graphics(displayio.Group):
if not filename: if not filename:
return # we're done, no icon desired return # we're done, no icon desired
# CircuitPython 6 & 7 compatible icon = displayio.OnDiskBitmap(filename)
if self._icon_file: self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_file.close()
self._icon_file = open(filename, "rb")
icon = displayio.OnDiskBitmap(self._icon_file)
self._icon_sprite = displayio.TileGrid(
icon,
pixel_shader=getattr(icon, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# icon = displayio.OnDiskBitmap(filename)
# self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_group.append(self._icon_sprite) self._icon_group.append(self._icon_sprite)

View file

@ -136,18 +136,7 @@ class Google_GFX(displayio.Group):
if not filename: if not filename:
return # we're done, no icon desired return # we're done, no icon desired
# CircuitPython 6 & 7 compatible icon = displayio.OnDiskBitmap(filename)
if self._icon_file: self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_file.close()
self._icon_file = open(filename, "rb")
icon = displayio.OnDiskBitmap(self._icon_file)
self._icon_sprite = displayio.TileGrid(
icon,
pixel_shader=getattr(icon, 'pixel_shader', displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# icon = displayio.OnDiskBitmap(filename)
# self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_group.append(self._icon_sprite) self._icon_group.append(self._icon_sprite)

View file

@ -129,11 +129,7 @@ class OpenWeather_Graphics(displayio.Group):
if not filename: if not filename:
return # we're done, no icon desired return # we're done, no icon desired
if self._icon_file: icon = displayio.OnDiskBitmap(filename)
self._icon_file.close()
self._icon_file = open(filename, "rb")
icon = displayio.OnDiskBitmap(self._icon_file)
self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader) self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_group.append(self._icon_sprite) self._icon_group.append(self._icon_sprite)

View file

@ -130,16 +130,7 @@ class OpenWeather_Graphics(displayio.Group):
if not filename: if not filename:
return # we're done, no icon desired return # we're done, no icon desired
# CircuitPython 6 & 7 compatible icon = displayio.OnDiskBitmap(filename)
if self._icon_file: self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_file.close()
self._icon_file = open(filename, "rb")
icon = displayio.OnDiskBitmap(self._icon_file)
self._icon_sprite = displayio.TileGrid(
icon, pixel_shader=getattr(icon, 'pixel_shader', displayio.ColorConverter()))
# # CircuitPython 7+ compatible
# icon = displayio.OnDiskBitmap(filename)
# self._icon_sprite = displayio.TileGrid(icon, pixel_shader=background.pixel_shader)
self._icon_group.append(self._icon_sprite) self._icon_group.append(self._icon_sprite)

View file

@ -135,13 +135,6 @@ class Thermometer_GFX(displayio.Group):
if self._icon_file: if self._icon_file:
self._icon_file.close() self._icon_file.close()
# CircuitPython 6 & 7 compatible
# self._icon_file = open(filename, "rb")
# icon = displayio.OnDiskBitmap(self._icon_file)
# self._icon_sprite = displayio.TileGrid(icon,
# pixel_shader=getattr(icon, 'pixel_shader', displayio.ColorConverter()))
# # CircuitPython 7+ compatible
icon = displayio.OnDiskBitmap(filename) icon = displayio.OnDiskBitmap(filename)
self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader) self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)

View file

@ -56,20 +56,20 @@ alarm_sounds = [alarm_sound_trash, alarm_sound_bed,
# setting up the bitmaps for the alarms # setting up the bitmaps for the alarms
# sleep alarm # sleep alarm
sleep_bitmap = displayio.OnDiskBitmap(open("/sleepBMP.bmp", "rb")) sleep_bitmap = displayio.OnDiskBitmap("/sleepBMP.bmp")
sleep_tilegrid = displayio.TileGrid(sleep_bitmap, pixel_shader=getattr(sleep_bitmap, 'pixel_shader', displayio.ColorConverter())) sleep_tilegrid = displayio.TileGrid(sleep_bitmap, pixel_shader=sleep_bitmap.pixel_shader)
group_bed = displayio.Group() group_bed = displayio.Group()
group_bed.append(sleep_tilegrid) group_bed.append(sleep_tilegrid)
# trash alarm # trash alarm
trash_bitmap = displayio.OnDiskBitmap(open("/trashBMP.bmp", "rb")) trash_bitmap = displayio.OnDiskBitmap("/trashBMP.bmp")
trash_tilegrid = displayio.TileGrid(trash_bitmap, pixel_shader=getattr(trash_bitmap, 'pixel_shader', displayio.ColorConverter())) trash_tilegrid = displayio.TileGrid(trash_bitmap, pixel_shader=trash_bitmap.pixel_shader)
group_trash = displayio.Group() group_trash = displayio.Group()
group_trash.append(trash_tilegrid) group_trash.append(trash_tilegrid)
# meal alarm # meal alarm
eat_bitmap = displayio.OnDiskBitmap(open("/eatBMP.bmp", "rb")) eat_bitmap = displayio.OnDiskBitmap("/eatBMP.bmp")
eat_tilegrid = displayio.TileGrid(eat_bitmap, pixel_shader=getattr(eat_bitmap, 'pixel_shader', displayio.ColorConverter())) eat_tilegrid = displayio.TileGrid(eat_bitmap, pixel_shader=eat_bitmap.pixel_shader)
group_eat = displayio.Group() group_eat = displayio.Group()
group_eat.append(eat_tilegrid) group_eat.append(eat_tilegrid)

View file

@ -178,14 +178,7 @@ class OpenWeather_Graphics(displayio.Group):
if self._icon_file: if self._icon_file:
self._icon_file.close() self._icon_file.close()
# CircuitPython 6 & 7 compatible icon = displayio.OnDiskBitmap(filename)
self._icon_file = open(filename, "rb") self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
icon = displayio.OnDiskBitmap(self._icon_file)
self._icon_sprite = displayio.TileGrid(icon,
pixel_shader=getattr(icon, 'pixel_shader', displayio.ColorConverter()))
# # CircuitPython 7+ compatible
# icon = displayio.OnDiskBitmap(filename)
# self._icon_sprite = displayio.TileGrid(icon, pixel_shader=icon.pixel_shader)
self._icon_group.append(self._icon_sprite) self._icon_group.append(self._icon_sprite)

View file

@ -93,16 +93,8 @@ def set_image(group, filename):
if not filename: if not filename:
return # we're done, no icon desired return # we're done, no icon desired
# CircuitPython 6 & 7 compatible image = displayio.OnDiskBitmap(filename)
image_file = open(filename, "rb") image_sprite = displayio.TileGrid(image, pixel_shader=image.pixel_shader)
image = displayio.OnDiskBitmap(image_file)
image_sprite = displayio.TileGrid(
image, pixel_shader=getattr(image, "pixel_shader", displayio.ColorConverter())
)
# # CircuitPython 7+ compatible
# image = displayio.OnDiskBitmap(filename)
# image_sprite = displayio.TileGrid(image, pixel_shader=image.pixel_shader)
group.append(image_sprite) group.append(image_sprite)

View file

@ -72,11 +72,10 @@ def set_image(image_group, filename):
if image_group: if image_group:
image_group.pop() image_group.pop()
image_file = open(filename, "rb")
image = displayio.OnDiskBitmap(image_file) image = displayio.OnDiskBitmap(filename)
image_sprite = displayio.TileGrid(image, image_sprite = displayio.TileGrid(image,
pixel_shader=getattr(image, 'pixel_shader', pixel_shader=image.pixel_shader)
displayio.ColorConverter()))
image_sprite.x = IMAGE_SPRITE_X image_sprite.x = IMAGE_SPRITE_X
image_sprite.y = IMAGE_SPRITE_Y image_sprite.y = IMAGE_SPRITE_Y
image_group.append(image_sprite) image_group.append(image_sprite)

View file

@ -132,18 +132,9 @@ class WeatherStation_GFX(displayio.Group):
if not filename: if not filename:
return # we're done, no icon desired return # we're done, no icon desired
if self._icon_file:
self._icon_file.close()
self._icon_file = open(filename, "rb")
icon = displayio.OnDiskBitmap(self._icon_file)
# CircuitPython 6 & 7 compatible icon = displayio.OnDiskBitmap(filename)
self._icon_sprite = displayio.TileGrid( self._icon_sprite = displayio.TileGrid(
icon, icon,
pixel_shader=getattr(icon, 'pixel_shader', displayio.ColorConverter())) pixel_shader=icon.pixel_shader)
# # CircuitPython 7+ compatible
# self._icon_sprite = displayio.TileGrid(
# icon,
# pixel_shader=icon.pixel_shader)
board.DISPLAY.refresh(target_frames_per_second=60) board.DISPLAY.refresh(target_frames_per_second=60)

View file

@ -43,7 +43,7 @@ display = ST7789(display_bus, width=240, height=240, rowstart=80, auto_refresh=F
splash = displayio.Group() splash = displayio.Group()
display.root_group = splash display.root_group = splash
bitmap = displayio.OnDiskBitmap(open("/icons.bmp", "rb")) bitmap = displayio.OnDiskBitmap("/icons.bmp")
grid_bg = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader, grid_bg = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader,
tile_height=100, tile_width=100, tile_height=100, tile_width=100,

View file

@ -443,17 +443,9 @@ def show_splash(new_text, color, vertical_offset=18):
# Make the splash context # Make the splash context
splash = displayio.Group() splash = displayio.Group()
# CircuitPython 6 & 7 compatible
# game message background bmp file # game message background bmp file
game_message_background = open("tilegame_assets/game_message_background.bmp", "rb") odb = displayio.OnDiskBitmap("tilegame_assets/game_message_background.bmp")
odb = displayio.OnDiskBitmap(game_message_background) bg_grid = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
bg_grid = displayio.TileGrid(odb, pixel_shader=getattr(odb, 'pixel_shader', displayio.ColorConverter()))
# # CircuitPython 7+ compatible
# game message background bmp file
# odb = displayio.OnDiskBitmap("tilegame_assets/game_message_background.bmp")
# bg_grid = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
splash.append(bg_grid) splash.append(bg_grid)

View file

@ -61,26 +61,14 @@ clue.display.brightness = 0.8
clue_display = displayio.Group() clue_display = displayio.Group()
# draw the rising image # draw the rising image
# CircuitPython 6 & 7 compatible rising_bmp = displayio.OnDiskBitmap("rising.bmp")
rising_file = open("rising.bmp", "rb") rising_sprite = displayio.TileGrid(rising_bmp, pixel_shader=rising_bmp.pixel_shader)
rising_bmp = displayio.OnDiskBitmap(rising_file)
rising_sprite = displayio.TileGrid(rising_bmp, pixel_shader=getattr(rising_bmp, 'pixel_shader', displayio.ColorConverter()))
# # CircuitPython 7+ compatible
# rising_bmp = displayio.OnDiskBitmap("rising.bmp")
# rising_sprite = displayio.TileGrid(rising_bmp, pixel_shader=rising_bmp.pixel_shader)
clue_display.append(rising_sprite) clue_display.append(rising_sprite)
# draw the sinking image # draw the sinking image
# CircuitPython 6 & 7 compatible sinking_bmp = displayio.OnDiskBitmap("sinking.bmp")
sinking_file = open("sinking.bmp", "rb") sinking_sprite = displayio.TileGrid(sinking_bmp, pixel_shader=sinking_bmp.pixel_shader)
sinking_bmp = displayio.OnDiskBitmap(sinking_file)
sinking_sprite = displayio.TileGrid(sinking_bmp, pixel_shader=getattr(sinking_bmp, 'pixel_shader', displayio.ColorConverter()))
# # CircuitPython 7+ compatible
# sinking_bmp = displayio.OnDiskBitmap("sinking.bmp")
# sinking_sprite = displayio.TileGrid(sinking_bmp, pixel_shader=sinking_bmp.pixel_shader)
clue_display.append(sinking_sprite) clue_display.append(sinking_sprite)

View file

@ -58,13 +58,9 @@ def load_image(path):
"Load an image from the path" "Load an image from the path"
if len(splash): if len(splash):
splash.pop() splash.pop()
# CircuitPython 6 & 7 compatible
bitmap = displayio.OnDiskBitmap(open(path, "rb"))
sprite = displayio.TileGrid(bitmap, pixel_shader=getattr(bitmap, 'pixel_shader', displayio.ColorConverter()))
# # CircuitPython 7+ compatible bitmap = displayio.OnDiskBitmap(path)
# bitmap = displayio.OnDiskBitmap(path) sprite = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader)
# sprite = displayio.TileGrid(bitmap, pixel_shader=bitmap.pixel_shader)
splash.append(sprite) splash.append(sprite)

View file

@ -102,7 +102,7 @@ main_display_group = displayio.Group() # everything goes in main group
display.root_group = main_display_group # show main group (clears screen, too) display.root_group = main_display_group # show main group (clears screen, too)
# background bitmap w OnDiskBitmap # background bitmap w OnDiskBitmap
tape_bitmap = displayio.OnDiskBitmap(open("mp3_tape.bmp", "rb")) tape_bitmap = displayio.OnDiskBitmap("mp3_tape.bmp")
tape_tilegrid = displayio.TileGrid(tape_bitmap, pixel_shader=tape_bitmap.pixel_shader) tape_tilegrid = displayio.TileGrid(tape_bitmap, pixel_shader=tape_bitmap.pixel_shader)
main_display_group.append(tape_tilegrid) main_display_group.append(tape_tilegrid)

View file

@ -47,15 +47,8 @@ class OpenWeather_Graphics(displayio.Group):
self.display = display self.display = display
splash = displayio.Group() splash = displayio.Group()
# CircuitPython 6 & 7 compatible background = displayio.OnDiskBitmap("loading.bmp")
background = displayio.OnDiskBitmap(open("loading.bmp", "rb")) bg_sprite = displayio.TileGrid(background, pixel_shader=background.pixel_shader)
bg_sprite = displayio.TileGrid(
background,
pixel_shader=getattr(background, 'pixel_shader', displayio.ColorConverter()),
)
# # CircuitPython 7+ compatible
# background = displayio.OnDiskBitmap("loading.bmp")
# bg_sprite = displayio.TileGrid(background, pixel_shader=background.pixel_shader)
splash.append(bg_sprite) splash.append(bg_sprite)
display.root_group = splash display.root_group = splash
@ -73,22 +66,13 @@ class OpenWeather_Graphics(displayio.Group):
self._current_label = None self._current_label = None
# Load the icon sprite sheet # Load the icon sprite sheet
# CircuitPython 6 & 7 compatible icons = displayio.OnDiskBitmap(icon_spritesheet)
icons = displayio.OnDiskBitmap(open(icon_spritesheet, "rb"))
self._icon_sprite = displayio.TileGrid( self._icon_sprite = displayio.TileGrid(
icons, icons,
pixel_shader=getattr(icons, 'pixel_shader', displayio.ColorConverter()), pixel_shader=icons.pixel_shader,
tile_width=icon_width, tile_width=icon_width,
tile_height=icon_height tile_height=icon_height
) )
# # CircuitPython 7+ compatible
# icons = displayio.OnDiskBitmap(icon_spritesheet)
# self._icon_sprite = displayio.TileGrid(
# icons,
# pixel_shader=icons.pixel_shader,
# tile_width=icon_width,
# tile_height=icon_height
# )
self.set_icon(None) self.set_icon(None)
self._scrolling_texts = [] self._scrolling_texts = []