Найти - Пользователи
Полная версия: Как получить ответ есть ли анимация в gif-файле?
Начало » Python для новичков » Как получить ответ есть ли анимация в gif-файле?
1
Alen

Пытался получить средствами 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
sanodin
Точно не скажу но, gif , содержит в себе несколько рисунков разных или одинаковых или один , если рисунки разные , то есть по пиксельно смотреть каждый, если изменения есть то анимация есть, если неизменно то нет.
по заголовку файла смотрел , различия идут после GIF89a, но дальше не разбирался…
Alen
Извиняюсь, тут я лажанулся, второй файл то же был с анимацией, собственно из этого тесты ломались.
Более правильный код:
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB