Как отобразить анимированный gif с Linux?

Я хочу открыть GIF-изображение с консоли python в Linux. Обычно при открытии .png или .jpg, Я бы сделал следующее:

>>> from PIL import Image                                                                                
>>> img = Image.open('test.png')
>>> img.show()

но если я делаю это:

>>> from PIL import Image                                                                                
>>> img = Image.open('animation.gif')
>>> img.show()

Imagemagick откроется, но покажет только первый кадр gif, а не анимацию.

есть ли способ показать анимацию GIF в средстве просмотра в Linux?

2 ответов


Image.show сбрасывает изображение во временный файл, а затем пытается отобразить файл. Он зовет ImageShow.Viewer.show_image (см. /usr/lib/python2.7/dist-packages/PIL/ImageShow.py):

class Viewer:
    def save_image(self, image):
        # save to temporary file, and return filename
        return image._dump(format=self.get_format(image))
    def show_image(self, image, **options):
        # display given image
        return self.show_file(self.save_image(image), **options)
    def show_file(self, file, **options):
        # display given file
        os.system(self.get_command(file, **options))
        return 1

AFAIK, стандартный PIL не удается сохранить анимированные GIF1.

на image._dump вызов в Viewer.save_image сохраняется только первый кадр. Поэтому независимо от того, какой зритель впоследствии называется, вы видите только статическое изображение.

если у вас есть ImageMagick в display программа, то вы также должны иметь его


linux откройте gif

Я сделал это с Fedora 17:

el@defiant ~ $ sudo yum install gifview
---> Package gifview.x86_64 0:1.67-1.fc17 will be installed

curl http://i.imgur.com/4rBHtSm.gif > mycat.gif

gifview mycat.gif

появляется окно, и вы можете пройти через рамки gif.