Skip to content

Commit 805202d

Browse files
authored
Create code-fast.py
1 parent 49fa3c2 commit 805202d

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# SPDX-FileCopyrightText: 2023 Anne Barela for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
#
5+
# Play a single animated GIF file (display_bus method)
6+
#
7+
# Documentation:
8+
# https://docs.circuitpython.org/en/latest/shared-bindings/gifio/
9+
# Updated 3/29/2023
10+
import board
11+
import struct
12+
import gifio
13+
import time
14+
15+
display = board.DISPLAY
16+
# Take over display to drive directly
17+
display.auto_refresh = False
18+
display_bus = display.bus
19+
20+
try:
21+
odg = gifio.OnDiskGif('/sample.gif')
22+
except OSError: # pylint: disable=broad-except
23+
raise Exception("sample.gif was not found\n")
24+
start = time.monotonic()
25+
next_delay = odg.next_frame() # Load the first frame
26+
end = time.monotonic()
27+
overhead = end - start
28+
29+
# Display repeatedly & directly.
30+
while True:
31+
# Sleep for the frame delay specified by the GIF,
32+
# minus the overhead measured to advance between frames.
33+
time.sleep(max(0, next_delay - overhead))
34+
next_delay = odg.next_frame()
35+
36+
display_bus.send(42, struct.pack(">hh", 0, odg.bitmap.width - 1))
37+
display_bus.send(43, struct.pack(">hh", 0, odg.bitmap.height - 1))
38+
display_bus.send(44, odg.bitmap)

0 commit comments

Comments
 (0)