I know we can display an animated gif via a WebView
see
but I wanted to display it into an Image, thus...
try this little imperfect script
if you tap on the gif, it will stop or restart
PS sorry if already done
from PIL import Image
import ui
import io
class Gif(ui.View):
def __init__(self,gif_file,duration):
self.duration = duration
self.ImageView = ui.ImageView()
self.add_subview(self.ImageView)
self.pil = Image.open(gif_file)
self.update_interval = self.duration / self.pil.n_frames
self.frame_id = 0
def pil2ui(self,imgIn):
with io.BytesIO() as bIO:
imgIn.save(bIO, 'PNG')
imgOut = ui.Image.from_data(bIO.getvalue())
del bIO
return imgOut
def update(self):
# Display individual frames from the loaded animated GIF file
self.pil.seek(self.frame_id)
self.ImageView.image = self.pil2ui(self.pil)
self.frame_id = self.frame_id + 1
if self.frame_id >= self.pil.n_frames:
self.frame_id = 0
def touch_ended(self,touch):
if self.update_interval == 0:
self.update_interval = self.duration / self.pil.n_frames
else:
self.update_interval = 0
if __name__ == '__main__':
v = Gif('dog left to right.gif',1)
v.present('sheet')#,hide_title_bar=True)

