Kivy/Pillow cannot read all GIF files on Buildozer

403 views
Skip to first unread message

I.R.B.A.

unread,
Mar 24, 2019, 12:35:38 AM3/24/19
to Kivy users support
All other image file types work but GIFs, even kivy.Loader.loading_image causes the app to crash when a gif file is used (ie. "image-loading.gif")

That wasn't really a problem until I noticed pil cannot process/read all gif files. I have tried os.environ['KIVY_IMAGE'] = 'sdl2, gif' before importing kivy but I get a unknown <gif> type, no loader found error. 

Also sudo apt-get install libgif-dev didn't really help.

Any help will be appreciated, thank you!

System= Ubuntu 16.04, Kivy complete VM 0.5
Buildozer requirements= Pillow, openssl, requests, urllib3, certifi

Error:

    03-22 19:31:54.870 27421 28248 I python  : [WARNING] [Image       ] Unable to load image </data/data/test.picapp/files/app/kivyloaderfCmHxb.gif>
   
03-22 19:31:54.870 27421 28248 I python  : [ERROR  ] [Loader      ] Failed to load image <https://media1.giphy.com/media/9rclEW344iiHss4e0R/giphy.gif?cid=e1bb72ff5c956cfd55334241493cd7e7>
   
03-22 19:31:54.870 27421 28248 I python  : Traceback (most recent call last):
   
03-22 19:31:54.870 27421 28248 I python  :   File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/loader.py", line 373, in _load_urllib
   
03-22 19:31:54.870 27421 28248 I python  :   File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/loader.py", line 298, in _load_local
   
03-22 19:31:54.870 27421 28248 I python  :   File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/core/image/__init__.py", line 460, in load
   
03-22 19:31:54.870 27421 28248 I python  :   File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/core/image/__init__.py", line 223, in __init__
   
03-22 19:31:54.870 27421 28248 I python  :   File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/core/image/img_pil.py", line 102, in load
   
03-22 19:31:54.870 27421 28248 I python  :   File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/PIL/Image.py", line 2609, in open
   
03-22 19:31:54.870 27421 28248 I python  :   File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/PIL/Image.py", line 2599, in _open_core
   
03-22 19:31:54.870 27421 28248 I python  :   File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/PIL/ImageFile.py", line 102, in __init__
   
03-22 19:31:54.870 27421 28248 I python  :   File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/PIL/GifImagePlugin.py", line 88, in _open
   
03-22 19:31:54.870 27421 28248 I python  :   File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/PIL/GifImagePlugin.py", line 141, in _seek
   
03-22 19:31:54.870 27421 28248 I python  : IOError: [Errno 22] Invalid argument



Alexander Taylor

unread,
Mar 24, 2019, 8:21:59 AM3/24/19
to Kivy users support
I'm not sure what's going on (it would help to see more of the logs), but "Failed to load image <https://media1.giphy.com/media/9rclEW344iiHss4e0R/giphy.gif?cid=e1bb72ff5c956cfd55334241493cd7e7>
" looks like you've set an url as the image source but pil maybe can't deal with that. Whatever you're doing, does it work fine if you do exactly the same thing with e.g. png images?
Message has been deleted

I.R.B.A.

unread,
Mar 24, 2019, 9:29:07 AM3/24/19
to Kivy users support
It works with png, and jpeg but not gif... I even saved the file with requests and it still causes an error. 
Basically everything associated with gifs fails like AsyncImage(), unless i chance Loader.loading_image to a png/jpeg file.

I.R.B.A.

unread,
Mar 24, 2019, 6:09:54 PM3/24/19
to Kivy users support
Code ex:
AsyncImage:
    source
: "giphy_s.gif"
    on_release
: root.stop_gif()


