#python #animation #gif #kivy
#python #Анимация #gif #kivy
Вопрос:
Я пишу приложение kivy, игру, в верхней части которой есть анимированный gif, который должен воспроизводиться в цикле, как это происходит в Finder и т.д. При загрузке в графический интерфейс kivy отображается только один кадр. Я новичок в kivy и был бы признателен за некоторую помощь в решении этой проблемы. Я использую файл .kv для загрузки изображения:
Image:
source: 'spaceshipgif.gif'
allow_stretch: True
Я изучил документацию на веб-сайте kivy и поискал вокруг, но безрезультатно.
Ответ №1:
Я не помню точно, каков статус воспроизведения gif-файлов — они должны работать в принципе, но некоторые из наших провайдеров справляются с этим лучше других. Насколько я помню, это могло бы работать лучше, если бы вы скомпилировали kivy с PIL в качестве поставщика изображений. Я думаю, что некоторые из этих проблем могут быть вызваны технически некорректными gif-файлами, которые плохо обрабатываются поставщиком по умолчанию, но я не уверен в этом.
Лучшее решение — вместо этого поместить рамки .gif в виде изображений в zip-файл и указать путь к этому zip-файлу в качестве пути к изображению в вашем виджете. Kivy автоматически анимирует их для вас, в том числе упрощает изменение скорости анимации (или ее приостановку), не ограничиваясь проблемами с gif-файлами.
Комментарии:
1. ZIP-файл отлично сработал! Но теперь, когда я изменяю размер окна, изображение становится черным, есть ли способ остановить это?
2. Похоже на ошибку. Можете ли вы сообщить об этом в репозитории kivy на github на простом примере?
3. попробуйте проверить, когда изменяется размер экрана, и обновляйте экран в любое время, когда изменяется размер экрана.
4. Привет @ inclement как мне использовать другого поставщика изображений, поскольку у меня аналогичная проблема. Как мне проверить, какая из них используется в данный момент? Спасибо