Форум сайта python.su
49
Пытался получить средствами PIL, но результаты таковы, что даже если анимации в gif файле нет функция возращает True.
from PIL import Image def get_gif_animation(filename): """ >>> get_gif_animation('../fixtures/img/fixture_with_animation.gif') True >>> get_gif_animation('../fixtures/img/fixture_without_animation.gif') False """ im = Image.open(filename) try: im.seek(1) except ValueError: return False if im.tell(): return True else: return False
Офлайн
31
Точно не скажу но, gif , содержит в себе несколько рисунков разных или одинаковых или один , если рисунки разные , то есть по пиксельно смотреть каждый, если изменения есть то анимация есть, если неизменно то нет.
по заголовку файла смотрел , различия идут после GIF89a, но дальше не разбирался…
Отредактировано sanodin (Дек. 10, 2013 06:38:46)
Офлайн
49
Извиняюсь, тут я лажанулся, второй файл то же был с анимацией, собственно из этого тесты ломались.
Более правильный код:
def get_gif_animation(filename): """ >>> get_gif_animation('../fixtures/img/fixture_with_animation.gif') True >>> get_gif_animation('../fixtures/img/fixture_without_animation.gif') False """ im = Image.open(filename) duration = im.info['duration'] if duration: return True else: return False
Офлайн