Error:
03-24 17:58:10.791  3662  3940 I python  : [WARNING] [Image       ] Unable to load image </data/user/0/test.picapp/files/app/_python_bundle/site-packages/kivy/data/images/image-loading.gif>
03-24 17:58:10.791  3662  3940 I python  : [INFO   ] [Base        ] Leaving application in progress...
03-24 17:58:10.791  3662  3940 I python  :  Traceback (most recent call last):
03-24 17:58:10.791  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/app/main.py", line 9700, in <module>
03-24 17:58:10.801  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/app.py", line 855, in run
03-24 17:58:10.801  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/base.py", line 502, in runTouchApp
03-24 17:58:10.801  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/core/window/window_sdl2.py", line 730, in mainloop
03-24 17:58:10.801  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/core/window/window_sdl2.py", line 465, in _mainloop
03-24 17:58:10.801  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/base.py", line 340, in idle
03-24 17:58:10.801  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/base.py", line 325, in dispatch_input
03-24 17:58:10.811  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/base.py", line 291, in post_dispatch_input
03-24 17:58:10.811  3662  3940 I python  :    File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
03-24 17:58:10.811  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/uix/behaviors/button.py", line 179, in on_touch_up
03-24 17:58:10.811  3662  3940 I python  :    File "kivy/_event.pyx", line 703, in kivy._event.EventDispatcher.dispatch
03-24 17:58:10.811  3662  3940 I python  :    File "kivy/_event.pyx", line 1214, in kivy._event.EventObservers.dispatch
03-24 17:58:10.811  3662  3940 I python  :    File "kivy/_event.pyx", line 1098, in kivy._event.EventObservers._dispatch
03-24 17:58:10.811  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/lang/builder.py", line 64, in custom_callback
03-24 17:58:10.811  5070  5433 I Finsky  : [375490] nlv.b(1): Triggered update for experiment package com.google.android.finsky.regular.
03-24 17:58:10.811  3662  3940 I python  :    File "<string>", line 1925, in <module>
03-24 17:58:10.811  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/app/main.py", line 9144, in open_emojis0
03-24 17:58:10.811  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/uix/behaviors/button.py", line 121, in __init__
03-24 17:58:10.811  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/uix/image.py", line 345, in __init__
03-24 17:58:10.811  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/uix/image.py", line 361, in _load_source
03-24 17:58:10.811  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/loader.py", line 474, in image
03-24 17:58:10.811  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/loader.py", line 184, in _get_loading_image
03-24 17:58:10.821  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/core/image/__init__.py", line 460, in load
03-24 17:58:10.821  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/core/image/__init__.py", line 223, in __init__
03-24 17:58:10.821  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/kivy/core/image/img_pil.py", line 102, in load
03-24 17:58:10.821  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/PIL/Image.py", line 2609, in open
03-24 17:58:10.821  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/PIL/Image.py", line 2599, in _open_core
03-24 17:58:10.821  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/PIL/ImageFile.py", line 102, in __init__
03-24 17:58:10.821  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/PIL/GifImagePlugin.py", line 88, in _open
03-24 17:58:10.821  3662  3940 I python  :    File "/home/kivy/Desktop/PicApp/.buildozer/android/platform/build/build/python-installs/picapp/PIL/GifImagePlugin.py", line 141, in _seek
03-24 17:58:10.821  3662  3940 I python  :  IOError: [Errno 22] Invalid argument
03-24 17:58:10.821  3662  3940 I python  : Python for android ended.



elvisia...@gmail.com

unread,
Mar 25, 2019, 5:59:57 AM3/25/19
to Kivy users support

Here is the solution to you problem i had been experiencing this before:

Create a directory video then change the format of the gif to avi.. like hot.gif--->hot.avi

Then do this:

in kv:
VideoPlayer:
  
     source: 'video/hot.avi'

     state: play
      #to make it loop over
      options: {'eos': 'loop'}

    
player = VideoPlayer(source='hot.avi', state='play', options={'eos': 'loop'})


I.R.B.A.

unread,
Mar 27, 2019, 9:11:11 AM3/27/19
to Kivy users support
Thanks but it's not what I'm looking for and It doesn't show the gif, it just loads forever
Reply all
Reply to author
Forward
0 new messages