import pyglet import itertools class AnimatedGif: def __init__(self, path): self.frames = [] self.load_frames(path) self.index = itertools.cycle(range(len(self.frames))) def load_frames(self, path): i = 0 while True: try: image = pyglet.image.load_animation(path) frame = image.get_texture(i) self.frames.append(frame) i += 1 except IndexError: break def next_frame(self): return self.frames[next(self.index)]