use new OnDiskBitmap API

This commit is contained in:
foamyguy 2025-06-27 14:41:01 -05:00
parent 60d17f12c8
commit a254b46192
6 changed files with 33 additions and 84 deletions

View file

@ -30,16 +30,13 @@ display = adafruit_spd1656.SPD1656(
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:
pic = displayio.OnDiskBitmap(f)
t = displayio.TileGrid(pic, pixel_shader=pic.pixel_shader)
g.append(t)
display.root_group = g
display.root_group = g
display.refresh()
display.refresh()
while True:
pass

View file

@ -37,20 +37,17 @@ display = adafruit_ssd1680.SSD1680(
g = displayio.Group()
with open("/display-ruler.bmp", "rb") as f:
pic = displayio.OnDiskBitmap(f)
t = displayio.TileGrid(
pic, pixel_shader=getattr(pic, "pixel_shader", displayio.ColorConverter())
)
pic = displayio.OnDiskBitmap("/display-ruler.bmp")
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:
pass

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"
# show bitmap
# CircuitPython 6 & 7 compatible
with open(bmp_file, "rb") as fp:
bitmap = displayio.OnDiskBitmap(fp)
tile_grid = displayio.TileGrid(
bitmap, pixel_shader=getattr(bitmap, 'pixel_shader', displayio.ColorConverter())
)
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
# # 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
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
alarm.exit_and_deep_sleep_until_alarms(*pin_alarms)

View file

@ -51,31 +51,15 @@ else:
epd.rotation = rotation
# show bitmap
# CircuitPython 6 & 7 compatible
with open(bmp_file, "rb") as fp:
bitmap = displayio.OnDiskBitmap(fp)
tile_grid = displayio.TileGrid(
bitmap, pixel_shader=getattr(bitmap, 'pixel_shader', displayio.ColorConverter())
)
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
# # 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
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

View file

@ -33,24 +33,13 @@ while True:
shaken = False
print("Image load {}".format(images[i]))
# CircuitPython 6 & 7 compatible
try:
f = open(images[i], "rb")
odb = displayio.OnDiskBitmap(f)
odb = displayio.OnDiskBitmap(images[i])
except ValueError:
print("Image unsupported {}".format(images[i]))
del images[i]
continue
face = displayio.TileGrid(odb, pixel_shader=getattr(odb, 'pixel_shader', displayio.ColorConverter()))
# # 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)
face = displayio.TileGrid(odb, pixel_shader=odb.pixel_shader)
splash.append(face)
# 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"
try:
file = open(icon_path, "rb")
icon_bitmap = OnDiskBitmap(file)
icon_bitmap = OnDiskBitmap(icon_path)
except OSError:
print(f"Icon for {airline_code} not found. Using placeholder.")
file = open(PLACEHOLDER_ICON_PATH, "rb")
icon_bitmap = OnDiskBitmap(file)
icon_bitmap = OnDiskBitmap(PLACEHOLDER_ICON_PATH)
icon_tilegrid = TileGrid(icon_bitmap, pixel_shader=icon_bitmap.pixel_shader, x=0, y=0)
return icon_tilegrid